# plexus

A Rust implementation of the [Reticulum](https://reticulum.network/) mesh
networking protocol — **wire-compatible** with the existing Reticulum network at
a clearly-defined gateway boundary, with a cleanly-isolated layer for protocol
extensions above it.

> **Status:** v0 — workspace skeleton only. No protocol logic is implemented yet.
> The architecture, rationale, and roadmap live in **[ARCHITECTURE.md](ARCHITECTURE.md)**;
> read it first.

## What this is

- **Gateway layer** (`plexus-core`, `plexus-crypto`, `plexus-codec`,
  `plexus-gateway`): byte-exact Reticulum. A `no_std`-clean protocol core and a
  runtime-agnostic, sans-I/O state machine (the `quinn-proto` / `rustls`
  pattern).
- **Interface layer** (`plexus-iface`): TCP / UDP / RNode / Serial / KISS /
  Local / Auto adapters, `tokio`-based.
- **Extension layer** (`plexus-ext`): post-quantum link mode, hardware-backed
  identity, structured RPC, observability — negotiated out-of-band and **never**
  present on Reticulum-compatible wire output unless explicitly negotiated.
- **Binaries** (`plexus-rnsd`, `plexus-cli`): a drop-in daemon and the
  `rnstatus` / `rnpath` / `rncp` / `rnid` family of utilities.

See the layered diagram and the gateway/extension seam in
[ARCHITECTURE.md §1](ARCHITECTURE.md).

## Workspace

| Crate | `std` | `tokio` | Role |
|---|---|---|---|
| `plexus-core` | no | no | Wire-format types. Pure data, no I/O. |
| `plexus-crypto` | no | no | Crypto primitive wrappers (backend-selectable). |
| `plexus-codec` | no | no | Packet / announce / handshake encode-decode. |
| `plexus-gateway` | yes | no | The Reticulum-compatible state machine. |
| `plexus-iface` | yes | yes | Interface adapters. |
| `plexus-ext` | yes | yes | The extension layer. |
| `plexus-rnsd` | yes | yes | The daemon. |
| `plexus-cli` | yes | yes | User-facing utilities. |
| `plexus-vectors` | no | no | Conformance fixtures + harness (dev-dependency). |

## Building

```sh
cargo build --workspace
cargo test --workspace
cargo xtask test-all   # fmt + clippy + build + test + conformance
```

## Licensing

Dual-licensed under **MIT OR Apache-2.0**, at your option. Clean-room from the
public-domain protocol spec; no post-April-2025 reference code, no AGPL.
See [`NOTICE`](NOTICE) and [ARCHITECTURE.md §10](ARCHITECTURE.md).

## Contributing & security

See [`CONTRIBUTING.md`](CONTRIBUTING.md) and [`SECURITY.md`](SECURITY.md).
