Skip to content

Releases: cloudwego/kitex

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

v0.9.1

18 Mar 08:35
8526b3a
Compare
Choose a tag to compare

Feature:

  1. [#1278] feat: service inline adapt v0.9.0
  2. [#1265] feat:(generic) support set fields for empty struct
  3. [#1293] feat(generic): PB DynamicGo support importDirs
  4. [#1287] feat(generic): compatible with lossless conversion for int8-64
  5. [#1282] feat(metahandler): custom MetaHandler for only the needed functions

Optimize:

  1. [#1291] optimize(tool): add auto install for thriftgo

Fix:

  1. [#1283] fix(streaming): not reporting BizStatusError to tracer
  2. [#1286] fix(grpc): identify kitex errors before conv in convertStatus
  3. [#1280] fix: code_gen client stream should import WithDoFinish
  4. [#1279] fix(grpc): client stream recv returning io.EOF is not error
  5. [#1272] fix: OnError call twice in svrTransHandler.OnRead
  6. [#1264] fix(grpc): set service/method name into rpcinfo before OnReadStream

Chore:

  1. [#1298] chore: add String function for gRPC codes
  2. [#1289] perf(utils/json): use sonic to implement Map2JSONStr and JSONStr2Map
  3. [#1277] chore: update readme description, blog and img

v0.9.0

04 Mar 08:19
92f0cb7
Compare
Choose a tag to compare

Feature:

  1. [#1208, #1251, #1230, #1226] feat: support thrift streaming (replacing the protobuf payload of GRPC/HTTP2 with thrift binary)
  2. [#1217] feat: support thrift and pb multi service
  3. [#1268] feat(thrift): support frugal fallback for arm
  4. [#951] feat(bizerr): support returning biz status error for json/map generic server
  5. [#1199] feat(loadbalance): add loadbalancer using Alias Method (#1184)
  6. [#1244] feat(timeout): add option server.WithEnableContextTimeout to enable server timeout
  7. [#1228] feat(streaming): Adding Recv/End events to streaming requests to improve trace information
  8. [#1062] feat(generic): supports JSON and Map generic call for the KitexProtobuf protocol
  9. [#1225] feat(timeout): support timeout transparent transmission by default when using TTHeader transport protocol
  10. [#1211] feat(hessian2): support nested struct for hessian2 customized Exception

Optimize:

  1. [#1222] optimize(frugal): enable frugal by default when the generated code is using slim template
  2. [#1209] optimize: split encoder interface to customize meta and payload encoding implementation
  3. [#1206] optimize(tool): add IsDir judge in readTemplate and add template register func
  4. [#1198] optimize(kitexutil): add util api for getting real request and response
  5. [#1197] optimize(kitexutil): add GetCallerIP util method in kitexutil to fetch Caller IP
  6. [#1195] optimize(error): more specific instruction when panic in server handler
  7. [#1235] optimize(tool): add IDLName field in PackageInfo for cwgo tool rendering
  8. [#1238] optmize(bizerr): support biz status error for streaming mode

Fix:

  1. [#1236] fix(hessian2): correct code-ref behavior when thrift file is not in project dir
  2. [#1234] fix(hessian2): still perform replacement on handler.go when -service is not specified for hessian2
  3. [#1232] fix(gRPC): append "h2" to next proto in gRPC tlsConfig to enable protocol negotiation in TLS
  4. [#1215] fix: bugfix for hessian2 tpl codegen
  5. [#1203, #1205] fix: fix the issue where disabling rpcinfo reuse on the server side does not take effect
  6. [#1227] fix: idl-ref overwritten when using hessian2
  7. [#1194] fix(retry): always set RespOp && preventive panic to avoid dead loop

Chore & Tests

  1. [#1273] chore: upgrade netpoll to v0.6.0
  2. [#1263] chore: update sonic to v1.11.1
  3. [#1255] chore: upgrade netpoll to v0.6.0 pre-release version
  4. [#1252] chore: upgrade golang.org/x/net
  5. [#1254] chore: upgrade sonic to v1.11.0 to support go1.22
  6. [#1231] chore: frugal support go1.22
  7. [#1220] test: correct the cachekey in the benchmark test of balancer
  8. [#1196] test: add just biz handler message error

Thanks a lot to those community contributors who submit some pull requests or share your ideas for this version:
@DMwangnima @jizhuozhi @NX-Official @jieqiboh @Lvnszn @Skyenought