github cloudwego/kitex v0.16.0

latest release: v0.16.1
12 hours ago

Features

Streaming - Recv Timeout and gRPC Error/Log Adjustments (#1911)

Added a new Recv timeout configuration for streaming RPCs, allowing users to control how long a single Recv call may block before returning an error. Also refined gRPC error propagation and logging behavior so streaming failures are reported more accurately.

  • New call option in client/callopt/streamcall and client option in client/option_stream.go for configuring Recv timeout.
  • Adjustments to pkg/remote/trans/nphttp2 codes and pkg/remote/trans/ttstream exceptions for clearer error classification.

Streaming - Detailed Tracing Events (#1905)

Introduced fine-grained tracing events for streaming RPCs. A new stream_tracer in pkg/rpcinfo enables observability into per-stream lifecycle events (send/recv/header/trailer), and both gRPC (nphttp2) and ttstream transports now emit these events.

  • New pkg/rpcinfo/stream_tracer.go with extensive test coverage.
  • New stream option APIs on both client and server (client/option_stream.go, server/option_stream.go).

Streaming - Remove RPCInfo Reuse for Streaming (#1909)

Removed RPCInfo object reuse on the streaming server path for both nphttp2 and ttstream. This avoids cross-stream state leakage where a long-lived stream could observe stale data from a previously recycled RPCInfo.

Dependencies

Updated Dependencies (#1912)

  • github.com/bytedance/sonic v1.14.2 → v1.15.0
  • github.com/bytedance/sonic/loader v0.4.0 → v0.5.0
  • github.com/cloudwego/dynamicgo v0.7.1 → v0.8.0
  • github.com/cloudwego/frugal v0.3.0 → v0.3.1

Commits

  • 25a04f9 - feat(streaming): add Recv timeout config and adjust gRPC error/log (#1911)
  • 7f2cf83 - chore: update dependencies (#1912)
  • f7b6362 - feat(streaming): support detailed tracing events (#1905)
  • 5cf426c - feat(streaming): remove rpcinfo reuse for streaming (#1909)
  • 910b399 - chore: release version v0.16.0 (#1913)

Full Changelog: v0.15.4...v0.16.0

Don't miss a new kitex release

NewReleases is sending notifications on new releases.