Files
tsunagi/vendor/mainline/src/lib.rs
T
ab b4f3e57c8d Implement fast userspace multihop mesh routing
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.
2026-09-22 18:08:26 +03:00

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;
}