Rust implementation of the RNS and LXMF protocol stack for the Styrene mesh communications project.
Forked from FreeTAKTeam/LXMF-rs. See UPSTREAM.md for fork attribution.
Phase 1: Fork and Foundation. Python styrened remains the primary implementation. This Rust stack is experimental until it passes the interop gate (Phase 3).
| Crate | Description |
|---|---|
styrene-rns |
RNS protocol core — identity, destinations, links, resources, ratchets. Transport layer (TCP, UDP) behind transport feature |
styrene-lxmf |
LXMF messaging — router, propagation, stamps, delivery pipeline. SDK domain types behind sdk feature |
styrene-mesh |
Styrene wire protocol envelope (matches Python styrene_wire.py) |
styrened-rs |
Daemon binary — RPC server, message routing, identity management |
# Install just: brew install just / cargo install just
just validate # format-check + lint + test
just test # cargo test --workspace
just lint # cargo clippy
just docs # cargo doc --workspacestyrene-rs/
├── crates/
│ ├── libs/ # Library crates (styrene-rns, styrene-lxmf, styrene-mesh)
│ └── apps/ # Binary crates (styrened-rs)
├── tests/
│ └── interop/ # Python<->Rust interop test fixtures
├── justfile # Build automation
├── UPSTREAM.md # Fork attribution
└── CLAUDE.md # Claude Code guidance
The wire protocol is the integration boundary between Python and Rust. Both implementations produce and consume identical byte sequences — no FFI, no shared memory. A Python styrened and a Rust styrened-rs coexist on the same Reticulum mesh without knowing about each other.
MIT — see LICENSE.