Skip to main content

yip_mesh/
lib.rs

1//! # yip-mesh
2//!
3//! High-performance userspace WireGuard-alternative overlay network protocol and Rust SDK.
4//!
5//! `yip-mesh` unifies the sub-crates of the yip project into a modular, cohesive library.
6//! Whether you are integrating yip's slotted Reed-Solomon FEC into custom network protocols,
7//! verifying self-certifying mesh certificates, or orchestrating FROST threshold signers,
8//! `yip` provides typed, memory-safe primitives.
9//!
10//! ## Feature Flags
11//!
12//! By default, the following core features are enabled:
13//! - `crypto`: Noise-IK cryptography, AEAD ciphers, BLAKE2s hashing.
14//! - `wire`: Packet framing, wire codec, and header obfuscation.
15//! - `transport`: Slotted Reed-Solomon FEC, sliding-window reassembly, and adaptive ARQ.
16//! - `membership`: Cryptographic node identity, self-certifying IPv6 addressing, RootSet verification, and gossip.
17//!
18//! Optional features:
19//! - `device`: TUN/TAP device drivers for userspace packet injection/capture.
20//! - `io`: Linux `epoll` and `io_uring` event dispatchers with zero-copy buffer slabs.
21//! - `rendezvous`: Symmetric NAT traversal and authenticated relay rendezvous protocols.
22//! - `obf`: Traffic padding transforms, steganographic masks, and anti-DPI framing.
23//! - `utls`: REALITY active-probe camouflage and TLS 1.3 browser fingerprint mimicry.
24//! - `ca`: RFC 9591 FROST threshold certificate authority coordinator and signer engines.
25//! - `full`: Activates all available features above.
26
27#![forbid(unsafe_code)]
28#![cfg_attr(docsrs, feature(doc_cfg))]
29
30#[cfg(feature = "crypto")]
31#[cfg_attr(docsrs, doc(cfg(feature = "crypto")))]
32pub use yip_crypto as crypto;
33
34#[cfg(feature = "wire")]
35#[cfg_attr(docsrs, doc(cfg(feature = "wire")))]
36pub use yip_wire as wire;
37
38#[cfg(feature = "transport")]
39#[cfg_attr(docsrs, doc(cfg(feature = "transport")))]
40pub use yip_transport as transport;
41
42#[cfg(feature = "membership")]
43#[cfg_attr(docsrs, doc(cfg(feature = "membership")))]
44pub use yip_membership as membership;
45
46#[cfg(feature = "device")]
47#[cfg_attr(docsrs, doc(cfg(feature = "device")))]
48pub use yip_device as device;
49
50#[cfg(feature = "io")]
51#[cfg_attr(docsrs, doc(cfg(feature = "io")))]
52pub use yip_io as io;
53
54#[cfg(feature = "rendezvous")]
55#[cfg_attr(docsrs, doc(cfg(feature = "rendezvous")))]
56pub use yip_rendezvous as rendezvous;
57
58#[cfg(feature = "obf")]
59#[cfg_attr(docsrs, doc(cfg(feature = "obf")))]
60pub use yip_obf as obf;
61
62#[cfg(feature = "utls")]
63#[cfg_attr(docsrs, doc(cfg(feature = "utls")))]
64pub use yip_utls as utls;
65
66#[cfg(feature = "ca")]
67#[cfg_attr(docsrs, doc(cfg(feature = "ca")))]
68pub use yip_ca as ca;