LXMF-rs is a Rust implementation of the Reticulum networking stack and the LXMF messaging stack. The workspace provides reusable libraries, a typed SDK, host daemons and command-line tools, plus embedded and FFI surfaces.
Reticulum is a public-domain protocol whose authoritative specification is its Python reference implementation.
We respect Mark Qvist's original work and intellectual property rights. However, we reject the assertion that AI-assisted analysis or reimplementation automatically constitutes copyright infringement.
No individual can claim exclusive control over the independent implementation of a public-domain protocol. Compatibility should be established through reproducible interoperability tests and technical evidence, not personal endorsement.
This project will continue its development, committed to software quality, security, interoperability, and the freedom to innovate.
Read our full statement on independent implementations and AI-assisted development.
Dataset: main-2026-11-01 at c59f35f62fb3196eeb391c943b840f0ad53ca2f3; Python Reticulum ea98db4f53dc and LXMF 727830cefda8.
| Matched workload | Rust p50 | Python p50 | Rust/Python |
|---|---|---|---|
| LXMF message decode + verify | 33.00 us | 89.44 us | 2.71x |
| LXMF message encode + sign | 13.83 us | 37.22 us | 2.69x |
| LXMF large message decode + verify | 36.59 us | 94.59 us | 2.59x |
| LXMF large message encode + sign | 21.18 us | 45.26 us | 2.14x |
These are matched-workload comparisons, not a claim of whole-system superiority. See methodology, complete results, variability, and limitations.
The v0.16.1 release train aligns 22 public packages, including
the shared event-broker library, delivery-proof fixes, MeshChat host/origin
validation and propagation quota improvements. Its release workflow covers
Linux, macOS, Windows, OCI images and crates.io. See the
release record
for publication status, downloads and exact-build validation. Production resource
and retention acceptance remain open. Rust 1.88 or newer is required; use an
exact release tag to reproduce published artifacts.
Current main/source builds require Rust 1.89 for the patched bundled SQLite dependency; the tagged release requirements above remain historical. See the security migration note.
The canonical release reference remains Python Reticulum 1.5.2 at
ea98db4f53dcf0defc0e71a16e60d28b1229c4e6, with Python LXMF 0.9.6 at
727830cefda83d9c6e3982b48675425f3f988f9c. The separate Reticulum 1.5.5
feature update has a scoped delta ledger;
it does not establish full forward behavioral parity.
| Area | Current position |
|---|---|
| Python callable inventory | 1,857 applicable entries complete, 0 partial, 0 unmapped, and 1 provenance-backed not-applicable entry |
| Reticulum software parity | 1,655 mapped callables complete against the pinned baseline; forward behavioral coverage remains separate |
| LXMF software parity | 202 mapped callables and all seven tracked software scenarios complete |
| Rust/Python interoperability | Direct, link, channel, paper, propagation, and daemon scenarios exercised against pinned references |
| Independent interoperability | Versioned rns-rs and supported-subset Reticulum-Go reports are attached to v0.14.0; known peer divergences remain explicit |
| Real-world interoperability | Bounded field evidence exists for REM on physical RNode/LoRa, two-phone TCP, Sideband phone HIL, Columba bidirectional direct LXMF, and live RCH paths; see real-world interoperability evidence |
| Remaining operational matrix | Permanent HIL, the full declared hardware/platform matrix, public-network rows, long soak, and current-release client reruns remain separate from the completed software-parity result |
Read the current roadmap for the authoritative project posture, the v0.16.1 release notes, the v0.14.0 migration guide, and the Reticulum and LXMF parity matrices for row-level detail.
| Goal | Documentation |
|---|---|
| Install, build, or run the tools | Getting started |
| Integrate the Rust SDK | SDK guide and quickstart |
| Find the three main applications and their binaries | Application and binary table |
| Understand the crates and dependency boundaries | Workspace and package guide |
| Deploy a daemon | lxmd systemd guide or reticulumd operations |
| Try the development MeshChat Rust POC | MeshChat API runbook and pinned application contract |
| Review compatibility claims | Compatibility contract and current roadmap |
| Contribute | Contributor guide and checked examples |
| Browse all maintained documentation | Documentation map |
Bootstrap a source checkout and run the local daemon:
make bootstrap
cargo run -p reticulumd --bin reticulumdIn another terminal, inspect the available tools:
cargo run -p lxmf-cli --bin lxmf -- --help
cargo run -p rns-tools --bin rnstatus-rs -- --helpLibrary consumers can start with the umbrella crates:
[dependencies]
lxmf = "0.16.1"
reticulum-rs = "0.16.1"See Getting started for release downloads, checksum verification, component crates, and additional run commands.
| Package group | Purpose | Links |
|---|---|---|
lxmf, lxmf-sdk, lxmf-wire |
LXMF wire types and high-level client APIs | crates.io, docs.rs, SDK guide |
reticulum-rs, reticulum-rs-core, reticulum-rs-transport, reticulum-rs-rpc |
Reticulum primitives, transport, interfaces, resources, and RPC | crates.io, docs.rs, API overview |
| Main applications | lxmf-cli for LXMF client and daemon workflows; reticulumd for the Reticulum daemon and interchange service; rns-tools for Reticulum utilities |
Application and binary table, CLI reference, examples |
meshchat-api |
Opt-in local MeshChat HTTP/WebSocket adapter for the development POC | Runbook |
| Embedded crates | Constrained-device, managed-runtime, mini-node, and C ABI integration | Package guide, FFI guide |
Embedded portability varies by crate. reticulum-rs-core builds for bare-metal
no_std targets with --no-default-features --features alloc, verified in CI
against thumbv7em-none-eabi (#676);
the embedding application supplies its own RNG and clock. lxmf-wire still
requires the Rust standard library, even with --no-default-features --features alloc; its std and alloc feature names do not guarantee bare-metal support.
Full no_std + alloc support for that path is deferred pending maintainer
capacity or contributor help (#646). See the
capability audit
for crate-specific limits.
The complete workspace inventory and dependency-boundary rules live in the
workspace and package guide. The root
Cargo.toml remains the source of truth for active members.
Use focused checks while developing and broaden them as the change requires:
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features --no-deps -- -D warnings
cargo test --workspace --tests
tools/scripts/check-boundaries.shRelease-facing changes should also pass:
cargo run -p xtask -- architecture-checks
cargo xtask release-checkSee the release-readiness runbook for the full gate and evidence boundaries.
- Current roadmap and parity posture
- Reticulum parity matrix
- LXMF parity matrix
- Independent implementation evidence
- Performance methodology and results
- v0.14.0 performance dashboard (superseded: measured before Rust and Python did matched work, so it overstates Rust)
- Support and LTS policy
- Security policy
LXMF-rs is distributed under the Eclipse Public License 2.0.
The same file contains an explicit GPL version 2 or later secondary-license
notice; availability under that secondary license follows the conditions in
the EPL and that notice. Cargo records the existing arrangement as
EPL-2.0 OR GPL-2.0-or-later; the license text and notice govern its terms.
Vendored components retain their own licenses and attribution, including
zeromq's MIT notice.