4 releases (breaking)

Uses new Rust 2024

0.4.0 Feb 5, 2026
0.3.0 Feb 4, 2026
0.2.0 Jan 18, 2026
0.1.0 Jan 17, 2026

#3 in #exit-node


Used in 2 crates

MIT license

145KB
3K SLoC

APFSDS Transport - WebSocket and network layer

This crate provides:

  • WebSocket client with Chrome handshake emulation
  • WebSocket server
  • Connection pool (round-robin)
  • Noise traffic generation
  • Exit node communication

apfsds-transport

Network transport implementations for APFSDS.

Features

  • WebSocket (WSS): Primary transport with TLS support
  • QUIC: High-performance UDP transport for handler↔exit communication
  • SSH: Fallback tunnel transport

Usage

WebSocket Server

use apfsds_transport::wss::WssServer;

let server = WssServer::bind("0.0.0.0:25347").await?;
while let Some(conn) = server.accept().await {
    tokio::spawn(handle_connection(conn));
}

WebSocket Client

use apfsds_transport::wss::WssClient;

let client = WssClient::connect("wss://handler.example.com:25347/v1/connect").await?;
client.send(frame).await?;

QUIC Transport

use apfsds_transport::quic::{QuicClient, QuicServer};

// Client
let client = QuicClient::connect("handler.example.com:25347").await?;

// Server
let server = QuicServer::bind("0.0.0.0:25347", cert, key).await?;

License

MIT

Dependencies

~38–57MB
~1M SLoC