Skip to main content

Crate vcl_protocol

Crate vcl_protocol 

Source
Expand description

§VCL Protocol

Cryptographically chained packet transport protocol with:

  • SHA-256 integrity chain
  • Ed25519 digital signatures
  • X25519 ephemeral key exchange
  • XChaCha20-Poly1305 authenticated encryption
  • Replay protection
  • Connection events, ping/heartbeat, mid-session key rotation
  • Connection pool for managing multiple peers

§Quick Start

use vcl_protocol::connection::VCLConnection;

#[tokio::main]
async fn main() {
    let mut server = VCLConnection::bind("127.0.0.1:8080").await.unwrap();
    server.accept_handshake().await.unwrap();

    let packet = server.recv().await.unwrap();
    println!("Received: {}", String::from_utf8_lossy(&packet.payload));
}

Re-exports§

pub use error::VCLError;
pub use event::VCLEvent;
pub use pool::VCLPool;
pub use config::VCLConfig;
pub use transport::VCLTransport;
pub use fragment::Fragmenter;
pub use fragment::Reassembler;
pub use fragment::Fragment;
pub use flow::FlowController;
pub use metrics::VCLMetrics;
pub use tun_device::VCLTun;
pub use tun_device::TunConfig;
pub use tun_device::IpPacket;
pub use tun_device::IpVersion;
pub use ip_packet::ParsedPacket;
pub use ip_packet::TransportProtocol;
pub use multipath::MultipathSender;
pub use multipath::MultipathReceiver;
pub use multipath::PathInfo;
pub use multipath::SchedulingPolicy;
pub use mtu::MtuNegotiator;
pub use mtu::MtuConfig;
pub use mtu::PathMtu;
pub use mtu::MtuState;
pub use keepalive::KeepaliveManager;
pub use keepalive::KeepaliveConfig;
pub use keepalive::KeepaliveAction;
pub use keepalive::KeepalivePreset;
pub use reconnect::ReconnectManager;
pub use reconnect::ReconnectConfig;
pub use reconnect::ReconnectState;
pub use dns::DnsFilter;
pub use dns::DnsConfig;
pub use dns::DnsAction;
pub use dns::DnsPacket;
pub use obfuscation::Obfuscator;
pub use obfuscation::ObfuscationConfig;
pub use obfuscation::ObfuscationMode;

Modules§

config
VCL Connection Configuration
connection
VCL Connection
crypto
VCL Cryptographic Primitives
dns
VCL DNS Leak Protection
error
VCL Error Types
event
VCL Connection Events
flow
VCL Flow Control & Congestion Control
fragment
VCL Packet Fragmentation
handshake
ip_packet
VCL IP Packet Parser
keepalive
VCL Keepalive
metrics
VCL Metrics
mtu
VCL MTU Negotiation
multipath
VCL Multipath
obfuscation
VCL Traffic Obfuscation
packet
VCL Packet
pool
VCL Connection Pool
reconnect
VCL Reconnect
transport
VCL Transport Abstraction
tun_device
VCL TUN Interface