- Go 90.2%
- Python 6.2%
- JavaScript 2.7%
- Makefile 0.4%
- Nix 0.2%
- Other 0.3%
| .gitea/workflows | ||
| cmd | ||
| docker | ||
| examples/wasm | ||
| internal | ||
| misc/wasm | ||
| pkg | ||
| tests/crossref | ||
| .dockerignore | ||
| .gitignore | ||
| CONTRIBUTING.md | ||
| CONTRIBUTORS | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| revive.toml | ||
| SECURITY.md | ||
| Taskfile.yml | ||
Reticulum-Go
A high-performance Go implementation of the Reticulum Network Stack.
Overview
Reticulum-Go provides full protocol compatibility with the Python reference implementation while leveraging Go's concurrency model for improved throughput and latency. The implementation targets cross-platform deployment across legacy and modern systems.
Goals:
- Full protocol interoperability with the Python reference implementation
- Cross-platform support for multiple architectures (old and new)
- High performance via Go's concurrency model
- Improved privacy and security features that do not break compatibility with the Python reference implementation
Requirements
- Go 1.25 or later
Quick Start
Build
make build
Output: bin/reticulum-go
Install
Install to system path (default /usr/local/bin):
make install
Custom install prefix:
make install PREFIX=/opt/reticulum
Run
make run
Test
make test
Makefile Reference
| Target | Description |
|---|---|
make / make all |
Build release binary |
make build |
Build release binary (stripped, static) |
make install |
Build and install to PREFIX/bin |
make uninstall |
Remove installed binary |
make clean |
Remove build artifacts |
make test |
Run all tests |
make test-short |
Run short tests only |
make test-race |
Run tests with race detector |
make coverage |
Generate coverage report |
make bench |
Run benchmarks |
make fmt |
Format code |
make vet |
Run go vet |
make lint |
Run revive linter |
make check |
Run fmt, vet, lint, test-short |
make deps |
Download and verify dependencies |
make run |
Run with go run |
make debug |
Build debug binary |
make build-linux |
Cross-build for Linux (amd64, arm64, arm, riscv64) |
make build-windows |
Cross-build for Windows |
make build-darwin |
Cross-build for macOS |
make build-all |
Cross-build for Linux, Windows, macOS |
Taskfile (Alternative)
The project also provides a Taskfile for extended automation. Install Task and run task --list for available targets.
task build
task install
task test
Note: On some systems, use go-task instead of task; add alias task='go-task' to your shell config if needed.
Development
Nix
With Nix installed, use the development shell for a preconfigured environment:
nix develop
Code Quality
make fmt
make vet
make lint
make check
Cross-Platform Builds
make build-linux
make build-windows
make build-darwin
make build-all
WebAssembly and Embedded
Build WebAssembly binary (requires Task):
task build-wasm
task test-wasm
For embedded systems and TinyGo builds, see the tinygo branch. Requires TinyGo 0.37.0+.
Experimental Features
Green Tea GC
Build with experimental Green Tea garbage collector (Go 1.25+):
task build-experimental
License
0BSD. See LICENSE.