Skip to content

Commit 3bde6b4

Browse files
Merge branch 'cloudwego:main' into main
2 parents b50274d + 9655683 commit 3bde6b4

35 files changed

Lines changed: 1885 additions & 2765 deletions

File tree

.github/workflows/gh-page.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ on:
99
jobs:
1010
deploy:
1111
runs-on: ubuntu-latest
12+
permissions:
13+
contents: write
1214
steps:
1315
- uses: actions/checkout@v4
1416
with:

content/en/blog/releases/Kitex/release-v0_11_0.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ description: >
1818
1. **Frugal ARM Optimization**: Frugal v0.2.0 now supports a new implement by reflection
1919
2. **Kitex Tool Improvement**: Kitex Tool provide a new param `-rapid` to integrates Thriftgo and there's a slightly improved speed.
2020
3. **Generating Multiple Handlers for Multiple Services**:Since this version, Kitex tool provide each service with independent handler file and register them into server,for more details: [Generating Multiple Handlers for Multiple Services](/docs/kitex/tutorials/advanced-feature/multi_service/multi_handler/)
21-
4. **Generic Streaming for JSON [on trial]**:JSON generic streaming has now support streaming (client only),currently we're doing some optimization, you can have a try by following this doc: [Generic Streaming](/docs/kitex/tutorials/advanced-feature/generic-call/generic_streaming/)
2221

2322

2423
### Others

content/en/blog/releases/Kitex/release-v0_12_0.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,6 @@ Future version plans: Kitex will remove Apache products by default. User guide:
2929
Added support for a graceful shutdown feature to address upstream errors caused by service upgrades or updates.
3030

3131
For usage: [gRPC Streaming Graceful Shutdown](/docs/kitex/tutorials/basic-feature/protocol/streaming/grpc/graceful_shutdown/)
32-
33-
3. **JSON Generic Call Supports gRPC Streaming**
34-
35-
JSON generic calls now support gRPC Streaming interfaces (client-side only). This is the official release after trial in v0.10.0.
36-
37-
For usage: [User Guide to Generic Call for Streaming](/docs/kitex/tutorials/advanced-feature/generic-call/generic_streaming)
3832

