github.com/cloudwego/kitex
v0.16.3
cloudwego/kitex
What this package is like to depend on
Last release 3 days ago
21 Aug 2026
Ships on a steady schedule
a new release about every 2 weeks
Rarely documented
notes for 10 of 66 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
2610 releases · first in 2021
216 releases in the last 12 months
see the full history below
Release timeline
2610 releases · Dec 2023 to Aug 2026Releases
latest 60 of 2610-
v0.16.4-grpc-identify-cascade-cancel21 Aug 2026 pre-release -
v0.16.4-0.20260820084931-72ad8a8db57e20 Aug 2026 pre-releaseNothing published for this version
-
v0.16.4-0.20260728041115-099b60aba44a28 Jul 2026 pre-releaseNothing published for this version
-
v0.16.309 Jul 2026Nothing published for this version
-
v0.16.3-0.20260709023512-df31665b360309 Jul 2026 pre-releaseNothing published for this version
-
v0.16.3-0.20260625071411-6192ed40334f25 Jun 2026 pre-releaseNothing published for this version
-
v0.16.3-0.20260624091426-518ebce2739624 Jun 2026 pre-releaseNothing published for this version
-
v0.16.3-0.20260622031501-d185a3050fb822 Jun 2026 pre-releaseNothing published for this version
-
v0.16.3-0.20260615150054-f308b4eb5e3615 Jun 2026 pre-releaseNothing published for this version
-
v0.16.3-0.20260609033212-a8fa80b8e1d109 Jun 2026 pre-releaseNothing published for this version
-
v0.16.3-0.20260608072739-e9702de6b5cc08 Jun 2026 pre-releaseNothing published for this version
-
v0.16.3-0.20260602035408-368f1a10c6f702 Jun 2026 pre-releaseNothing published for this version
-
v0.16.3-0.20260525122007-574e04ad3c0425 May 2026 pre-releaseNothing published for this version
-
v0.16.3-0.20260521060157-ad63b4c9a51f21 May 2026 pre-releaseNothing published for this version
-
v0.16.3-0.20260511060020-c941e64ada9311 May 2026 pre-releaseNothing published for this version
-
v0.16.3-0.20260509102020-74e6f72f560609 May 2026 pre-releaseNothing published for this version
-
v0.16.3-0.20260509074113-d7d689b77b5209 May 2026 pre-releaseNothing published for this version
-
v0.16.208 May 2026Release notes
Open source →What's Changed
Feat
- feat(generic): support specifying IDL Service Name per call for Binary Generic by @DMwangnima in #1928
- feat(server): add in-process LocalCaller for unary calls by @xiaost in #1930
Fix
- fix(ttstream): add server-side information in ttstream errBizHandlerReturnCancel exception by @DMwangnima in #1921
- fix: remove streaming rpcstats Reset by @DMwangnima in #1922
- chore: change tests workflow on go 1.21-1.26 by @GuangmingLuo in #1923
- fix(generic): panic when generic writing different elem types of container by @DMwangnima in #1926
- fix(streaming): server-side old Stream wrapped in server MW should not be discarded by @DMwangnima in #1929
- fix(timeout): close ticker in rpctimeout pool to prevent resource leak by @DMwangnima in #1931
- fix(codec): frugalAvailable for void func result structs by @xiaost in #1938
- fix(gRPC): connection pool leak when connection is closed and there are no more subsequent calls by @DMwangnima in #1945
- fix(ttstream): ttstream should not recycle connection when Recv timeout with DisableCancelRemote=true by @DMwangnima in #1952
Perf/Optimize
- perf: rpcinfo inline fields by @xiaost in #1935
- optimize(discovery): reduce object allocation in discovery event queue and support changing default capacity of queue by @DMwangnima in #1939
- perf(server): use inline RPCInfo fields in LocalCaller by @xiaost in #1940
- optimize(gRPC): support pooling HTTP2 framer write buffer to reduce idle connection memory by @DMwangnima in #1944
- perf(gRPC): reduce object allocations on the gRPC client side for unified cancel scenarios by @DMwangnima in #1950
Refactor
Chore
- chore(mux): deprecate thrift mux transport by @DMwangnima in #1933
- chore(codec): log data type before errDecodeMismatchMsgType by @xiaost in #1937
- chore: improve bug report issue template by @xiaost in #1941
- chore(queue): remove unused field tailVersion of Queue by @DMwangnima in #1947
- chore: update dependencies and add ErrRPCFinish back for compatibility by @DMwangnima in #1953
- chore: release version v0.16.2 by @DMwangnima in #1954
Docs
Full Changelog: v0.16.1...v0.16.2
-
v0.16.2-0.20260424101306-f6c8262967e324 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260424091624-e4e1622d469124 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260423070419-17be90bea07c23 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260422073711-ec3fc727015722 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260420093858-73d007a8b1d720 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260414022927-a86ecf43e94f14 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260413073722-ffe90734a7c113 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260408094711-dd3eb288c53008 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260406073742-0cf777ba66d106 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260406070134-cc488bcdf62406 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260406063711-1783eca0345a06 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260402123847-ec160c8cb86802 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260402101344-53dbd0c419f002 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260402093117-1c42fd4f132b02 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260401100403-c40c84cb236701 Apr 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260330095530-b7f9bb46a2e230 Mar 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260324083357-89f033748b8024 Mar 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260320074858-3c452e94c8d420 Mar 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260318065706-5636200da5cd18 Mar 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260316033545-571bbeebd25416 Mar 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260313080206-147c2ac76c4213 Mar 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260312125458-6b487780aa5712 Mar 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260303032616-6ca8782bf85603 Mar 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260212143747-e620ae442df212 Feb 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260211064008-205393ed6e7211 Feb 2026 pre-releaseNothing published for this version
-
v0.16.2-0.20260210120411-de2ebd00020b10 Feb 2026 pre-releaseNothing published for this version
-
v0.16.109 Feb 2026Release notes
Open source →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.goto share a buffer across writes on the same connection. - New options in
client/option.goandserver/option.goto 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.goandtransport_server.goto 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
- Framer refactor in
-
v0.16.1-0.20260206074838-d83a4759d22f06 Feb 2026 pre-releaseNothing published for this version
-
v0.16.1-0.20260204074403-850f33ddfdfe04 Feb 2026 pre-releaseNothing published for this version
-
v0.16.1-0.20260129114952-6f84feedec7729 Jan 2026 pre-releaseNothing published for this version
-
v0.16.026 Jan 2026Release notes
Open source →Features
Streaming - Recv Timeout and gRPC Error/Log Adjustments (#1911)
Added a new
Recvtimeout configuration for streaming RPCs, allowing users to control how long a singleRecvcall 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/streamcalland client option inclient/option_stream.gofor configuring Recv timeout. - Adjustments to
pkg/remote/trans/nphttp2codes andpkg/remote/trans/ttstreamexceptions for clearer error classification.
Streaming - Detailed Tracing Events (#1905)
Introduced fine-grained tracing events for streaming RPCs. A new
stream_tracerinpkg/rpcinfoenables 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.gowith 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/sonicv1.14.2 → v1.15.0github.com/bytedance/sonic/loaderv0.4.0 → v0.5.0github.com/cloudwego/dynamicgov0.7.1 → v0.8.0github.com/cloudwego/frugalv0.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
- New call option in
-
v0.15.5-0.20260312030052-8e26d956680d12 Mar 2026 pre-releaseNothing published for this version
-
v0.15.5-0.20260311121252-7935d0785bd811 Mar 2026 pre-releaseNothing published for this version
-
v0.15.5-0.20260311024323-bd75946734c011 Mar 2026 pre-releaseNothing published for this version
-
v0.15.5-0.20260123084107-25a04f9ce5c923 Jan 2026 pre-releaseNothing published for this version
-
v0.15.5-0.20260123064149-7f2cf83cbe5b23 Jan 2026 pre-releaseNothing published for this version
-
v0.15.5-0.20260122053949-a502b0540c6f22 Jan 2026 pre-releaseNothing published for this version
-
v0.15.5-0.20260119031141-f7b636267bc019 Jan 2026 pre-releaseNothing published for this version
-
v0.15.5-0.20260112072316-5cf426cf9e1b12 Jan 2026 pre-releaseNothing published for this version
-
v0.15.5-0.20260108020512-c14a7371bbc608 Jan 2026 pre-releaseNothing published for this version
-
v0.15.5-0.20260104034328-e2c3ce4b993d04 Jan 2026 pre-releaseNothing published for this version
-
v0.15.426 Dec 2025Release notes
Open source →v0.15.4
Bug Fixes
Code Generation - DeepCopy for Binary Types (#1902)
- Fixed: DeepCopy code generation now correctly handles Thrift binary types that are mapped to Go string types.
This ensures string-typed binary fields are handled with simple value assignment instead of byte slice allocation and copying.
Dependencies
Updated: github.com/cloudwego/gopkg v0.1.6 → v0.1.8 (#1903)
Changes included from gopkg v0.1.7:
- Optimized thrift span cache with lazy initialization (performance improvement)
- Fixed protocol handling to ensure data length matches copied bytes for strings and binary data (correctness fix)
- Added connection state checker for gonet (stability improvement)
- Resolved file descriptor operator memory leak (memory safety)
Changes included from gopkg v0.1.8:
- Increased ttheader limit size from 64KB to 256KB
- Fixed header length overflow issues
Impact: Improves protocol handling correctness, memory safety, and increases header size limits for TTHeader protocol users.
Commits