go-reticulum

module
v1.1.521 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2026 License: MIT

README

go-reticulum

Go port (parity-focused) of the original Reticulum project.

This repository is maintained as a practical parity port. The current parity target is Python Reticulum 1.1.5, and the Go implementation is aligned against that version across the core library, bundled CLI utilities, examples, and parity/integration checks currently tracked in this repository. A significant part of the work was/is done with AI assistance (Codex/LLMs) for reading the reference implementation, creating parity TODOs, writing tests, and porting examples/CLI tooling.

The port is developed by a single maintainer with assistance from ChatGPT 5.1/5.2. Even though the project is covered with unit tests, integration tests, and smoke checks, unstable areas may still exist; if you run into one, please open an issue or contact the maintainer.

Goals

  • Port Reticulum to Go with maximum behavioural parity.
  • Keep the project testable: unit tests and selected integration tests.
  • Provide CLI utilities compatible in spirit with the original ones (rnstatus, rnpath, rnid, etc.).

Repository layout

  • rns/ — core library (network stack and protocols).
  • cmd/ — CLI utilities (the Go equivalents of Reticulum’s “official” tools).
  • examples/ — ports of Python examples (small demo programs).

How to run

Requires Go (recommended: current stable version).

How to use

Prefer using prebuilt binaries from Releases if you don’t want to build from source.

Quick start (local shared instance)
  1. Start the daemon (shared instance):
go run ./cmd/rnsd -v
  1. In another terminal, view status:
go run ./cmd/rnstatus -a

If you use a non-default config directory, pass it to every tool:

CFG="$HOME/.reticulum-go"
go run ./cmd/rnsd -config "$CFG" -v
go run ./cmd/rnstatus -config "$CFG" -a
CLI utilities (cmd/*)

Quick run without building:

go run ./cmd/rnsd --help
go run ./cmd/rnstatus --help
Tools overview

Build a single tool:

go build -o ./bin/rnstatus ./cmd/rnstatus
./bin/rnstatus --help
Examples overview

Quick run:

go run ./examples/minimal --help
go run ./examples/link --help

Parity & docs

  • Current parity target: Python Reticulum 1.1.5.
  • PARITY_*.md files track any remaining or newly discovered parity drift vs the Python reference (no unrelated wishlists).
  • Ideally, each parity item is closed by a code change plus a test/verification step.
  • Note: the Python Reticulum supports “external interfaces” by loading <Type>.py modules from interfacepath. The Go port does not execute/load those Python modules; if such a file exists, startup will error to avoid silently running with a placeholder interface.

Disclaimer

This is a work-in-progress port: APIs, protocols, and CLI behaviour can change as parity improves.

Support & Donate

  • Monero: 41uoDd1PNKm7j4LaBHHZ77ZPbEwEJzaRHhjEqFtKLZeWjd4sNfs3mtpbw1mcQrnNLBKWSJgui9ELEUz217Ui6kF13SmF4t5

License

MIT – see LICENSE.

Directories

Path Synopsis
cmd
rncp command
rnid command
rnir command
rnodeconf command
rnpath command
rnprobe command
rnsd command
rnstatus command
rnx command
examples
announce command
broadcast command
buffer command
channel command
echo command
filetransfer command
identify command
interface command
link command
minimal command
ratchets command
request command
resource command
speedtest command
internal
rns
tests
hand/rnsd/test4 command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL