Expand description
ant-quic: QUIC transport protocol with advanced NAT traversal for P2P networks
This library provides a clean, modular implementation of QUIC-native NAT traversal using raw public keys for authentication. It is designed to be minimal, focused, and highly testable, with exceptional cross-platform support.
The library is organized into the following main modules:
transport: Core QUIC transport functionalitynat_traversal: QUIC-native NAT traversal protocoldiscovery: Platform-specific network interface discoverycrypto: Raw public key authenticationapi: High-level P2P networking API
Re-exports§
pub use quinn_high_level::Endpoint;pub use quinn_high_level::Connection as HighLevelConnection;pub use quinn_high_level::Connecting;pub use quinn_high_level::Accept;pub use quinn_high_level::RecvStream as HighLevelRecvStream;pub use quinn_high_level::SendStream as HighLevelSendStream;pub use crypto::raw_public_keys::key_utils::generate_ed25519_keypair;pub use crypto::raw_public_keys::key_utils::derive_peer_id_from_public_key;pub use crypto::raw_public_keys::key_utils::derive_peer_id_from_key_bytes;pub use crypto::raw_public_keys::key_utils::verify_peer_id;pub use crypto::raw_public_keys::key_utils::public_key_to_bytes;pub use crypto::raw_public_keys::key_utils::public_key_from_bytes;pub use connection::Connection;pub use connection::ConnectionError;pub use connection::ConnectionStats;pub use connection::Event;pub use connection::RecvStream;pub use connection::SendStream;pub use connection::Streams;pub use connection::StreamEvent;pub use connection::SendDatagramError;pub use connection::Chunk;pub use connection::Chunks;pub use connection::ClosedStream;pub use connection::FinishError;pub use connection::ReadError;pub use connection::ReadableError;pub use connection::WriteError;pub use connection::Written;pub use connection::Datagrams;pub use endpoint::Endpoint as LowLevelEndpoint;pub use endpoint::ConnectionHandle;pub use endpoint::Incoming;pub use endpoint::AcceptError;pub use endpoint::ConnectError;pub use endpoint::DatagramEvent;pub use shared::ConnectionId;pub use shared::EcnCodepoint;pub use shared::EndpointEvent;pub use transport_error::Code as TransportErrorCode;pub use transport_error::Error as TransportError;pub use candidate_discovery::CandidateDiscoveryManager;pub use candidate_discovery::DiscoveryConfig;pub use candidate_discovery::DiscoveryEvent;pub use candidate_discovery::DiscoveryError;pub use candidate_discovery::NetworkInterface;pub use candidate_discovery::ValidatedCandidate;pub use nat_traversal_api::NatTraversalEndpoint;pub use nat_traversal_api::NatTraversalConfig;pub use nat_traversal_api::EndpointRole;pub use nat_traversal_api::PeerId;pub use nat_traversal_api::BootstrapNode;pub use nat_traversal_api::CandidateAddress;pub use nat_traversal_api::NatTraversalEvent;pub use nat_traversal_api::NatTraversalError;pub use nat_traversal_api::NatTraversalStatistics;pub use quic_node::QuicP2PNode;pub use quic_node::QuicNodeConfig;pub use quic_node::NodeStats as QuicNodeStats;pub use config::EndpointConfig;pub use config::TransportConfig;pub use config::ServerConfig;pub use config::AckFrequencyConfig;pub use config::MtuDiscoveryConfig;pub use config::ClientConfig;pub use cid_generator::RandomConnectionIdGenerator;
Modules§
- api
- High-Level NAT Traversal API
- candidate_
discovery - Candidate Discovery System for QUIC NAT Traversal
- cid_
generator - coding
- Coding related traits.
- config
- connection
- crypto
- Traits and implementations for the QUIC cryptography protocol
- discovery
- Network Interface Discovery
- endpoint
- frame
- monitoring
- Production Monitoring and Diagnostics
- nat_
traversal - NAT Traversal Protocol Implementation
- nat_
traversal_ api - High-level NAT Traversal API for Autonomi P2P Networks
- optimization
- Performance optimization modules for ant-quic
- packet
- quic_
node - QUIC-based P2P node with NAT traversal
- quinn_
high_ level - High-level async API for QUIC
- shared
- terminal_
ui - Terminal UI formatting and display helpers for ant-quic
- transport
- Core QUIC transport layer
- transport_
error - transport_
parameters - QUIC connection transport parameters
- workflow
- Workflow Orchestration System for NAT Traversal
Structs§
- Simple
Connection Establishment Manager - Simplified connection establishment manager
- Simple
Establishment Config - Simplified configuration
- Stream
Id - Identifier for a stream within a particular connection
- Transmit
- An outgoing packet
- VarInt
- An integer less than 2^62
- VarInt
Bounds Exceeded - Error returned when constructing a
VarIntfrom a value >= 2^62
Enums§
- Candidate
Source - How an address candidate was discovered
- Candidate
State - Current state of a candidate address
- Dir
- Whether a stream communicates data in both directions or only from the initiator
- NatTraversal
Role - Role in NAT traversal coordination
- Side
- Whether an endpoint was the initiator of a connection
- Simple
Connection Event - Simplified events
Constants§
- DEFAULT_
SUPPORTED_ VERSIONS - The QUIC protocol version implemented.