# Reticulum in JavaScript

_Showcase · started by bergie on Sat, Jul 18, 2026 5:57 PM_

Tags: Showcase

---

## Original post

**bergie** · Sat, Jul 18, 2026 5:57 PM

I've mentioned this on the forum a few times, but now that it is actually partially functional, I think it deserves its own thread:

reticulum-js is a new JavaScript implementation of the Reticulum network stack:
https://reticulum.js.org/

Available on rngit:
rns://adafb3153efd4d96d532568a5208b3b5/reticulum/reticulum-js
and also mirrored to GitHub:
https://github.com/bergie/reticulum-js

What works now:

* TCP and WebSocket interfaces
* LXMF messaging both direct and over a link
* Requests and responses (tested with both NomadNet sites and rngit work documents)

I'm building this mostly because I need Reticulum capability for two systems I'm working on:

* Integration with Signal K "smart boat" platform (Node.js)
* Online collaboration for the new NoFlo visual programming editor (browser _and_ Node.js)

So features needed for those have priority. However, down the line it would be great to have the full RNS spec supported. This means a browser app could theoretically be a transport node!

Reticulum-js has been written with assistance of various LLMs. Not ideal, I know. But right now I need to balance sailing and getting this working quickly.

If anybody is interested in this, I'd love some feedback. Especially:

* General API ergonomics. I've tried to keep it quite "modern JavaScript" and lean heavily on Promises etc
* Ideas for interfaces that would work for browser applications (WebBluetooth? HTTP POST? ...)

There are some usage examples I. The `examples/` folder.

---

## Reply 1

**Anonymous** · Sat, Jul 18, 2026 6:29 PM

Looks interesting!

---

## Reply 2

**bergie** · Sat, Jul 18, 2026 11:19 PM

I added a page talking about the connectivity options for browser apps

https://reticulum.js.org/documents/Browser_Connectivity.html

---

## Reply 3

**bergie** · Sun, Jul 19, 2026 7:43 PM

Here's a Reticulum connector for the Yjs CRDT system. Still needs work (for example, switching to Link Channels, and transferring larger CRDT packets as Resources):
https://github.com/bergie/y-reticulum

I was able to use that with CodeMirror and do browser-to-browser collaborative editing over Reticulum, discovering room peers through announces.

This will make more sense once we have a WebRTC interface, though I'm curious to see whether collaborative editing is practical over LoRa.

---

## Reply 4

**Mark** · Mon, Jul 20, 2026 5:45 PM

Lol, the logo had me laughing so hard. It's not RNS anymore, now it's just "JS". It's brilliant.

Sorry, no constructive comments here, just had to share the laugh. Need to take a proper look at this first when I have some time :)

---

## Reply 5

**bergie** · Mon, Jul 20, 2026 10:26 PM

**Mark** wrote:
> Lol, the logo had me laughing so hard. It&#039;s not RNS anymore, now it&#039;s just &quot;JS&quot;. It&#039;s brilliant.

Thanks! The "Reticulum" is in the constellation ;-)

> Sorry, no constructive comments here, just had to share the laugh. Need to take a proper look at this first when I have some time :)

Perfect, any comments would be appreciated! I'm sure in these first versions there are a dozen things I'm doing a stupid way.

---

## Reply 6

**bergie** · Thu, Jul 23, 2026 11:24 PM

I just released 0.4.0 where the project is split into multiple packages:

- @reticulum/core is the actual Reticulum implementation without any external dependencies
- @reticulum/node adds Node.js specifics like shared instances, filesystem persistence, TCP interfaces etc
- @reticulum/webrtc-node adds WebRTC interface for Node.js (as we need a 3rd party library here unlike in browser)
- @reticulum/websocket-server-node adds WebSocket server interface

In addition to rngit releases and NPM, the project is now also available in JSR package repository https://jsr.io/@reticulum/core

---
