
reticulum-js is a dependency-free JavaScript implementation of the Reticulum Network System. Reticulum is a mesh networking stack designed for both local and wide-area networking. Reticulum applications can talk with each other over multiple different interfaces, ranging from TCP connections to LoRa radio. This allows building offline-first collaborative software that can work even when Internet infrastructure is compromised.
This repository is an npm-workspaces monorepo: a browser-safe core package plus small companion packages that add Node-only or external-dependency interfaces.
| Package | What it provides | Runtime deps |
|---|---|---|
@reticulum/core |
The core: Reticulum engine, Identity, LXMF, Links, Resources, Channels, and the browser-safe client interfaces (HTTP, WebSocket, WebRTC) | none (zero-dependency, browser-safe) |
@reticulum/node |
Node.js interfaces (TCP, AutoInterface, LocalClient/shared-instance, HTTP POST server) and the interface registry | Node builtins only |
@reticulum/webrtc-node |
createPeerConnection factory backed by werift, for the core's WebRTC transport on Node |
werift |
@reticulum/websocket-server-node |
Inbound WebSocket server interface, backed by ws | ws |
Start with @reticulum/core — the companions just add interfaces the browser-safe core can't ship.
bz2 implementation if you deal with compressed resources)The web platform has a very strong commitment and tradition for backwards compatibility. The fact that this implementation relies only on features of the web platform means it will likely remain functional and maintainable for years or even decades to come.
Early stages, but we are able to send and receive LXMF messages, and make NomadNet page requests.
At this point the aim is for JavaScript applications to be able to be leaf nodes in a Reticulum mesh, meaning that they will not route traffic for others. Full capability of acting as a transport node would be great to have and is on the roadmap.
See the core package README for building blocks, installation, and a usage example.
Licensed under the EUPL 1.2.
This project is developed following Reticulum Distributed Development guidelines. The canonical source lives in rns://adafb3153efd4d96d532568a5208b3b5/reticulum/reticulum-js.
We also provide a sporadically updated GitHub mirror at https://github.com/bergie/reticulum-js.
See this rns.recipes thread (also available on NomadNet 9ce92808be498e9e05590ff27cbfdfe4).
Prior art includes Liam Cottle's rns.js and of course the Python Reticulum Reference Implementation itself. We have also benefited greatly from Salem Data's Reticulum Wire Specifications work.
This project has been built with the assistance of various LLMs, both for conceptual planning and implementation. I acknowledge that AI code is not necessarily ideal, but at the same time, I'm busy sailing.
Supporting the Reticulum Project is the best way to support. If you want to support this JavaScript library directly, here are some ways:
0xFC872bA86812B2bbe90c38cfD2553F7865d04094