Stric is a modern networking ecosystem for Rust, built on top of QUIC. It provides a layered approach to distributed systems, from low-level symmetric transport to high-level mesh-routed data flows.
stric-core: A symmetric P2P wrapper overquinn. Handles connection lifecycles, heartbeats, and raw stream management with role-agnostic terminology (Initiator/Responder).stric-tower: Anaxum-like request-response framework built onstric-core, supporting Tower middleware and Axum extractors.stric-flow: A modular, peer-to-peer mesh routing and topic-based messaging engine with Dijkstra shortest-path calculations, stateless packet forwarding, dynamic backpressure, and conflict-free session state reconciliation.
To explore the ecosystem, check out the individual crates:
- stric-core: Low-level symmetric QUIC transport.
- stric-tower: High-level request/response framework.
- stric-flow: Peer-to-peer mesh routing and state sync engine.
To see Stric in action, run the examples:
# Run the stric-tower echo server
cargo run -p stric-tower --example serverThe entire system's design and protocols are fully specified under the rfcs directory:
- Transport & Core:
- Services & Middleware:
- Mesh & Flow Routing (stric-flow):
Stric aims to solve the mismatch between local async task models and network communication by treating data as continuous, stateful flows rather than discrete, stateless requests.
stric-core, stric-tower, and stric-flow are all fully implemented, integrated, and verified to build and test successfully.
stric-coreprovides the symmetric peer-to-peer QUIC node architecture.stric-towerlayers request-response routing, extractors, and Tower middleware support on top of the symmetric transport.stric-flowimplements dynamic mesh topology discovery, stateless packet forwarding, flow backpressure, and conflict-free session state reconciliation.
GitHub Description: Symmetric QUIC transport and mesh-flow networking ecosystem for Rust.