Skip to content

rs-netty1.0.0

Choose a tag to compare

@PieceOfFall PieceOfFall released this 27 May 07:16
· 7 commits to main since this release

v1.0.0 Release

rs-netty 1.0.0 is the first stable release. This version focuses on Netty-style asynchronous write semantics, aligned TCP/UDP behavior, fairer benchmark comparisons, and a cleaner crates.io package.

Highlights

  • Changed TCP Context::{write, flush, write_and_flush} to Netty-style semantics: calls enqueue/request flush immediately; dropping the returned handle is fire-and-forget; .await waits for local socket write completion.
  • Applied the same semantics to UDP DatagramContext, so write_and_flush / write_to_and_flush now behave consistently with TCP.
  • Optimized the handler outbox hot path to reduce locking, queue overhead, and per-frame flush completion cost.
  • Improved pipeline fast paths to reduce extra async layers for identity/ready pipeline stages.
  • Expanded lifecycle tests covering fire-and-forget writes, awaited flush completion, write-without-flush behavior, and graceful TCP/UDP close paths.
  • Added explicit TCP_NODELAY support to the benchmark harness, aligning rs-netty, Tokio, and Netty comparison settings.
  • Added JVM warmup for Netty benchmarks and refreshed TCP/UDP benchmark results in the README.
  • Updated README TCP client and UDP server examples to match the new flush and close semantics.
  • Excluded benchmarks/ and docs/assets/ from the published crate, reducing the crates.io package from over 10MB to about 74KB compressed.
  • Removed benchmark result directories from Git tracking and added them to .gitignore.

Benchmark Snapshot

The README now includes TCP_NODELAY=true benchmark results. In that snapshot, rs-netty TCP line throughput is close to bare Tokio, length-field throughput is significantly higher than the current Tokio comparison implementation, and UDP throughput is in the same range as Tokio and Netty.

Publishing

rs-netty v1.0.0 has been built in release mode, packaged, dry-run validated, and successfully published to crates.io.