Go RPC framework with high-performance and strong-extensibility for building micro-services.
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
Note: this hotfix version is deliberately added after v0.8.0 to solve the deep copy function issue.
[#1202] feat: add option to support generate StringDeepCopy function to avoid depending kutil package
[#1166] fix(generic): issue of deep copy function generation when map key type is binary
[#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
[#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
[#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
[#1177] test: avoid port conflict
[#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
[#1144] feat: enable service inline client panic log [#1076] feature(tool): support scaffold generation for hessian2
[#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
[#1148] chore: upgrade netpoll to v0.5.1
[#1117] feat(retry): support retry percentage limit
[#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
[#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
[#1124] test: fix codegen script [#1122] test: add codegen test [#1119] test(connpool): modify the idleTimeout
[#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
Full Changelog: https://github.com/cloudwego/kitex/compare/v0.7.0...v0.7.1
[#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
[#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
[#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
[#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