Skip to content

Releases: cloudwego/kitex

v0.12.3

27 Feb 03:37
3012782
Compare
Choose a tag to compare

Fix:

[#1713] fix(tool): Kitex Tool exits abnormally when -use is used
[#1712] fix(ttstream): pingpong method refers to server interface defined in Kitex generation code when streamx is enabled and there are other streaming methods

Chore:

[#1714] chore: upgrade cloudwego gopkg

v0.12.2

18 Feb 07:31
a53a472
Compare
Choose a tag to compare

Feature:

[#1640] feat(mw): MiddlewareBuilder can return nil
[#1701] feat: update dynamicgo to remove build constraits
[#1650] feat(gRPC): add monitor closeStreamTask for cancelled gRPC client stream
[#1653] feat: set crrst flag on response header to ensure kitex client won't reuse bad connections
[#1674] feat(tool): use go.mod for -module
[#1673] feat(generic): add an option to specify an IDL service name to be parsed
[#1661] feat(endpoint): MiddlewareBuilder can return nil

Optimize:

[#1696] optimize(tool): optimize fastcodec->frugal replacement
[#1681] optimize(exit): server graceful shutdown logic to avoid EOF when idle connections receive new requests after being closed

Fix:

[#1706] fix(gRPC): golang CI Linter failure on http2Client
[#1690] fix(kitexutil): check if address is nil when GetCallerAddress to prevent panic
[#1688] fix(tool): refer each ServiceInfo directly when -use and -tpl multiple_services are set
[#1698] fix(ttstream): pingpong method refers to server interface defined in Kitex generation code when streamx is enabled and there are other streaming methods
[#1693] fix(server): log recover result
[#1692] fix(tool): some bugfix for kitex tool
[#1666] fix(generic): fix codec to be updated even if there is an idl update
[#1677] fix(gRPC): ignore triggered actively connection error
[#1675] fix(tool): remove redundant dependency for streamx generation code
[#1672] fix(tool): fix kitex tool bugs
[#1659] fix(serviceinline): fix the issue of missing CtxEventBusKey and CtxEventQueueKey during server initialization in the service inline scenario
[#1655] fix: fix the issue which the server-side did not report failure after panic occurred during request processing

Refactor:

[#1680] refactor(tool): rm thriftgo dep from pkg generator
Tests:
[#1691] test(server): fix address already in use
[#1684] test: fix creating tmp dir in unit test
[#1676] test(streamx): fix streamx Recv timeout unit test
[#1671] test(streamx): fix streaming unit tests

Chore:

[#1704] ci: use flag for codecov
[#1700] Revert "fix(ttstream): pingpong method refers to server interface defined in Kitex generation code when streamx is enabled and there are other streaming methods"
[#1699] ci: uses codecov
[#1694] chore(generic): wait until server starts in tests
[#1683] ci: prepare for Windows X64 hosts
[#1643] perf(thrift): optimized skipdecoder for netpoll
[#1678] chore(tool): clearer log pkg usage
[#1667] chore: update deps and adjust dynamicgo's default option
[#1663] chore(tool): delete tool cmd excess err judgment

v0.12.1

03 Jan 07:46
d6f3824
Compare
Choose a tag to compare

Fix:

[#1648] fix(generic): binary generic server returning biz err failed
[#1649] fix(generic): Package information in idl missing when using protobuf generic streaming
[#1644] fix: server data race issue

v0.12.0

13 Dec 01:50
0f3df4d
Compare
Choose a tag to compare

Feature:

[#1541] feat(streamv2): support ttheader streaming
[#1623] feat(gRPC): optimize gRPC error prompt
[#1556] feat(gRPC): support gRPC graceful shutdown
[#1467] feat(generic): support thrift streaming for json generic client
[#1607] feat(tool): kitex tool support gen frugal codec for certain struct
[#1599] feat(tool): call FastWriteNocopy in FastWrite
[#1526] feat(generic): support an option to remove go.tag annotation
[#1536] feat(generic): support an option to set ParseMode for each client
[#1510] feat: register service with service level middleware

Optimize:

[#1635] optimize: add two function for binary protocol to get bufiox reader and writer
[#1630] optimize(tool): implement no recursive generate to support incremental update
[#1617] optimize(retry): optimize UpdatePolicy and add test cases to check invalid retry policy
[#1614] optimize: add ttheader codec api back to keep compatibility
[#1606] optimize(tool): use embedded thriftgo as default option
[#1595] optimize(tool): optimize pb tool code

Fix:

[#1636] fix(tool): fix tool hint
[#1633] fix(ttstream): call DoFinish with exception closing stream
[#1628] fix(client): rpctimeout would cause ctx panic
[#1622] fix(generic): use jsoniter instead of sonic
[#1562] fix: deep copy nil string
[#1602] fix(gRPC): check if the type assertion succeed in ProtocolMatch to avoid panic
[#1598] fix(retry): fix mixed retry update logic
[#1590] fix(generic): set default values for optional fields of primitive types with generic with dynamicgo
[#1580] fix(netpoll): timeout when calling Next
[#1574] fix(trace): stream event handler ignore io.EOF event
[#1572] fix(generic): fix a bug where default values are not set with dynamicgo
[#1563] fix(generic): fix a service search problem with CombineServices parse mode
[#1568] fix(wpool): no allocation and correct ctx
[#1558] fix(bthrift): convert unknown type recursively
[#1555] fix(generic): compatible with legacy code

Refactor:

[#1615] refactor: get rid of apache thrift in go.mod
[#1611] refactor: move ttheader codec logic to gopkg
[#1553] refactor(codec/thrift): unified typecodec & new file layout

Tests:

[#1593] test(server): speed up test time
[#1560] tests(limiter): fix unstable TestConnectionLimiter
[#1561] test: fix gRPC TestClientMix data race

Chore:

[#1634] chore: upgrade frugal
[#1632] chore: update cloudwego dependency versions
[#1581] perf(client): new rpctimeout impl
[#1627] chore(generic): expose generic streaming over gRPC
[#1619] chore(generic): restore proto Message back
[#1616] chore(generic): remove deprecated apis/interfaces/variables
[#1564] perf(circuitbreak): no allocation for MW
[#1567] perf(retry): minimum obj alloc for context
[#1573] chore: update localsession to v0.1.1
[#1557] perf(rpcinfo): rm lock for rpcStats
[#1559] ci: optimized run env and remove unused ci

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