Skip to content

CRAN release 0.4.0

Choose a tag to compare

@shikokuchuo shikokuchuo released this 10 Apr 21:47
· 1672 commits to main since this release
ccb6c4a

nanonext 0.4.0

New Features

  • New stream() interface exposes low-level byte stream functionality in the NNG library, intended for communicating with non-NNG endpoints, including but not limited to websocket servers.
  • ncurl() adds an 'async' option to perform HTTP requests asynchronously, returning immediately with a 'recvAio'. Adds explicit arguments for HTTP method, headers (which takes a named list or character vector) and request data, as well as to specify if conversion from raw bytes is required.
  • New messenger() function implements a multi-threaded console-based messaging system using NNG's scalability protocols (currently as proof of concept).
  • New nano_init() function intended to be called immediately after package load to set global options.

Updates

  • Behavioural change: messages have been upgraded to warnings across the package to allow for enhanced reporting of the originating call e.g. via warnings() and flexibility in handling via setting options().
  • Returned NNG error codes are now all classed as 'errorValue' across the package.
  • Unified send() and recv() functions, and their asynchronous counterparts send_aio() and recv_aio(), are now S3 generics and can be used across Sockets, Contexts and Streams.
  • Revised 'block' argument for send() and recv() now allows an integer value for setting a timeout.
  • send_ctx() and recv_ctx() are deprecated and will be removed in a future package version - the methods for send() and recv() should be used instead.
  • To allow for more flexible practices, logging is now deprecated and will be removed entirely in the next package version. Logging can still be enabled via 'NANONEXT_LOG' prior to package load but logging() is now defunct.
  • Internal performance optimisations.