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