rs-netty 1.1.0

A Tokio-native typed TCP/UDP pipeline framework inspired by Netty.
Documentation
# Non Goals

以下内容不是当前 rs-netty 主路径目标。它们来自 README、公开 API 和源码边界。

## No EventLoop API

rs-netty 直接使用 Tokio runtime、listener/socket task 和 per-connection task。它没有暴露 Java Netty 风格的 `EventLoop` 或 `EventLoopGroup` API。

## No ByteBuf RefCnt API

公开 API 使用 `bytes::Bytes`、`BytesMut`、`String` 和用户自定义 owned 类型。框架不暴露 reference-counted `ByteBuf` 或 `retain/release/refCnt` 模型。

## No ChannelFuture / Promise API

写入 API 使用 Rust `async` 和 `Result`。`flush` / `write_and_flush` 的 acknowledgement 是通过 await 本地 socket write 完成来表达,不提供 Java Netty 风格 `ChannelFuture` 或 `Promise` 主路径。

## No Dynamic Boxed Handler Main Path

默认 pipeline 由泛型静态 stage 组合而成,不把 `Box<dyn Handler>` 作为主路径。这样 stage 顺序和消息类型才能在编译期检查。

## No Runtime Pipeline Mutation API

当前 builder 建好 pipeline 后,运行时不提供 Netty 式 `pipeline.addLast/remove/replace` 动态修改主路径。

## No TLS Pipeline Stage

TLS 被建模为可选 TCP transport layer,而不是 codec 或普通 pipeline stage。
TLS stream 建立后,typed pipeline 仍然处理明文应用消息。
TLS metadata 会通过 `TlsInfo` 暴露,但 TLS negotiation 本身仍发生在 transport 边界,而不是作为动态 pipeline stage。

## No Codec Registry

内置 codec 是普通 Rust 类型,pipeline 显式实例化它们。当前没有全局 codec registry、协议名查找或运行时 codec negotiation registry。

## No Automatic UDP Reliability

UDP 支持 datagram send/recv,但不提供可靠性、排序、重传、拥塞控制或自动 session 管理。

## No Per-Peer UDP Child Pipeline

UDP server 使用 socket-level pipeline,不为每个 remote peer 创建独立 child pipeline。per-peer state 由应用 handler 管理。

## No MQTT Broker State

`MqttCodec` 负责 MQTT 5 packet 编解码和局部格式校验,不维护 broker/client session、subscription tree、QoS 状态机或 retained message store。

## Minimal HTTP/WebSocket Scope

`HttpCodec` 和 WebSocket codec 适合简单 server-side pipeline 示例和轻量用途。它们不是完整 HTTP framework,不提供 routing DSL、middleware stack、HTTP/2、compression、WebSocket extension negotiation 或 fragmented data frame reassembly。