Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Non Goals

The following are not goals of the current rs-netty main path. They come from the README, public API, and source boundaries.

No EventLoop API

rs-netty directly uses the Tokio runtime, listener/socket tasks, and per-connection tasks. It does not expose a Java Netty-style EventLoop or EventLoopGroup API.

No ByteBuf RefCnt API

The public API uses bytes::Bytes, BytesMut, String, and user-defined owned types. The framework does not expose reference-counted ByteBuf or retain/release/refCnt.

No ChannelFuture / Promise API

Write APIs use Rust async and Result. flush / write_and_flush acknowledgements are expressed by awaiting local socket write completion. There is no Java Netty-style ChannelFuture or Promise main path.

No Dynamic Boxed Handler Main Path

The default pipeline is composed from generic static stages. It does not use Box<dyn Handler> as the main path, which allows stage order and message types to be checked at compile time.

No Runtime Pipeline Mutation API

After the builder creates a pipeline, the runtime does not provide Netty-style pipeline.addLast/remove/replace dynamic mutation on the main path.

No TLS Pipeline Stage

TLS is modeled as an optional TCP transport layer, not as a codec or ordinary pipeline stage. The typed pipeline still processes plaintext application messages after the TLS stream is established. TLS metadata is exposed through TlsInfo, but TLS negotiation itself still happens at the transport boundary rather than as a dynamic pipeline stage.

No Codec Registry

Built-in codecs are ordinary Rust types that are instantiated explicitly in pipelines. There is no global codec registry, protocol-name lookup, or runtime codec negotiation registry.

No Automatic UDP Reliability

UDP supports datagram send/receive, but does not provide reliability, ordering, retransmission, congestion control, or automatic session management.

No Per-Peer UDP Child Pipeline

UDP servers use a socket-level pipeline and do not create independent child pipelines per remote peer. Applications manage per-peer state in their handlers.

No MQTT Broker State

MqttCodec encodes/decodes MQTT 5 packets and performs local format validation. It does not maintain broker/client sessions, subscription trees, QoS state machines, or retained message stores.

Minimal HTTP/WebSocket Scope

HttpCodec and the WebSocket codecs are suitable for simple server-side pipeline examples and lightweight usage. They are not a full HTTP framework and do not provide a routing DSL, middleware stack, HTTP/2, compression, WebSocket extension negotiation, or fragmented data frame reassembly.