CRAN release 0.5.0
nanonext 0.5.0
nanonext is now considered substantially feature-complete and API-stable
New Features
$context()method added for creating new contexts from nano Objects using supported protocols (i.e. req, rep, sub, surveyor, respondent) - this replaces thecontext()function for nano Objects.subscribe()andunsubscribe()now accept a topic of any atomic type (not just character), allowing pub/sub to be used with integer, double, logical, complex, or raw vectors.- Sending via the "pub" protocol, the topic no longer needs to be separated from the rest of the message, allowing character scalars to be sent as well as vectors.
- Added convenience auxiliary functions
is_nano()andis_aio().
Updates
- Protocol-specific helpers
subscribe(),unsubscribe(), andsurvey_time()gain nanoContext methods. - Default protocol is now 'bus' when opening a new Socket or nano Object - the choices are ordered more logically.
- Closing a stream now strips all attributes on the object rendering it a nil external pointer - this is for safety, eliminating a potential crash if attempting to re-use a closed stream.
- For receives, if an error occurs in unserialisation or data conversion (e.g. mode was incorrectly specified), the received raw vector is now available at both
$rawand$dataifkeep.raw = TRUE. - Setting 'NANONEXT_TLS=1' now allows the downloaded NNG library to be built against a system mbedtls installation.
- Setting 'NANONEXT_ARM' is no longer required on platforms such as Raspberry Pi - the package configure script now detects platforms requiring the libatomic linker flag automatically.
- Deprecated
send_ctx(),recv_ctx()and logging removed. - All-round internal performance optimisations.