Lightweight Toolkit for Messaging, Concurrency and the Web
Overview
R binding for NNG (Nanomsg Next Gen), a successor to ZeroMQ. A toolkit for messaging, concurrency and the web. High-performance socket messaging over in-process, IPC, TCP, WebSocket and secure TLS transports implements 'Scalability Protocols', a standard for common communications patterns including publish/subscribe, request/reply and survey. A threaded concurrency framework with intuitive 'aio' objects that resolve automatically upon completion of asynchronous operations, and synchronisation primitives that allow R to wait on events signalled by concurrent threads. A unified HTTP server hosting REST endpoints, WebSocket connections and streaming on a single port, with a built-in HTTP client.
New Features
- Implements the
_server.ymlstandard for R server frameworks, allowing deployment platforms to launch nanonext HTTP/WebSocket servers without knowledge of the package internals (thanks @JosiahParry, #349).
Updates
- Fixes an erroring unserialization hook (
ufunc) halting non-interactive R processes; the object now unserializes as an 'errorValue' (#356). - Our configure script now requires a system 'libmbedtls' 3.x, falling back to the bundled build when an incompatible version is detected (#350).
- Our configure script now checks a detected system 'libnng' for working TLS support, falling back to the bundled build otherwise (#353).
- Fixes a
ncurl()process crash when following a redirect to an unsupported URL (#351). - Fixes a blocking TLS
dial()failure, e.g. connection refused, causing a process crash (#346). stop_aio()no longer resets the R interrupt state.http_server()now normalizes the request URI before it reaches a handler. For example, a request for/../../outside.txtarrives as/outside.txt. This normalization applies to all handler types: static file and directory handlers, and Rhandler()callbacks.- Updates the bundled 'libnng' to v1.12.3, which includes upstream security fixes that:
- block path traversal attacks at the HTTP server,
Show all changes in 1.10.3Hide the rest of the changes in 1.10.3
- prevent a crash of the HTTP client when it receives a malformed chunked message,
- reject unreasonably large message sizes, and
- limit memory use for websocket connections that receive many small frames.
- Increases the minimum supported system
libnngversion to >= v1.12.3.
From NEWS.md in the release
Install
Health
- OK13 OK2026-09-24
- ERROR12 OK, 1 ERROR2026-09-04
- OK13 OK2026-08-13
- ERROR12 OK, 1 ERROR2026-08-12
- OK13 OK2026-08-05
Show 9 earlier changesHide 9 earlier changes
- NOTE12 OK, 1 NOTE2026-08-01
- OK14 OK2026-04-23
- ERROR13 OK, 1 ERROR2026-04-21
- OK14 OK2026-04-09
- WARNING8 OK, 6 WARNING2026-03-30
- ERROR8 OK, 5 WARNING, 1 ERROR2026-03-29
- WARNING9 OK, 4 NOTE, 1 WARNING2026-03-21
- NOTE13 OK, 1 NOTE2026-03-17
- OK14 OK2026-03-10
Documentation
- Help pages
- 78 (15 internal)includes a package overview page
- Examples that run
- 98%51 run in a plain check (6 of them under a condition) · 1 never run
- Exported functions with examples
- 73%
- Documented parameters
- 98%
- Return-value docs
- 100%
- Help pages citing references
- 0%
Downloads
Repository
- PRs merged (all time)
- 93%
- Median days to close, 50 most recently updated closed issues
- 0
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Forks over time
Releases over time
Issues over time
PRs over time
Commits over time
Commit identities over time
11 development-tooling and community-health practices detected across 6 families in the upstream repository
Checks run against github.com/r-lib/nanonext on 2026-10-21.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2026-10-19 · The repository has a site deploy workflow
pkgdown site last built 2026-09-23
Show all practicesHide 2 practices
This repository shows signs of AI coding tools.
- Claude Codefirst seen 2025-10-14Seen in the repository: CLAUDE.mdNamed in .Rbuildignore: .claude, CLAUDE.mdNamed in .gitignore: .claude
Dependencies
Installing nanonext adds no packages beyond those that come with R.
Show all 14 packagesHide all 14 packages
Code & Tests
People & History
Pick two releases to compare their code metrics.
- 1.10.3Latest
- 1.10.22026-08-04 · diff ↗
- 1.10.1
- 1.10.0
- 1.9.1
- 1.9.02026-05-04 · diff ↗ ·
removed 1 export
messengeradded 7 exports
.dispatcher_capacity, .dispatcher_gate, .dispatcher_info, .dispatcher_start, .dispatcher_stop, .dispatcher_try_gate, .dispatcher_wait - RR 4.6.0 released · 2026-04-24
- 1.8.2
- 1.8.12026-03-08 · diff ↗
- 1.8.02026-02-09 · diff ↗ ·
added 11 exports
.dispatcher, format_sse, handler, handler_directory, handler_file, handler_inline, handler_redirect, handler_stream, handler_ws, http_server, race_aio - 1.7.22025-11-03 · diff ↗
- 1.7.1
- 1.7.0
- 1.6.22025-07-14 · diff ↗
- 1.6.1
- 1.6.02025-05-20 · diff ↗ ·
removed 1 export
lockadded 7 exports
.header, .read_header, .read_marker, ip_addr, pipe_id, read_stdin, write_stdout
Show 49 earlier eventsHide 49 earlier events
- RR 4.5.0 released · 2025-04-11
- 1.5.22025-03-18 · diff ↗
- 1.5.1
- 1.5.0
- 1.4.0
- 1.3.22024-11-14 · diff ↗
- 1.3.1
- 1.3.0
- 1.2.12024-08-19 · diff ↗
- 1.2.0
- 1.1.12024-06-24 · diff ↗ ·
removed 5 exports
base64dec, base64enc, recv_aio_signal, request_signal, strcat - 1.1.0
- 1.0.0
- RR 4.4.0 released · 2024-04-24
- 0.13.5.22024-04-06 · diff ↗
- 0.13.5.1
- 0.13.22024-03-01 · diff ↗
- 0.13.0
- 0.12.0
- 0.11.02023-12-04 · diff ↗ ·
removed 4 exports
nextmode, weakref, weakref_key, weakref_valueadded 5 exports
%~>%, call_aio_, next_config, until_, wait_ - 0.10.4
- 0.10.22023-09-27 · diff ↗
- 0.10.1
- 0.10.0
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.3
- RR 4.3.0 released · 2023-04-21
- 0.8.2
- 0.8.12023-03-27 · diff ↗ ·
added 12 exports
weakref<-, .unresolved, cv, cv_reset, cv_value, msg_pipe, pipe_notify, recv_aio_signal, request_signal, sha1, until, wait - 0.8.0
- 0.7.3
- 0.7.22022-12-12 · diff ↗
- 0.7.1
- 0.7.0
- 0.6.0
- 0.5.5
- 0.5.4
- 0.5.32022-08-08 · diff ↗
- 0.5.2
- 0.5.12022-06-10 · diff ↗
- 0.5.0
- RR 4.2.0 released · 2022-04-22
- 0.4.0
- 0.3.02022-03-10 · diff ↗ ·
removed 3 exports
nng_timer, recv_vec, send_vecadded 6 exports
.mirai_scm, is_error_value, is_nul_byte, logging, survey_time, unresolved - 0.2.02022-02-10 · diff ↗ ·
removed 6 exports
ctx_recv, ctx_recv_vec, ctx_send, ctx_send_vec, recv_vec_aio, send_vec_aioadded 8 exports
call_aio, ncurl, nng_timer, recv_ctx, reply, request, send_ctx, stop_aio - 0.1.02022-01-25
- RR 4.1.0 released · 2021-05-18
Package metadata
- First published
- 2022-01-25
- Total releases
- 59 / 4 yrs
- License
- MIT + file LICENSE OSI · relicensed from GPL (>= 3) in 1.6.0
- Minimum R
- ≥ 3.6
- Download size
- 911 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("nanonext")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-25, which the citation names so these numbers can be found later. More on citing and the projects behind them.