fastn-net
Network utilities and P2P communication for the fastn ecosystem.
Overview
fastn-net provides P2P networking capabilities for fastn entities using Iroh. Each fastn instance is called an "entity" in the P2P network, identified by a unique ID52 (52-character encoded Ed25519 public key).
Features
- P2P networking between fastn entities with NAT traversal
- HTTP and TCP proxying between entities
- Connection pooling for HTTP clients
- Protocol multiplexing (HTTP, TCP, SOCKS5, Ping) over single connections
- Entity identification via ID52 encoding
- Graceful shutdown management for async tasks
Installation
[]
= "0.1"
Usage
Basic Connection and Ping
use ;
// Get the global Iroh endpoint for entity connections
let endpoint = global_iroh_endpoint.await;
// Connect to another entity
let connection = endpoint.connect.await?;
// Test connectivity with ping
ping.await?;
Graceful Shutdown
use Graceful;
let graceful = new;
// Spawn tracked tasks
graceful.spawn;
// Shutdown gracefully on Ctrl+C
graceful.shutdown.await?;
Supported Protocols
Protocol::Ping- Connectivity testingProtocol::Http- HTTP request proxyingProtocol::Tcp- TCP tunnelingProtocol::Socks5- SOCKS5 proxyProtocol::HttpProxy- HTTP proxy protocol
License
UPL-1.0