Skip to content

Latest commit

 

History

1,348 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reticulum-Go

Go implementation of the Reticulum Network Stack. It strengthens existing networks and brings Reticulum to more devices without needing the pure cryptographic primitives. It is not a replacement for the Python reference.

Important: This project is still considered experimental, may not always be up to date with the Python reference, and not ready to be reliably used, we do welcome testers and feedback.

NomadNet Node (rngit): 132f67e79d9b24aad014e93015fb858f:/page/index.mu

git clone rns://06a54b505bb67b25ef3f8097e8001edc/public/Reticulum-Go

Features

  • Wire-compatible with Python RNS (links, resources, channels, IFAC, transport)
  • Portable cross-platform and 32-bit support
  • Single reticulum-go binary (daemon plus status, id, probe, path, cp, and related tools)
  • Static, portable builds including legacy Windows via go-legacy-win7 / go-legacy-winxp
  • Interfaces: UDP, TCP, Auto, I2P, Backbone, Pipe, Local, Serial, Modem73, SDR, WebSocket, QUIC, WebTransport, DNS rendezvous, VSOCK, HTTPS, and RNode.
  • WebAssembly, librns C ABI, and language bindings (see docs)
  • Native OS sandboxing
  • Vendored dependencies for offline source builds

Status detail: docs/en/overview.md and COMPATIBILITY.md.

Install / Build from source

Requires Go 1.27.1 or later. Dependencies are vendored (GOFLAGS=-mod=vendor).

Install a release binary (and optional init units):

curl -fsSL https://raw.githubusercontent.com/Quad4-Software/Reticulum-Go/master/install.sh | sh
curl -fsSL https://raw.githubusercontent.com/Quad4-Software/Reticulum-Go/master/install.sh | sh -s -- --source

From a git checkout, use Make or plain Go:

# Make
make build
make install                 # PREFIX=/usr/local (binary, tool symlinks, man pages)
make install-service         # INIT=auto|systemd|openrc|runit|dinit|all
make test

# Manual
mkdir -p bin
CGO_ENABLED=0 go build -ldflags="-s -w" -o bin/reticulum-go ./cmd/reticulum-go
CGO_ENABLED=0 go install -ldflags="-s -w" ./cmd/reticulum-go
go test -v ./...
go run ./cmd/reticulum-go

Packages: make package-deb, make package-rpm, make package-arch (output in dist/). Arch/CachyOS: quad4-arch.

More targets, cross-compiles, WASM, and librns: docs/en/getting-started.md and docs/en/development-and-testing.md.

Docs

Contributing

See CONTRIBUTING.md. Branch from dev. Run make check before opening a PR.

Security

Report issues privately (see SECURITY.md). Sandbox is on by default (enable_sandbox = no to disable). Release assets carry cosign attestations (cosign.pub).

License

Reticulum License, the same license as the Python reference implementation since RNS 0.9.4. Earlier revisions carried MIT, then 0BSD, then Apache-2.0. LEGAL.md records the boundary commits.

Upstream

Python RNS by Mark Qvist is the reference implementation and defines the protocol. If you are new to Reticulum, start there. 75% of donations to this project go to Mark Qvist.

About

A high-performance and secure Go implementation of the Reticulum Network Stack.

Topics

Resources

Contributing

Security policy

Stars

25 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages