Skip to content

Releases: cloudwego/kitex

v0.12.1

03 Jan 07:46
d6f3824
Compare
Choose a tag to compare

Fix:

[#1648] fix(generic): binary generic server returning biz err failed
[#1649] fix(generic): Package information in idl missing when using protobuf generic streaming
[#1644] fix: server data race issue

v0.12.0

13 Dec 01:50
0f3df4d
Compare
Choose a tag to compare

Feature:

[#1541] feat(streamv2): support ttheader streaming
[#1623] feat(gRPC): optimize gRPC error prompt
[#1556] feat(gRPC): support gRPC graceful shutdown
[#1467] feat(generic): support thrift streaming for json generic client
[#1607] feat(tool): kitex tool support gen frugal codec for certain struct
[#1599] feat(tool): call FastWriteNocopy in FastWrite
[#1526] feat(generic): support an option to remove go.tag annotation
[#1536] feat(generic): support an option to set ParseMode for each client
[#1510] feat: register service with service level middleware

Optimize:

[#1635] optimize: add two function for binary protocol to get bufiox reader and writer
[#1630] optimize(tool): implement no recursive generate to support incremental update
[#1617] optimize(retry): optimize UpdatePolicy and add test cases to check invalid retry policy
[#1614] optimize: add ttheader codec api back to keep compatibility
[#1606] optimize(tool): use embedded thriftgo as default option
[#1595] optimize(tool): optimize pb tool code

Fix:

[#1636] fix(tool): fix tool hint
[#1633] fix(ttstream): call DoFinish with exception closing stream
[#1628] fix(client): rpctimeout would cause ctx panic
[#1622] fix(generic): use jsoniter instead of sonic
[#1562] fix: deep copy nil string
[#1602] fix(gRPC): check if the type assertion succeed in ProtocolMatch to avoid panic
[#1598] fix(retry): fix mixed retry update logic
[#1590] fix(generic): set default values for optional fields of primitive types with generic with dynamicgo
[#1580] fix(netpoll): timeout when calling Next
[#1574] fix(trace): stream event handler ignore io.EOF event
[#1572] fix(generic): fix a bug where default values are not set with dynamicgo
[#1563] fix(generic): fix a service search problem with CombineServices parse mode
[#1568] fix(wpool): no allocation and correct ctx
[#1558] fix(bthrift): convert unknown type recursively
[#1555] fix(generic): compatible with legacy code

Refactor:

[#1615] refactor: get rid of apache thrift in go.mod
[#1611] refactor: move ttheader codec logic to gopkg
[#1553] refactor(codec/thrift): unified typecodec & new file layout

Tests:

[#1593] test(server): speed up test time
[#1560] tests(limiter): fix unstable TestConnectionLimiter
[#1561] test: fix gRPC TestClientMix data race

Chore:

[#1634] chore: upgrade frugal
[#1632] chore: update cloudwego dependency versions
[#1581] perf(client): new rpctimeout impl
[#1627] chore(generic): expose generic streaming over gRPC
[#1619] chore(generic): restore proto Message back
[#1616] chore(generic): remove deprecated apis/interfaces/variables
[#1564] perf(circuitbreak): no allocation for MW
[#1567] perf(retry): minimum obj alloc for context
[#1573] chore: update localsession to v0.1.1
[#1557] perf(rpcinfo): rm lock for rpcStats
[#1559] ci: optimized run env and remove unused ci

v0.11.3 same with v0.11.2

11 Sep 09:05
Compare
Choose a tag to compare

version v0.11.3 is a patch from v0.11.2 for updating version.go to fix version mismatched issue #1542

v0.11.2

11 Sep 02:52
c5acf5e
Compare
Choose a tag to compare

Hotfix

[#1539] hotfix: upgrade cloudwego/gopkg to fix WriteBinaryNocopy

v0.11.1

11 Sep 02:35
240f4ab
Compare
Choose a tag to compare

Deprecated: tag on wrong branch

v0.11.0

09 Sep 07:14
73ef782
Compare
Choose a tag to compare

Feature:

[#1509] feat(retry): support Mixed Retry which integrating Failure Retry and Backup Request
[#1478] feat: customized payload validator
[#1514] feat(grpc): server returns cancel reason
[#1513] feat(tool): support updating import path for PkgInfo
[#1425] feat(tool): support generating multiple handlers for multiple services
[#1491] feat(grpc): add GetTrailerMetadataFromCtx
[#1492] feat: add GetCallee to kitexutil to get the service name of callee
[#1479] feat(tool): embed thriftgo into kitex tool

Optimize:

[#1485] optimize: add cachekey to discovery event for debug
Fix:
[#1525] fix: move json-iterator back to support marshal map[any]any
[#1471] fix(streaming): resolve ctx diverge in server-side streaming
[#1515] fix(gRPC): pass error when client transport is closed
[#1501] fix(generic): judge business error directly
[#1503] fix: return an unknown service/method exception to client correctly under multi_service server scenario
[#1487] fix(generic): fix a generic serviceInfo compatible issue
[#1489] fix(codec): wrap trans error for apache thrift read error
[#1486] fix(trans/netpoll): log when panic in onConnRead
[#1476] fix: fix GetServerConn interface assert for streamWithMiddleware
[#1481] fix(gonet): adjust gonet server read timeout to avoid read error
[#1466] fix: allow HEADERS frame with empty header block fragment

Refactor:

[#1512] refactor: thrift and generic codec uses bufiox interface for encoding and decoding
[#1490] refactor: optimized apache codec without reflection
[#1483] refactor: use github.com/cloudwego/gopkg/protocol/thrift/apache
[#1474] refactor: rm apache thrift in internal/mocks
[#1470] refactor: rm apache thrift in pkg/generic & netpollmux
[#1450] refactor(generic): remove apache thrift.TProtocol from generic
[#1441] refactor: deprecate bthrift, use cloudwego/gopkg
[#1455] refactor(test): perf optimize and log loc correct

Tests:

[#1469] test: replace judgement of mem stats of client finalizer by closed count check

Chore:

[#1532] chore: update dependency
[#1531] chore(generic): move generic APIs back to external package (revert)
[#1528] chore(ci): use blank identifier to fix ci check failure
[#1527] perf(grpc): bdp ping rate limit
[#1522] chore(generic): make generic streaming APIs internal
[#1521] chore: remove json-iterator dependency
[#1519] chore: update dependency again
[#1518] chore: update dependency
[#1517] chore: upgrade go version to solve scenario test issue
[#1511] perf(thrift): encodeBasicThrift write logic didn't use kitex BinaryProtocol
[#1508] chore: update bytedance/gopkg to upgrade go/x/net for security
[#1465] chore(generic): add an external method to create service info for generic streaming client
[#1504] perf(grpc): zero allocation in hot path
[#1497] perf: add option to enable spancache for fastpb
[#1495] perf(thrift): use kitex BinaryProtocol replace apache BinaryProtocol for apache thrift codec
[#1493] chore: update CI and go.mod to support 1.18-1.23
[#1468] build: adapt to go1.23rc2
[#1482] chore(generic): add generic base using gopkg base
[#1477] chore: upgrade gopkg to v0.1.0
[#1475] chore: remove github.com/stretchr/testify direct dependency
[#1451] chore(ci): disable cache for lint and staticchecks
[#1463] chore: fix grpc keepalive test by start server responsiblly
[#1462] chore(test): fix xorshift64 in consist_test.go
[#1461] chore(ci): optimized bench tests. it takes <1m now
[#1454] chore(ci): speed up multiple ci processes 8min -> 1min

v0.10.3

26 Jul 06:52
d4e163a
Compare
Choose a tag to compare

Hotfix

[#1453] hotfix: issue of cannot handle conflicting methods correctly when registering a fallback service before another service

v0.10.2

25 Jul 07:35
eb99c3f
Compare
Choose a tag to compare

Feature:

[#1363] feat(retry): support customizing retry policy key, used to adapt to other configuration centers (previously required to use Method), such as Istio.

[#1356] feat(tool): implement kitex tool as sdk

[#1404] feat(generic): support returning biz err for binary generic

Optimize:

[#1392] optimize: supplement the logic of checking if timeout error is business timeout. Identify that the context passed by the user includes timeout which is shorter than RPCTimeout, and judge it as "timeout by business"

Fix:

[#1416] fix(generic): fix payload length check of http generic

[#1438][#1436] fix: support setting PurePayload with new style

[#1402][#1439] refactor: refactoring service and method routing for multi-services to fix "unknown service xxx" error when using CombineService client, and also make code clear

Chore:

[#1433] chore: remove useless reflection api

[#1403] chore: fix bind err when test

[#1382] chore: remove the using of mockey

v0.10.1

24 Jun 11:15
906aeee
Compare
Choose a tag to compare

Hotfix:

  • [#1412] fix(kitex tool): import unused protection when -module is not set
  • [#1410] fix(codec): add option to enable span cache and disable it by default

v0.10.0

12 Jun 06:16
22991e2
Compare
Choose a tag to compare

Feature:

  1. [#1370] feat(loadbalance): do not cache all the keys for Consistent Hash
  2. [#1359] feat:(generic) jsonpb using dynamicgo support parse IDL from memory
  3. [#1353] feat(retry): add ctx param for customized result retry funcs
  4. [#1352] feat: add option to specify ip version for default HTTPResolver
  5. [#1316] feat(kitex tool): support dependencies compatibility checking
  6. [#1346] feat(generic): set dynamicgo parse mode
  7. [#1336] feat(tool): fast-codec supports Thrift Fieldmask
  8. [#1313, #1378] feat(thrift codec): implement skipDecoder to enable Frugal and FastCodec for standard Thrift Buffer Protocol
  9. [#1257] feat: CBSuite custom GetErrorType func

Optimize:

  1. [#1349] optimize(gRPC): gRPC onError uses CtxErrorf to print log with information in ctx
  2. [#1326] optimize(tool): remove thrift processor for less codegen

Perf:

  1. [#1369] perf(thrift): optimized skip decoder
  2. [#1314] perf: use dirtmake to reduce memclr cost
  3. [#1322] perf(codec): support fast write nocopy when using netpoll link buffer
  4. [#1276] perf: linear allocator for fast codec ReadString/ReadBinary
  5. [#1320] perf(codec): fast codec use batch alloc

Fix:

  1. [#1379] fix: fix a bug "unknown service xxx" when using generic client by not writing IDLServiceName when it's generic service
  2. [#1368] fix(remote): modify the error message thrown when no target service is found
  3. [#1374] fix: init default values when using liner allocator
  4. [#1361] fix: span cache re-cap bytes when using Make
  5. [#1362] fix(payloadCodec): replace the registered PayloadCodec if the type is same when using WithPayloadCodec for server-side
  6. [#1364] fix: fix grpc compressor mcache free panic when data is empty
  7. [#1328] fix(gRPC): release connection in DoFinish for grpc streaming to close the short connection
  8. [#1307] fix(connpool): kitex long pool reset idleList element to nil to prevent conn leak
  9. [#1294] fix(netpollmux): fix a bug that disables multi-service by assigning the first svcInfo to targetSvcInfo
  10. [#1308] fix(generic): not write generic method name for binary generic exception to align with method names of services not using binary generic

Refactor:

  1. [#1344] refactor(tool): export thriftgo template definition in kitextool

Chore:

  1. [#1385] chore: update dynamicgo to v0.2.8
  2. [#1383] chore: upgrade netpoll to v0.6.1
  3. [#1376] chore: integration test use go 1.20 to solve the compatibility issue of offical gRPC in kitex-tests repo
  4. [#1355] chore: upgrade netpoll to v0.6.1 pre-release version
  5. [#1338] chore: correct the comment of FreezeRPCInfo
  6. [#1347] chore: use runtimex to replace choleraehyq/pid
  7. [#1342] chore: update sonic/loader to v0.1.1
  8. [#1334] chore: update dynamicgo to v0.2.3
  9. [#1324] chore: update dynamicgo and sonic version
  10. [#1317] chore: frugal v0.1.15 (with migrated iasm)

Thanks a lot to those community contributors who submit some pull requests or share your ideas for this version:
@XiaoYi-byte