Skip to content

Repository files navigation

rsReticulumLite

CI Rust 1.87+ License: AGPL-3.0-or-later

Reticulum in Rust for microcontrollers.

rns-lite-core provides transport and endpoint primitives adapted from rsReticulum. It is no_std, allocation-free, and uses fixed-capacity buffers and tables. The firmware supplies clocks, entropy, storage and interface I/O.

Scope

  • Packet encoding, signed announces, path discovery and transport forwarding.
  • Link handshake, session encryption, proofs and optional IFAC.
  • Bounded Resource transfers and persistent ratchet/known-destination encodings.
  • LoRa split framing, airtime limiting and carrier-sense backoff.
  • MicroNode and SmallNode profiles, with custom capacities through LiteNode.

Resources sent or received by this library are limited to 3,659 bytes of data per transfer. Transfers are encrypted; compression and multi-segment transfers are not supported. This size limit does not apply when forwarding Resource packets between other nodes.

The library does not run a networking loop or drive hardware. Your firmware manages Link timers, writes persistent state and handles transmission failures. For LXMF messages, use rsLXMFLite.

Build and test

Install Rust through rustup; the repository selects Rust 1.87 and the bare-metal check targets. From a new working directory:

git clone https://github.com/ratspeak/rsReticulumLite.git
git clone https://github.com/ratspeak/rsReticulum.git
cd rsReticulumLite
while read -r repository revision; do
  git -C "../$repository" checkout --detach "$revision"
done < TRUSTED_REF
./scripts/test-matrix.sh

The matrix runs host tests, ARM/RISC-V checks, Clippy, rustdoc and compatibility tests against the exact rsReticulum revision in TRUSTED_REF. For Python interoperability checks, install the RNS version in vectors/RNS_VERSION and run ./vectors/run.sh.

For a firmware dependency, pin a source revision:

[dependencies]
rns-lite-core = { git = "https://github.com/ratspeak/rsReticulumLite", rev = "<commit>" }

The crate is distributed from source, not crates.io. See the path-request example. Build API documentation with cargo doc --workspace --no-deps --open.

License

AGPL-3.0-or-later.

About

Embedded no_std Reticulum core for constrained devices

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages