You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v0.12.0 released the StreamX interface to optimise the streaming experience, and supported the custom streaming protocol TTHeader Streaming, but did not support gRPC. So existing users could not migrate.
17
+
18
+
This version supports gRPC for StreamX, users can migrate to StreamX, and the Server side can be compatible with two streaming protocols at the same time. So there is no need to worry about protocol compatibility after interface migration.
19
+
20
+
In particular, when adapting gRPC with StreamX, we found that there are still some inconvenient problems. In order to bring a better experience of using the interface, we have adjusted the StreamX interface for the second time, which will affect the users who have already been using StreamX. We apologise for that.
21
+
22
+
User documentation: [StreamX User Documentation](/docs/kitex/tutorials/basic-feature/streamx)
[Prutal](https://github.com/cloudwego/prutal) is officially open source, on par with Thrift's [Frugal](https://github.com/cloudwego/frugal), and the new version of Kitex integrates Prutal by default.
27
+
28
+
Advantages:
29
+
30
+
- Minimized Code Product Size: Generating Only Structures, No Runtime Code
31
+
32
+
- Leveraging Reflection Optimization Similar to Frugal, Achieving Over 50% Speed Increase
33
+
34
+
- Generating Code Compatible with Existing Protobuf and Derivative Versions
35
+
36
+
User documentation: [Prutal](/docs/kitex/tutorials/code-gen/prutal)
37
+
38
+
### **Feature/Experience Optimization**
39
+
1.**TTHeader Streaming: Support interface-level Recv timeout control**
40
+
41
+
In addition to the existing Client level, this release of TTHeader Streaming supports interface-level Recv timeout configuration, making configuration more flexible.
42
+
43
+
User documentation: [StreamX Timeout Control](/docs/kitex/tutorials/basic-feature/streamx/kitex+streamx+-+stream+timeout+control/)
44
+
45
+
2.**Default Thrift transport protocol changed from Buffered to Framed**
46
+
47
+
This change can leverage FastCodec for better performance.
48
+
49
+
### **Others**
50
+
1.**Code Product Simplification**
51
+
52
+
- Kitex Tool would not generate the repeated verification code for Set data structure and the ```DeepEqual``` function for each structure by default.
53
+
54
+
- If you only want to restore```DeepEqual```, add```-thrift gen_deep_equal=true```to the generation command.
55
+
56
+
- If you want to restore the repeated verification of Set, add```-thrift validate_set=true, -thrift gen_deep_equal=true```to the generation command.
57
+
58
+
- Kitex Tool would not generate the Apache Codec related code by default.
59
+
60
+
- If you want to restore it, add```-thrift no_default_serdes=false```to the generation command.
61
+
62
+
2.**Go Supported Version Change**
63
+
64
+
Support version Go 1.19~1.24, the lowest supported version becomes Go 1.19.
65
+
66
+
if Go version is too low, there will be a prompt when compiling:```note: module requires Go 1.19```.
67
+
68
+
## **Full Change**
69
+
### Feature
70
+
[[#1719](https://github.com/cloudwego/kitex/pull/1719)] feat: prutal for replacing protoc
71
+
72
+
[[#1736](https://github.com/cloudwego/kitex/pull/1736)] feat(ttstream): support WithRecvTimeout stream call option
73
+
74
+
[[#1702](https://github.com/cloudwego/kitex/pull/1702)] feat(gRPC): add grpc client conn dump to help debug the conn and stream status
75
+
76
+
[[#1723](https://github.com/cloudwego/kitex/pull/1723)] feat(codec/thrift): use fastcodec/frugal if apache codec not available
77
+
78
+
[[#1724](https://github.com/cloudwego/kitex/pull/1724)] feat: add tail option to support for delayed initialization of some client options
79
+
80
+
### Optimize
81
+
[[#1728](https://github.com/cloudwego/kitex/pull/1728)] optimize(apache): remove apache codec gen and set default protocol from buffered to framed
82
+
83
+
[[#1732](https://github.com/cloudwego/kitex/pull/1732)] optimize(rpcinfo): purify the transport protocol of rpcinfo in a single rpc request
84
+
85
+
[[#1711](https://github.com/cloudwego/kitex/pull/1711)] optimize(tool): disable set validate and deep equal code gen to simplify kitex_gen
86
+
87
+
[[#1717](https://github.com/cloudwego/kitex/pull/1717)] optimize(gRPC): return more detailed error when received invalid http2 frame
88
+
89
+
### Fix
90
+
[[#1734](https://github.com/cloudwego/kitex/pull/1734)] fix(ttstream): adjust stream state transition and remove all SetFinalizer to avoid memory leak
91
+
92
+
[[#1735](https://github.com/cloudwego/kitex/pull/1735)] fix(generic): support both relative and absolute check for idl includes parse to make it compatible with generation tool
93
+
94
+
[[#1725](https://github.com/cloudwego/kitex/pull/1725)] fix: code gen import issue for streamx mode, stream call judgement bug and set ttheader streaming as default
[[#1658](https://github.com/cloudwego/kitex/pull/1658)] refactor: streamx api to adapt both grpc and ttheader streaming protocol and provide more user-friendly interface
100
+
101
+
[[#1729](https://github.com/cloudwego/kitex/pull/1729)] refactor(tool): move pb tpl code to sep pkg
102
+
103
+
### Chore
104
+
[[#1743](https://github.com/cloudwego/kitex/pull/1743)] chore: update dependencies version
[[#1737](https://github.com/cloudwego/kitex/pull/1737)] chore: update dependency and change go support to 1.19-1.24
113
+
114
+
[[#1720](https://github.com/cloudwego/kitex/pull/1720)] Revert "fix(ttstream): pingpong method refers to server interface defined in Kitex generation code when streamx is enabled and there are other streaming methods"
If the Error returned by the Server is a non-business exception, the framework will be uniformly encapsulated as `(*thrift.ApplicationException)`. At this time, only the error Message can be obtained.
55
+
If the Error returned by the Server is a non-business exception, the framework will be uniformly encapsulated as `(*thrift.ApplicationException)`. At this time, only the error Message can be obtained.
0 commit comments