Replace the one-intermediate-peer relay with protocol-scoped connectivity graphs and precomputed shortest-path/ECMP forwarding snapshots. Independent transport readers forward opaque transit frames without a plugin or TUN round trip. Carry source, destination, a bounded hop limit and stable flow tags; preserve end-to-end WireGuard links across topology changes. Classify IP flows before encryption and preserve their tags through the WireGuard pending queue. Add offline four-agent path-change coverage, loop and isolation tests, and an opt-in release forwarding microbenchmark. Bump control/data ALPNs while preserving persistent network identities and state. Also include the pending Windows Mainline idle-timeout fix and its regression test, using a reproducible vendored dependency patch. Validation: fmt, workspace Clippy with warnings denied, and 307 release tests passed. Two pre-existing Windows SQLite wipe failures were excluded; public DHT and the manual benchmark remain ignored by default. The forwarding microbenchmark measured 103 ns (64 B) and 202 ns (1280 B) per transit packet, excluding encryption and socket I/O.
45 lines
1.2 KiB
Rust
45 lines
1.2 KiB
Rust
#![doc = include_str!("../README.md")]
|
|
//! ## Feature flags
|
|
#![doc = document_features::document_features!()]
|
|
//!
|
|
|
|
#![deny(missing_docs)]
|
|
#![deny(rustdoc::broken_intra_doc_links)]
|
|
#![cfg_attr(not(test), deny(clippy::unwrap_used))]
|
|
|
|
mod common;
|
|
#[cfg(feature = "node")]
|
|
mod dht;
|
|
mod rpc;
|
|
|
|
// Public modules
|
|
#[cfg(feature = "async")]
|
|
pub mod async_dht;
|
|
|
|
pub use common::{Id, MutableItem, Node, RoutingTable};
|
|
|
|
#[cfg(feature = "node")]
|
|
pub use dht::{Dht, DhtBuilder, Testnet, TestnetBuilder};
|
|
#[cfg(feature = "node")]
|
|
pub use rpc::{
|
|
config::Config,
|
|
messages::{MessageType, PutRequestSpecific, RequestSpecific},
|
|
server::{RequestFilter, ServerSettings, MAX_INFO_HASHES, MAX_PEERS, MAX_VALUES},
|
|
ClosestNodes, GetMutableOutcome, PutOutcome, DEFAULT_BOOTSTRAP_NODES, DEFAULT_REQUEST_TIMEOUT,
|
|
};
|
|
|
|
pub use ed25519_dalek::SigningKey;
|
|
|
|
pub mod errors {
|
|
//! Exported errors
|
|
#[cfg(feature = "node")]
|
|
pub use super::common::ErrorSpecific;
|
|
#[cfg(feature = "node")]
|
|
pub use super::dht::PutMutableError;
|
|
#[cfg(feature = "node")]
|
|
pub use super::rpc::{ConcurrencyError, PutError, PutQueryError};
|
|
|
|
pub use super::common::DecodeIdError;
|
|
pub use super::common::MutableError;
|
|
}
|