Skip to content

Releases: cloudwego/kitex

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

v0.7.4

12 Dec 06:01
fe52f9d
Compare
Choose a tag to compare

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

29 Nov 11:00
50d46f3
Compare
Choose a tag to compare

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

18 Oct 11:53
d2e6e99
Compare
Choose a tag to compare

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

27 Sep 12:17
3dfe149
Compare
Choose a tag to compare

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: v0.7.1...v0.7.2

v0.7.1

31 Aug 05:48
07015dc
Compare
Choose a tag to compare

What's Changed

  • chore: Merge back v0.7.0 by @HeyJavaBean in #1077
  • feat: add heartbeat MessageType and processing logic for svrTransHandler by @DMwangnima in #1069
  • fix(gRPC): client send END_STREAM flag in unary call by @ppzqh in #1066
  • fix(generic): activate api.js_conv by default for json generic with dynamicgo to be consistent with original json generic by @Marina-Sakai in #1084
  • feat(limit): support updating config for rate limit dynamically by @whalecold in #1083
  • optimize(timeout): add more log info in case of 'timeout by business' by @felix021 in #1088
  • fix: unmarshal return non-nil response when buf is nil by @jayantxie in #1086
  • feat: provide an api for getting deserialized unknown fields from generated struct. by @jayantxie in #1087
  • fix(generic): support conversion from string to int and float for json generic to be consistent with the original json generic by @Marina-Sakai in #1090
  • fix(generic): support string for fields of type void in json generic using dynamicgo to be consistent with the original json generic by @Marina-Sakai in #1089
  • Revert "fix(gRPC): client send END_STREAM flag in unary call" by @ppzqh in #1092
  • chore: release v0.7.1 by @alice-yyds in #1093

New Contributors

Full Changelog: v0.7.0...v0.7.1

v0.7.0

15 Aug 03:37
d06fec1
Compare
Choose a tag to compare

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

26 Jul 08:15
75b914b
Compare
Choose a tag to compare

Hotfix:

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

v0.6.1

19 Jun 08:33
bed7557
Compare
Choose a tag to compare

Hotfix:

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