eggress-core 1.0.7

Core types, traits, and infrastructure for eggress proxy
Documentation

eggress-core

Part of eggress — a Rust-native, embeddable, multi-protocol proxy framework targeting compatibility with Python pproxy==2.7.9.

Core types, traits, and infrastructure shared across all eggress crates: stream boundaries, error types, protocol-level building blocks, and the relay compatibility facade.

When to use this crate

Use eggress-core directly when implementing a custom protocol handler or transport for eggress. Most users depend on this crate transitively through eggress-server or eggress-embed.

Quick example

use eggress_core::relay::{relay, RelayResult, TerminationReason};

// Bidirectional copy between two boxed streams with historical Eggress
// behavior (64 KiB buffers, one-second bounded post-half-close drain).
// Directional I/O failures collapse to `TerminationReason::Error`.
async fn bridge(client: eggress_core::BoxStream, server: eggress_core::BoxStream) -> RelayResult {
    relay(client, server).await
}

For raw Tokio duplex streams outside the Eggress BoxStream architecture — generic AsyncRead + AsyncWrite + Unpin with an explicit half-close policy and rich directional errors — use eggress-relay directly instead.

Documentation

License

MIT OR Apache-2.0