Kitex Versions Save

Go RPC framework with high-performance and strong-extensibility for building micro-services.

v0.9.1

2 months ago

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

2 months ago

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

v0.7.4

5 months ago

Note: this hotfix version is deliberately added after v0.8.0 to solve the deep copy function issue.

Feature:

[#1202] feat: add option to support generate StringDeepCopy function to avoid depending kutil package

Fix:

[#1166] fix(generic): issue of deep copy function generation when map key type is binary

v0.8.0

6 months ago

Feature:

[#1051] feat(grpc): support gRPC multi-service on a server [#1189] feat(rpcinfo): add kitexutil methods for the convenience to fetch rpc information from RPCInfo [#1176] feat(tool): add an environment variable to make it easier to debug kitex tool [#1173] feat(rpcinfo): allow disable rpcinfo reuse for async reference [#1172] feat(retry): client.WithSpecifiedResultRetry should have higher priority [#1150] feat(proxy): add an interface to customize proxy middleware to replace the default implementation [#1159] feat(generic): support returning []byte for binary fields in map generic [#1153] feat(retry): add Extra for retry.FailurePolicy for better extension

Optimize:

[#1187] optimize(tool): add an option to keep resp for kitex tool [#1183] optimize(meshheader): retrieve rip from meshheader and write it to TransInfo [#1178] optimize(bizErr): recurse to obtain BizErr to avoid additional Error encapsulation in the middle, resulting in unwrap results that are not BizErr

Fix:

[#1126] fix(generic): the issue of structs cache of generic call has dirty data under multiple services scene [#1168] fix(tool): remove the pointer to java.Object in generated file for CodecDubbo [#1169] fix(tool): empty struct generate wrong struct [#1166] fix(generic): issue of deep copy function generation when map key type is binary [#1155] fix(tool): add import package 'context' for gRPC client.go

Tests:

[#1177] test: avoid port conflict

Chore:

[#1190] chore: update thriftgo version to v0.3.3 [#1186] chore: update readme with examples and new blogs [#1185] chore: add ci for windows [#1182] chore: update dynamicgo to v0.1.6 [#1152] chore: update dynamicgo and sonic version [#1164] chore: update frugal to v0.1.12 and allow disable frugal by build tag [#1161] chore: update frugal to v0.1.10 [#1157] chore: update frugal to v0.1.9 [#1151] chore(test): upgrade mockey to latest to compatible with Go1.21

v0.7.3

7 months ago

Feature

[#1144] feat: enable service inline client panic log [#1076] feature(tool): support scaffold generation for hessian2

Fix

[#1143] fix: fix the data race of client-side ri.From() map write in gRPC [#1141] fix: no recycle rpcinfo if endpoint return error [#1146] fix(retry): reset ctx with last ri to trace correctly

Chore

[#1148] chore: upgrade netpoll to v0.5.1

v0.7.2

8 months ago

Feature:

[#1117] feat(retry): support retry percentage limit

Optimize:

[#1033] optimize: no need to check svcInfo twice [#1115] optimize: rm outdated framed suggestion [#1095] optimize: add K_METHOD in serviceinline ctx [#1107] optimize(connpool): set maxIdleGlobal to no limit if not set

Fix:

[#1116] fix: use the last rpcinfo to trace [#1104] fix: move limiter handler to the last of the inbound handler to get rpcinfo in custom limiter [#1103] fix: reset all fields of netpoll byte buffer when recycle it [#1106] fix(grpc): fix grpc streaming tps decreasing and the selection logic of compressor [#1114] fix(gRPC): client send END_STREAM flag in unary call (#1066) [#1096] fix(tool): add backquote to handle filepath string invalid syntax under windows os [#1098] fix(tool): fix import for codegen template when using slim and unknown fields

Tests:

[#1124] test: fix codegen script [#1122] test: add codegen test [#1119] test(connpool): modify the idleTimeout

Chore:

[#1133] chore: update version v0.7.2 [#1125] chore: upgrade netpoll to v0.5.0 [#1123] perf: replace concurrent string builder with lock [#1118] perf: optimize remote addr setter interface to reduce lock cost of Address() [#1110] chore: upgrade netpoll to v0.4.2 pre-release [#1061] chore: netpoll pre release v0.4.2 [#1100] chore: enable frugal on go1.21

Full Changelog: https://github.com/cloudwego/kitex/compare/v0.7.1...v0.7.2

v0.7.1

9 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/cloudwego/kitex/compare/v0.7.0...v0.7.1

v0.7.0

9 months ago

Feature:

[#1053] feat(retry): support to distinguish local retry request [#1058] feat(retry): support delete retry policy dynamically [#1000] feat(grpc): support grpc compress [#1018] feat: use local-session to backup request context in case of missing [#1045] feat(generic): support base64 codec for map generic [#1035] feat(config): provide the ability to dynamically configure the rpctimeout config on the method hierarchy [#825] feat(generic): integrate dynamicgo into kitex generic call [#1019] feat(lb): interleaved weighted round-robin load balancer

Optimize:

[#1064] optimize: check header max size when ttheader encode [#1017] optimize: implement unknown field function without serialization [#1036] optimize(protobuf): ignore err when (un)marshal empty req/resp [#1056] optimize(tool): optimize struct ref [#1043] optimize: add method info to the error message of the server handler panic for easy troubleshooting [#1025] optimize: use Tags of ServerBasicInfo as default Tags of RegistryInfo [#1020] optimize: add nil check for MethodInfo which get from ServiceInfo in client.Call to ignore panic

Fix:

[#1073] fix: fix failure retryer dump panic [#1067] fix: slim template with deepcopy [#1055] fix: ignore SIGHUP when run with nohup [#1048] fix(retry): keep the behavior of retry policy consistent between initing and updating [#1047] fix(tool): cli warning for unknown suffix [#1038] fix(config): correct the function signature of the rpcinfo.TimeoutProvider implementation [#1034] fix(generic): add case int16 into buildinTypeIntoString [#1023] fix(generic): avoid dead-loop when marshal self-referenced struct [#1028] fix:modify .licenserc.yaml [#1012] fix: skip frugal on go 1.21 [#992] fix(grpc): use mcache to fix memory leak caused by grpc codec buffer to reuse memory incorrectly [#994] fix(tool): fix kitex tool git repo pulling logic

Chore:

[#1074] chore: update thriftgo to v0.3.0 [#1031] chore: remove wechat group in readme [#1008] chore: update dynamicgo to v0.1.1 [#1006] chore: remove unecessary replace for frugal [#1007] chore: upgrade netpoll to v0.4.1

v0.6.2

10 months ago

Hotfix:

  • [#1037] fix(generic): generic call bugs on empty self-referred struct and map int16-typed key

v0.6.1

11 months ago

Hotfix:

  • [#988] hotfix(code_gen): fix the problem of code generation with slim template failure