| Crates.io | rhizome-p2p |
| lib.rs | rhizome-p2p |
| version | 0.0.5 |
| created_at | 2026-01-12 12:14:39.964334+00 |
| updated_at | 2026-01-15 15:33:33.818965+00 |
| description | Distributed P2P networking library for the Rhizome ecosystem |
| homepage | |
| repository | https://github.com/vazonhub/rhizome |
| max_upload_size | |
| id | 2037625 |
| size | 475,977 |
Rhizome is a highβperformance, decentralized P2P messaging library implemented on Rust. It is based on the Kademlia DHT protocol with custom data replication and content ranking mechanisms.
Rust Core: Maximum performance and memory security without GC.Anonymity: DHT-based routing hides direct connections between network participants.Async First: A fully asynchronous stack based on tokio and futures.Smart replication: Automatic distribution of data to k-nearest nodes.Popularity system: Content in demand gets storage priority and a higher TTL.Modularity: You can use it as a ready-made CLI node, or connect it as a library (cargo lib) to your project.Runtime & Async: Fully asynchronous architecture based on tokio (full) and futures. Using async-trait for flexible component design.Persistence (Storage): heed is a highβperformance embedded database (a wrapper over LMDB) that provides ACID transactions and instant access to data.Cryptography & Security:RSA (with SHA-2 support) for key management and digital signatures.
sha1, sha2, digest β a set of cryptographic hash functions for data integrity and identification in DHT.Serialization:
rmp-serde (MessagePack) is the main binary protocol for minimizing traffic in a P2P network.serde_json & serde_yaml β for configuration and external `APIs'.Observability (Logging): An advanced system based on tracing. Support for structured logging (JSON), filtering via env-filter, and log file rotation via tracing-appender.Portability (WASM): Support for compilation to `WebAssembly' (wasm-bindgen) for use in browser environments, including integration with getrandom/js.Development & Quality:
cargo-husky (pre-commit hooks for fmt and clippy).thiserror for strict and understandable error typing.rhizome/
βββ examples/ # Examples of the system operation
βββ src/ # The main project code
β βββ config.rs # Configuration Module
β βββ logger.rs # The logging module
β βββ api.rs # API module for external operation
β βββ exception.rs # Error management module
β βββ dht/ # Kademlia DHT Module
β βββ network/ # Network operation module
β βββ node/ # Node Module
β βββ popularity/ # A module for the operation of the reputation system
β βββ replication/ # Data replication
β βββ storage/ # Storage System Module
β βββ utils/ # Auxiliary functions module
β βββ security/ # The security module
For project build you need Rust version 1.85+ (because we will use Edition 2024).
rustup update stable
Bash
git clone https://github.com/vazonhub/rhizome.git
cd rhizome
cargo build
For running tests you can use:
Bash
# Run all tests
cargo test
# Run tests with logs in console
RUST_LOG=debug cargo test -- --nocapture
In project, we have some feature for code analyze and formating:
cargo fmt)cargo clippy)We are happy to see your Pull Requests!
develop branch;git checkout -b feature/amazing-feature;git commit -m 'Add amazing feature';git push origin feature/amazing-feature;Pull Request.We use git flow in branch architecture. Create your pull request in
developbranch.
Distributed under the Apache 2.0 license. Details in the file LICENSE.
Rhizome Dev Team - GitHub.
Inspired by the resilience of nature. Built for the freedom of speech.