rs-netty 1.1.0

A Tokio-native typed TCP/UDP pipeline framework inspired by Netty.
Documentation
# 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.