3933
### Experience Optimization
4034
1. **gRPC Streaming Log Optimization**
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
---
2+
title: "Kitex Release v0.14.0"
3+
linkTitle: "Release v0.14.0"
4+
projects: ["Kitex"]
5+
date: 2025-06-26
6+
description: >
7+
---
8+
9+
## **Introduction to Key Changes**
10+
11+
### **New Features**
12+
1. **Generic Call: The generic Client supports streaming calls, allowing a single Client to handle both streaming and non-streaming scenarios**
13+
14+
It supports streaming generic calls, adapting to gRPC/TTHeader Streaming and supporting map/JSON and Protobuf binary generic calls.
15+
16+
A brief code example is as follows:
17+
```go
18+
cli, err := genericclient.NewClient("actualServiceName", g)
19+
// Ping-Pong generic
20+
resp, err := cli.GenericCall(ctx, "PingPongTest", req)
21+
// ClientStreaming generic
22+
cliStream, err := cli.ClientStreaming(ctx, "ClientStreamingTest")
23+
// ServerStreaming generic
24+
srvStream, err := cli.ServerStreaming(ctx, "ServerStreamingTest", req)
25+
// BidiStreaming generic
26+
bidiStream, err := cli.BidiStreaming(ctx, "BidiStreamingTest")
27+
```
28+
29+
Refer to this document for details: [Generic Call](/docs/kitex/tutorials/advanced-feature/generic-call/basic_usage).
30+
31+
### **Feature/Experience Optimization**
32+
1. **Streaming: Improved observability and debugging experience**
33+
34+
**TTHeader Streaming**
35+
- If Tracer configured, failure to create a stream will now be reported with metrics.
36+
- When a panic occurs on the Server side, the full stack trace will now be printed for easier troubleshooting.
37+
38+
**gRPC Streaming**
39+
- If Tracer configured, failure to create a stream will now be reported with metrics.
40+
41+
### **Others**
42+
1. **Code Product Simplification**
43+
44+
Kitex tool no longer generates fastpb, only affecting Protobuf users.
45+
46+
If high-performance Protobuf encoding/decoding is required, you can enable prutal by configuring environment variable `KITEX_TOOL_USE_PRUTAL_MARSHAL=1`.
47+
48+
## **Full Change**
49+
### Feature
50+
[[#1759](https://github.com/cloudwego/kitex/pull/1759)] feat(tool): add env for using prutal to marshal
51+
52+
[[#1782](https://github.com/cloudwego/kitex/pull/1782)] feat(ttstream): process MetaFrame and reflect to rpcinfo
53+
54+
[[#1777](https://github.com/cloudwego/kitex/pull/1777)] feat(client): report err when create Stream failed
55+
56+
[[#1763](https://github.com/cloudwego/kitex/pull/1763)] feat: support ttheader streaming generic call
57+
58+
[[#1771](https://github.com/cloudwego/kitex/pull/1771)] feat(tool): add thriftgo patcher extension
59+
60+
[[#1755](https://github.com/cloudwego/kitex/pull/1755)] feat: add generic binary pb for streamx
61+
62+
[[#1752](https://github.com/cloudwego/kitex/pull/1752)] feat(generic): support generic pb binary for streaming
63+
64+
### Optimize
65+
[[#1788](https://github.com/cloudwego/kitex/pull/1788)] optimize: go net implementation
66+
67+
[[#1786](https://github.com/cloudwego/kitex/pull/1786)] optimize(tool): remove tool fastpb generation
68+
69+
[[#1783](https://github.com/cloudwego/kitex/pull/1783)] optimize(gRPC): parse PayloadCodec in server side
70+
71+
[[#1780](https://github.com/cloudwego/kitex/pull/1780)] optimize(ttstream): log the error thrown by invoking handler
72+
73+
[[#1769](https://github.com/cloudwego/kitex/pull/1769)] optimize: injection of options in ttstream
74+
75+
### Fix
76+
[[#1792](https://github.com/cloudwego/kitex/pull/1792)] fix(gRPC): inject current method name to rpcinfo in server-side to fix FROM_METHOD missing
77+
78+
[[#1787](https://github.com/cloudwego/kitex/pull/1787)] fix(ttstream): metrics missing caused by server-side rpcinfo not set correctly
79+
80+
[[#1778](https://github.com/cloudwego/kitex/pull/1778)] fix: enabling json mode of map generic not work
81+
82+
[[#1774](https://github.com/cloudwego/kitex/pull/1774)] fix(server): trans server conn count race issue
83+
84+
[[#1742](https://github.com/cloudwego/kitex/pull/1742)] fix(generic): align dynamicgo's write base behavior with old generic (only for internal logic)
85+
86+
### Refactor
87+
[[#1770](https://github.com/cloudwego/kitex/pull/1770)] refactor: refactor generic streaming
88+
89+
### Test
90+
[[#1793](https://github.com/cloudwego/kitex/pull/1793)] test: add go1.18 to scenario-test
91+
92+
[[#1765](https://github.com/cloudwego/kitex/pull/1765)] refactor: refactor generic streaming
93+
94+
### Docs
95+
[[#1794](https://github.com/cloudwego/kitex/pull/1794)] docs: update CONTRIBUTING.md to change PR base branch to main
96+
97+
### Chore
98+
[[#1795](https://github.com/cloudwego/kitex/pull/1795)] chore: update dependency
99+
100+
[[#1776](https://github.com/cloudwego/kitex/pull/1776)] chore: remove testify dependency
101+
102+
[[#1757](https://github.com/cloudwego/kitex/pull/1757)] chore: update prutal to v0.1.1
103+
104+
[[#1753](https://github.com/cloudwego/kitex/pull/1753)] ci: disable codecov annotations

content/en/docs/eino/overview/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ compiledGraph.Invoke(ctx, input, WithCallbacks(handler).DesignateNode("node_1"))
199199

200200
## Eino framework structure
201201

202-
<a href="/img/eino/eino_projects_and_structure.png" target="_blank"><img src="/img/eino/eino_projects_and_structure.png" width="100%" /></a>
202+
<a href="/img/eino/eino_structure.png" target="_blank"><img src="/img/eino/eino_structure.png" width="100%" /></a>
203203

204204
The Eino framework consists of several parts:
205205

content/en/docs/hertz/tutorials/basic-feature/sse.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ func HandleSSE(ctx context.Context, resp *protocol.Response) error {
8383
}
8484
```
8585

86+
### Example Codes
87+
88+
- [SSE](https://github.com/cloudwego/hertz-examples/tree/main/sse) : Example of hertz using SSE protocol
89+
8690
### Common Issues
8791

8892
#### How to implement multi-level SSE / SSE Proxy?

content/en/docs/hertz/tutorials/example/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Hertz provides a series of code examples designed to help users get start with H
5151
- [HTTP2](https://github.com/hertz-contrib/http2/tree/main/examples) : Example of hertz using HTTP2 protocol
5252
- [HTTP3](https://github.com/hertz-contrib/http3/tree/main/examples/quic-go) : Example of hertz using HTTP3 protocol
5353
- [Websocket](https://github.com/hertz-contrib/websocket/tree/main/examples) : Example of hertz using Websocket protocol
54-
- [SSE](https://github.com/hertz-contrib/sse/tree/main/examples) : Example of hertz using SSE protocol
54+
- [SSE](https://github.com/cloudwego/hertz-examples/tree/main/sse) : Example of hertz using SSE protocol
5555

5656
### Route
5757

content/en/docs/hertz/tutorials/framework-exten/response_writer.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ description: "Response Writer Extension provided by Hertz."
1010
According to Hertz's [layered architecture](/zh/docs/hertz/overview/), the actual write
1111
operation of the HTTP response is performed after the application layer user processing logic returns. Under this
1212
constraint, users cannot flexibly control the behavior of write operations on demand. This limitation is especially
13-
obvious in scenarios such as controlling chunked encoding write logic
14-
and [SSE](https://github.com/hertz-contrib/sse#hertz-sse).
13+
obvious in scenarios such as controlling chunked encoding write logic.
1514

1615
To solve this problem, Hertz provides an extension called "Response Writer Hijacking" that can vertically penetrate the
1716
limitations brought by the layered architecture in an orthogonal way. It allows users to freely customize the logic of

content/en/docs/hertz/tutorials/observability/log.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func AccessLog() app.HandlerFunc {
1818
start := time.Now()
1919
c.Next(ctx)
2020
end := time.Now()
21-
latency := end.Sub(start).Microseconds
21+
latency := end.Sub(start).Microseconds()
2222
hlog.CtxTracef(ctx, "status=%d cost=%d method=%s full_path=%s client_ip=%s host=%s",
2323
c.Response.StatusCode(), latency,
2424
c.Request.Header.Method(), c.Request.URI().PathOriginal(), c.ClientIP(), c.Request.Host())

content/en/docs/hertz/tutorials/third-party/protocol/_index.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "Protocol"
33
date: 2022-05-23
44
weight: 1
5-
keywords: ["Websocket", "HTTP2", "HTTP3", "SSE"]
5+
keywords: ["TLS", "ALPN", "Websocket", "HTTP2", "HTTP3"]
66
description: "Protocol extensions supported by Hertz."
77
---
88

@@ -17,7 +17,3 @@ Hertz references [net/http2](https://github.com/golang/net/tree/master/http2) to
1717
## HTTP3
1818

1919
Hertz reference [quic-go](https://github.com/quic-go/quic-go) to implement support for HTTP3.
20-
21-
## SSE
22-
23-
Hertz supports SSE, allowing the server to send events to the client through simple HTTP response.

0 commit comments

Comments
 (0)