github cloudwego/kitex v0.16.1

12 hours ago

Features

gRPC - Reuse Write Buffer per Connection (#1918)

gRPC (nphttp2) transport now supports reusing a write buffer for each connection, reducing per-frame allocations on the write path. New client and server options are exposed to enable this behavior.

  • Framer refactor in pkg/remote/trans/nphttp2/grpc/framer.go to share a buffer across writes on the same connection.
  • New options in client/option.go and server/option.go to opt into buffer reuse.

Optimizations

ttstream - Remove Connection Write Goroutine to Avoid Sender OOM (#1917)

Removed the dedicated per-connection write goroutine from the ttstream transport. The previous design could accumulate unbounded buffered frames on the sender side when the peer was slow, leading to out-of-memory on the sender. Writes are now performed synchronously, applying natural back-pressure to producers.

  • Refactored pkg/remote/trans/ttstream/transport_client.go and transport_server.go to drop the writer goroutine.
  • Added frame-level tests and expanded transport test coverage.

Commits

  • d83a475 - feat: gRPC supports reusing write buffer for each connection (#1918)
  • 850f33d - optimize: remove ttstream connection write goroutine to avoid Sender OOM (#1917)
  • f732553 - chore: release version v0.16.1 (#1919)

Full Changelog: v0.16.0...v0.16.1

Don't miss a new kitex release

NewReleases is sending notifications on new releases.