Skip to content

CRAN release 0.5.0

Choose a tag to compare

@shikokuchuo shikokuchuo released this 10 May 08:26
· 1638 commits to main since this release
519a1ce

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 the context() function for nano Objects.
  • subscribe() and unsubscribe() 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() and is_aio().

Updates

  • Protocol-specific helpers subscribe(), unsubscribe(), and survey_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 $raw and $data if keep.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.