Reticulum Networking Stack implementation written in Rust
Rust
338
263 commits
updated Aug 22, 2026
Reticulum-rs is a Rust implementation of the Reticulum Network Stack β a cryptographic, decentralised, and resilient mesh networking protocol designed for communication over any physical layer.
This project brings Reticulum's capabilities to the Rust ecosystem, enabling embedded, and constrained deployments with maximum performance and minimal dependencies.
Reticulum-rs/
βββ src/ # Core Reticulum protocol implementation
β βββ buffer.rs
β βββ crypt.rs
β βββ destination.rs
β βββ error.rs
β βββ hash.rs
β βββ identity.rs
β βββ iface.rs
β βββ lib.rs
β βββ transport.rs
β βββ packet.rs
βββ proto/ # Protocol definitions (e.g. for Kaonic)
β βββ kaonic/
β βββ kaonic.proto
βββ examples/ # Example clients and servers
β βββ kaonic_client.rs
β βββ link_client.rs
β βββ tcp_client.rs
β βββ tcp_server.rs
β βββ testnet_client.rs
βββ reticulum-daemon/ # RNS Daemon
β βββ Cargo.toml
β βββ src/
β βββ config.rs
β βββ main.rs
βββ Cargo.toml # Crate configuration
βββ LICENSE # License (MIT/Apache)
βββ build.rs
protoc for compiling .proto files (if using gRPC/Kaonic modules)cargo build --release
Reticulum-rs uses TOML for configuration, whereas the original Python Reticulum uses a custom format parsed by configobj, a Python-only library. If you have an existing Python Reticulum configuration, it will be read and converted to TOML in-memory. If you want to apply the conversion and save a TOML copy, run the convert-config subcommand:
cargo run -p reticulum-daemon -- convert-config <config_file>
This leaves the original file and creates a copy with .toml extension. The converter handles boolean normalization (True/False/Yes/No β true/false), quotes string values, transforms interface declarations to TOML array-of-tables syntax, and comments out None/nil values which TOML does not support.
# Use default config search paths (~/.config/reticulum, ~/.reticulum, /etc/reticulum)
cargo run -p reticulum-daemon
# Specify a custom config directory
cargo run -p reticulum-daemon -- --config /path/to/config/dir
cargo run -p reticulum-daemon -- -c /path/to/config/dir
The daemon searches for either config (legacy filename) or config.toml in the specified directory.
# TCP client example
cargo run --example tcp_client
# Kaonic mesh test client
cargo run --example kaonic_client
Integration tests against the Python implementation can be run with the python-tests feature and
setting the RETICULUM_TEST_PYTHON_DIR environment variable to the location of the checked out
Python Reticulum source tree. Example:
RETICULUM_TEST_PYTHON_DIR=../Reticulum cargo test python --features="python-tests"
This project is licensed under the MIT license.
Β© Beechat Network Systems Ltd. All rights reserved. https://beechat.network/
Rust
100.0%
Reticulum Networking Stack implementation written in Rust
Rust
338
263 commits
updated Aug 22, 2026
Reticulum-rs is a Rust implementation of the Reticulum Network Stack β a cryptographic, decentralised, and resilient mesh networking protocol designed for communication over any physical layer.
This project brings Reticulum's capabilities to the Rust ecosystem, enabling embedded, and constrained deployments with maximum performance and minimal dependencies.
Reticulum-rs/
βββ src/ # Core Reticulum protocol implementation
β βββ buffer.rs
β βββ crypt.rs
β βββ destination.rs
β βββ error.rs
β βββ hash.rs
β βββ identity.rs
β βββ iface.rs
β βββ lib.rs
β βββ transport.rs
β βββ packet.rs
βββ proto/ # Protocol definitions (e.g. for Kaonic)
β βββ kaonic/
β βββ kaonic.proto
βββ examples/ # Example clients and servers
β βββ kaonic_client.rs
β βββ link_client.rs
β βββ tcp_client.rs
β βββ tcp_server.rs
β βββ testnet_client.rs
βββ reticulum-daemon/ # RNS Daemon
β βββ Cargo.toml
β βββ src/
β βββ config.rs
β βββ main.rs
βββ Cargo.toml # Crate configuration
βββ LICENSE # License (MIT/Apache)
βββ build.rs
protoc for compiling .proto files (if using gRPC/Kaonic modules)cargo build --release
Reticulum-rs uses TOML for configuration, whereas the original Python Reticulum uses a custom format parsed by configobj, a Python-only library. If you have an existing Python Reticulum configuration, it will be read and converted to TOML in-memory. If you want to apply the conversion and save a TOML copy, run the convert-config subcommand:
cargo run -p reticulum-daemon -- convert-config <config_file>
This leaves the original file and creates a copy with .toml extension. The converter handles boolean normalization (True/False/Yes/No β true/false), quotes string values, transforms interface declarations to TOML array-of-tables syntax, and comments out None/nil values which TOML does not support.
# Use default config search paths (~/.config/reticulum, ~/.reticulum, /etc/reticulum)
cargo run -p reticulum-daemon
# Specify a custom config directory
cargo run -p reticulum-daemon -- --config /path/to/config/dir
cargo run -p reticulum-daemon -- -c /path/to/config/dir
The daemon searches for either config (legacy filename) or config.toml in the specified directory.
# TCP client example
cargo run --example tcp_client
# Kaonic mesh test client
cargo run --example kaonic_client
Integration tests against the Python implementation can be run with the python-tests feature and
setting the RETICULUM_TEST_PYTHON_DIR environment variable to the location of the checked out
Python Reticulum source tree. Example:
RETICULUM_TEST_PYTHON_DIR=../Reticulum cargo test python --features="python-tests"
This project is licensed under the MIT license.
Β© Beechat Network Systems Ltd. All rights reserved. https://beechat.network/
Rust
100.0%