Reticulum Implementation Research

Research into Reticulum protocol implementations for QNTX integration as a plugin. See reticulum.md for the vision.

P2P attestation sync was removed from QNTX core (#779) because baking it into the monolith caused repeated breakage. The distributed future lives as a plugin.

Protocol basics

LXMF

LXMF (Lightweight Extensible Message Format) provides store-and-forward on top of Reticulum. Messages carry a Fields dictionary with custom type/data/meta fields designed for embedding external protocols. Attestations could ride in these fields.

Delivery methods: opportunistic (single packet), direct (establishes link), propagated (store-and-forward via propagation nodes). Propagation nodes store messages for offline peers and deliver on reconnect.

Implementations

Complete

ProjectLanguageLicenseNotes
ReticulumPythonReticulum LicenseReference. Canonical. Anti-AI/ML clause in license
RetiNetPythonAGPL-3.0Fork — exists because original license blocks Debian/F-Droid
LeviculumRustAGPL-3.0no_std core, runs on MCUs. lnsd drop-in replaces rnsd. 503 commits
go-reticulumGoMITFull CLI suite. Parity target: Python 1.1.5
rns-crCrystalMIT

Elixir

ProjectApproachLicenseStatus
sgiath/reticulumPure Elixir/OTPWTFPLMethodical, phased. Packets, crypto, announce/path, receipts, proofs. UDP. No links/channels yet
reticulum_exPure ElixirWTFPLTCP interfaces. hex.pm published
rns_exPure ElixirMITClaims full parity incl. links/channels/resources. Appeared in 2 days — depth unverified
ex_reticulumRust NIF via RustlerNoneWraps Reticulum-rs. Thin integration layer

Other incomplete

Rust (Reticulum-rs, cyypherus/rinse, dearheart, ferret-rns), Go (holiman/Reticulum-Go), Zig (reticulum-zig), Swift (reticulum-swift), Kotlin (reticulum-kt, KRNS-core), Java (reticulum-network-stack), C++ (microReticulum — ESP32), JavaScript (rns.js), Elixir NIF (twenty-eighty/reticulum_ex), MicroPython, Elixir (sgiath/reticulum).

Integration paths for QNTX

Leviculum as Rust library

QNTX already has Rust components (sqlite-ffi, WASM). Leviculum's no_std core could link directly as a library. No Python subprocess, no FFI bridge. A Rust plugin embedding leviculum is a self-contained Reticulum node. AGPL-3.0 — no AI/ML restriction.

go-reticulum as Go library

A Go plugin could embed go-reticulum directly. No foreign runtime. MIT licensed.

Elixir/OTP

The BEAM model — supervision trees, fault isolation, hot code loading — maps naturally to a distributed attestation network. Each peer connection as a supervised process. Crashes isolated. Links that come and go are OTP process lifecycle. Would require a new plugin runtime (Elixir/Erlang), which QNTX doesn't have today.

Python via qntx-python

qntx-python is a Rust plugin embedding a Python interpreter. Running the reference RNS library directly is possible without a subprocess. But the Reticulum License anti-AI/ML clause applies.

TCP/UDP to running daemon

Any language can connect to a running rnsd or lnsd via TCP interface on a local port, speaking the Reticulum wire protocol directly. Simplest integration, but adds a dependency on a running daemon.

Bridges

License landscape

ImplementationLicenseAI/ML restriction
Python referenceReticulum LicenseYes — cannot be used in AI/ML systems
LeviculumAGPL-3.0No
go-reticulumMITNo
RetiNetAGPL-3.0No
Elixir (sgiath, reticulum_ex)WTFPLNo
Elixir (rns_ex)MITNo

The anti-AI/ML clause in the original license is what drove the community forks.

Community