Feature:
- [#840] feat(fallback): support fallback ability for kitex client-side, usage guide refer to Fallback
- [#841] feat(tool): add GetResult() and GetFirstArgument() methods for service params of protobuf
- [#791] feat(tool): merge two ways of passing extensions, to support two ways at sametime
- [#797] feat(loadbalance): use smooth weighted round robin algo as default Loadbalance policy
- [#760] feat(grpc): support TLS config in kitex grpc client
- [#781] feat(tool): supports custom templates
- [#783] feat(ttheader): add encode logic for gdpr token in TransInfo
- [#775] feat(tool): support custom generate path
- [#687] feat(tool): add protoc plugin flag
Optimize:
- [#750] optimize(generic): generic call write zero value for required and default fields to meet the specification of apache thrift and keep consistent with normal thrift encode of Kitex.
- [#739] optimize(generic): modify the url routing to align with Hertz for HTTP generic call
- [#752] optimize(ttheader): attach part of ttheader binary into error when readKVInfo failed, which is useful for troubleshooting
- [#821] optimize(config): add DeepCopy() & Equals() to circuitbreaker.CBConfig and retry.Policy
- [#827] optimize: revise the remoteInfo of retry call, using the remoteInfo of the RPCCall that returns
- [#762] optimize(tool): add go mod auto replace to thrift 0.13 in thrift mode
- [#755] optimize: improve client error msg when ctx cancel or timeout
- [#756] optimize: use sync.Cond as the profiler event trigger
- [#753] optimize: add recover for client's Close
Fix
- [#734] fix(retry): fix the panic problem caused by concurrent read and write of rpcinfo under backup retry
- [#837 #842] fix(metahandler): adjust MetainfoHandler to the top of the MetaHandlers array to ensure that the logic of custom MetaHandlers that depends on MetainfoHandler works
- [#812] fix: use detectionHandler to perform protocol detection in windows environment to support gRPC
- [#851] fix: upgrade frugal to v0.1.6 for missing stop field
- [#845] fix: fix the problem that RPCStat report status as success when biz handler return err
- [#822] fix(loadbalance): don't share balancer factory when loadbalance is defined by user
- [#732] fix(mux): mux server waits for shardqueue close before shutdown
- [#795] fix(grpc): zero first byte of grpc data frame, which could be random data from mcache
- [#668] fix: fix race problem in queue.go/queue @dugenkui03
- [#743] fix: use sharedTicker for long conn pool to prevent goroutine numbers increase as the number of client increases
- [#799] fix(util): should return when get at least one GOPATH @StellarisW
- [#807] fix(codec): fix fastpb nil ptr when struct fields are all default values
- [#794] fix(tool): fix fastpb codegen by updating dependency
- [#787] fix(tool): the import did not use the new method to render when template append content
- [#785] fix(tool): remove useless combine service files
- [#754] fix: fix the usage of metainfo in grpc scene
Refactor
- [#814 #843] refactor(trans): return error in onRead of defaultServerHandler and close conn in outer method
- [#816] refactor(utils): add utils.GetEnvLogDir and deprecate utils.GetLogDir
Tests
- [#839 #693] test: import mockey repo and add usage demo of mockey unit test
- [#806] test(transmeta):add some test cases for tansmeta package
Docs
- [#761] docs: update README.md @fuergaosi233
Chore
- [#817, #832] chore: upgrade dependency lib to adapt go 1.20
- [#772] chore: modify kitex gen code meta file name from kitex.yaml to kitex_info.yaml
Dependency Change:
- github.comcloudwego/netpoll: v0.3.1 => v0.3.2
- github.com/cloudwego/thriftgo: v0.2.4 => v0.2.8
- github.com/cloudwego/frugal: v0.1.3 => v0.1.6
- github.com/cloudwego/fastpb: v0.0.3 => v0.0.4-0.20230131074846-6fc453d58b96
- github.com/choleraehyq/pid: v0.0.15 => v0.0.16
- github.com/bytedance/gopkg: v0.0.0-20220531084716-665b4f21126f => v0.0.0-20220817015305-b879a72dc90f
Thanks a lot to those community contributors who submit some pull requests for this version:
@dugenkui03 @StellarisW @fuergaosi233