msleep()
made safe (does not block) in case of
non-numeric input.mclock()
, msleep()
and
random()
utilities exposing the library functions for
timing and cryptographic RNG respectively.socket()
gains the ability to open ‘raw’ mode sockets.
Please note: this is not for general use - do not set this argument
unless you have a specific need, such as for use with
device()
(refer to NNG documentation).device()
which creates a socket forwarder or
proxy. Warning: use this in a separate process as this function blocks
with no ability to interrupt./usr/local
. Note that this is a
manual setting allowing for custom NNG builds, and requires a version of
NNG at least as recent as 722bf46.unresolvedValue
returned by
Aios (thanks @lionel-
#3).nanonext is now considered substantially feature-complete and API-stable
$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.is_nano()
and
is_aio()
.subscribe()
,
unsubscribe()
, and survey_time()
gain
nanoContext methods.$raw
and $data
if keep.raw = TRUE
.send_ctx()
, recv_ctx()
and
logging removed.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.messenger()
function implements a multi-threaded
console-based messaging system using NNG’s scalability protocols
(currently as proof of concept).nano_init()
function intended to be called
immediately after package load to set global options.warnings()
and flexibility in handling via setting
options()
.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.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.logging()
is now defunct.$result
, $data
and
$raw
now resolve automatically without requiring
call_aio()
. Access directly and an ‘unresolved’ logical NA
value will be returned if the Aio operation is yet to complete.unresolved()
added as an auxiliary function to query
whether an Aio is unresolved, for use in control flow statements.is_error_value()
helper function
included.is_nul_byte()
added as a helper function for
request/reply setups.survey_time()
added as a convenience function for
surveyor/respondent patterns.logging()
function to specify a global package logging
level - ‘error’ or ‘info’. Automatically checks the environment variable
‘NANONEXT_LOG’ on package load and then each time
logging(level = "check")
is called.ncurl()
adds a ‘…’ argument. Support for HTTP methods
other than GET.listen()
and dial()
now return (invisible)
zero rather than NULL upon success for consistency with other
functions.opts
to avoid
clash with base R ‘options’.nng_timer()
utility as a
non-essential function.send_aio()
and recv_aio()
now return Aio
objects, for which the results may be called using
call_aio()
.request()
and reply()
functions
implement the full logic of an RPC client/server, allowing processes to
run concurrently on the client and server.
ncurl()
minimalistic http(s) client.nng_timer()
utility as a demonstration of NNG’s
multithreading capabilities.send()
/recv()
, gain a revised ‘mode’
argument.
send_ctx()
and recv_ctx()
for
consistency.$socket_close()
method of nano objects has been
renamed $close()
to better align with the functional
API.