Skip to content
This repository was archived by the owner on Mar 24, 2026. It is now read-only.

Commit 89e42ce

Browse files
authored
Update hyperlane (#10602)
* Merge remote-tracking branch 'upstream/master' * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * Merge remote-tracking branch 'upstream/master' * feat: hyperlane * feat: update * docs: readme * feat: update * Merge remote-tracking branch 'upstream/master' * feat: update * feat: update * feat: update * Merge remote-tracking branch 'upstream/master' * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: lock * feat: use super * feat: update lock * feat: update * feat: update lock * feat: update lock * feat: update lock * feat: lock * feat: update lock * feat: update lock * feat: update lock * feat: update lock * feat: update lock * feat: update lock * feat: update lock * feat: update lock * feat: update lock * feat: update lock * feat: update lock * feat: update lock * feat: update lock * Merge remote-tracking branch 'upstream/master' * feat: update * feat: utf8 * feat: utf8 * feat: lock * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * update: code * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * feat: update * Merge remote-tracking branch 'upstream/master' * feat: update version * feat: update version * update: code * Merge remote-tracking branch 'upstream/master' * feat: lock * feat: lock * feat: lock * feat: lock * feat: lock * feat: lock * feat: lock * feat: error handle * feat: dep * feat: get_thread_count * update: code * feat: lock * feat: speed * feat: speed * update: code * feat: speed * update: code * feat: lock * fix: Framework hyperlane does not define a default test in benchmark_config.json * feat: hyperlane http version * feat: hyperlane http version * feat: toml * feat: toml * feat: toml * feat: toml * feat: v0.1.0 * feat: toml * feat: v6 * feat: v6 * feat: v6 * feat: v6 * feat: v6 * debug: test cache * debug: test cache * feat: v6 * feat: send unwrap * feat: v6 * feat: v6 * feat: v0.1.0 * feat: toml * feat: toml * feat: db * feat: toml * feat: toml * feat: toml * feat: toml * feat: dir update * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: 2025-10-24 12:22:32 * feat: v0.1.0 * Merge branch 'master' of github.com:TechEmpower/FrameworkBenchmarks * feat: v0.1.0 * Merge branch 'master' of github.com:TechEmpower/FrameworkBenchmarks * feat: 2025-11-09 18:38:22 * feat: toml * feat: toml * feat: buffer * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: inline * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * feat: toml * 更新依赖项:升级 hyperlane 到 10.19.0,serde_json 到 1.0.147,http-constant 到 1.78.0,http-type 到 5.20.0 * 修正 README.md 中的标题格式 * feat: v0.1.0 * feat: toml * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0 * feat: v0.1.0
1 parent bc26c4b commit 89e42ce

11 files changed

Lines changed: 124 additions & 104 deletions

File tree

frameworks/Rust/hyperlane/Cargo.lock

Lines changed: 14 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frameworks/Rust/hyperlane/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ rand = "0.9.2"
1616
futures = "0.3.31"
1717
num_cpus = "1.17.0"
1818
once_cell = "1.21.3"
19-
hyperlane = "10.35.2"
19+
hyperlane = "11.0.9"
2020
serde_json = "1.0.149"
21-
hyperlane-time = "0.7.17"
21+
hyperlane-time = "0.7.19"
2222
serde = { version = "1.0.228", features = ["derive"] }
2323
sqlx = { version = "0.8.6", features = ["runtime-tokio", "postgres"] }
2424

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
use super::*;
2+
3+
pub(crate) async fn init_server_config() -> ServerConfig {
4+
let server_config: ServerConfig = ServerConfig::new().await;
5+
server_config.port(8080).await;
6+
server_config.disable_nodelay().await;
7+
server_config
8+
}
9+
10+
pub(crate) async fn init_request_config() -> RequestConfig {
11+
let request_config: RequestConfig = RequestConfig::new().await;
12+
request_config
13+
.buffer_size(KB_4)
14+
.await
15+
.http_read_timeout_ms(u64::MAX)
16+
.await
17+
.max_body_size(usize::MAX)
18+
.await
19+
.max_header_count(usize::MAX)
20+
.await
21+
.max_header_key_length(usize::MAX)
22+
.await
23+
.max_header_line_length(usize::MAX)
24+
.await
25+
.max_header_value_length(usize::MAX)
26+
.await
27+
.max_path_length(usize::MAX)
28+
.await
29+
.max_query_length(usize::MAX)
30+
.await
31+
.max_request_line_length(usize::MAX)
32+
.await
33+
.max_ws_frame_size(usize::MAX)
34+
.await
35+
.max_ws_frames(usize::MAX)
36+
.await
37+
.ws_read_timeout_ms(u64::MAX)
38+
.await;
39+
request_config
40+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
mod r#fn;
2+
3+
pub(crate) use r#fn::*;
4+
5+
use super::*;
Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
pub(crate) mod r#fn;
2-
pub(crate) mod r#static;
3-
pub(crate) mod r#type;
1+
mod r#fn;
2+
mod r#static;
3+
mod r#type;
44

5-
pub(crate) use r#fn::*;
6-
pub(crate) use r#static::*;
7-
pub(crate) use r#type::*;
5+
pub(crate) use {r#fn::*, r#static::*, r#type::*};
86

97
use super::*;

frameworks/Rust/hyperlane/src/main.rs

Lines changed: 32 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,42 @@
1-
pub(crate) mod db;
2-
pub(crate) mod middleware;
3-
pub(crate) mod route;
4-
pub(crate) mod server;
5-
pub(crate) mod utils;
6-
7-
pub(crate) use db::*;
8-
pub(crate) use server::*;
9-
pub(crate) use utils::*;
10-
11-
pub(crate) use std::fmt;
12-
use std::{u64, usize};
13-
14-
pub(crate) use futures::{executor::block_on, future::join_all};
15-
pub(crate) use hyperlane::{
16-
tokio::{spawn, task::JoinHandle},
17-
*,
1+
mod config;
2+
mod db;
3+
mod middleware;
4+
mod route;
5+
mod server;
6+
mod utils;
7+
8+
use {config::*, db::*, middleware::*, route::*, server::*, utils::*};
9+
10+
use std::fmt;
11+
12+
use {
13+
futures::{executor::block_on, future::join_all},
14+
hyperlane::{
15+
tokio::{spawn, task::JoinHandle},
16+
*,
17+
},
18+
hyperlane_time::*,
19+
once_cell::sync::Lazy,
20+
rand::{Rng, SeedableRng, rng, rngs::SmallRng},
21+
serde::*,
22+
serde_json::{Value, json},
23+
sqlx::{
24+
Pool, Postgres, Row,
25+
postgres::{PgPoolOptions, PgRow},
26+
query as db_query,
27+
},
1828
};
19-
pub(crate) use hyperlane_time::*;
20-
pub(crate) use once_cell::sync::Lazy;
21-
pub(crate) use rand::{Rng, SeedableRng, rng, rngs::SmallRng};
22-
pub(crate) use serde::*;
23-
pub(crate) use serde_json::{Value, json};
24-
pub(crate) use sqlx::{
25-
Pool, Postgres, Row,
26-
postgres::{PgPoolOptions, PgRow},
27-
query as db_query,
28-
};
29-
30-
use middleware::*;
31-
use route::*;
3229

3330
#[tokio::main]
3431
async fn main() {
3532
init_db().await;
3633

37-
let mut request_config: RequestConfig = RequestConfig::default();
38-
request_config
39-
.set_buffer_size(KB_4)
40-
.set_http_read_timeout_ms(u64::MAX)
41-
.set_max_body_size(usize::MAX)
42-
.set_max_header_count(usize::MAX)
43-
.set_max_header_key_length(usize::MAX)
44-
.set_max_header_line_length(usize::MAX)
45-
.set_max_header_value_length(usize::MAX)
46-
.set_max_path_length(usize::MAX)
47-
.set_max_query_length(usize::MAX)
48-
.set_max_request_line_length(usize::MAX)
49-
.set_max_ws_frame_size(usize::MAX)
50-
.set_max_ws_frames(usize::MAX)
51-
.set_ws_read_timeout_ms(u64::MAX);
52-
53-
let config: ServerConfig = ServerConfig::new().await;
54-
config.request_config(request_config).await;
55-
config.port(8080).await;
56-
config.disable_nodelay().await;
34+
let server_config: ServerConfig = init_server_config().await;
35+
let request_config: RequestConfig = init_request_config().await;
5736

58-
let server: Server = Server::from(config).await;
37+
let server: Server = Server::new().await;
38+
server.server_config(server_config).await;
39+
server.request_config(request_config).await;
5940
server.request_middleware::<RequestMiddleware>().await;
6041
server.route::<PlaintextRoute>("/plaintext").await;
6142
server.route::<JsonRoute>("/json").await;

frameworks/Rust/hyperlane/src/middleware/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
pub(crate) mod r#impl;
2-
pub(crate) mod r#struct;
1+
mod r#impl;
2+
mod r#struct;
33

44
pub(crate) use r#struct::*;
55

frameworks/Rust/hyperlane/src/route/impl.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ impl ServerHook for JsonRoute {
66
}
77

88
async fn handle(self, ctx: &Context) {
9-
let request_config: RequestConfig = *REQUEST_CONFIG;
9+
let request_config: RequestConfigData = *REQUEST_CONFIG;
1010
let json: Value = json!({
1111
KEY_MESSAGE: RESPONSEDATA_STR
1212
});
@@ -16,7 +16,7 @@ impl ServerHook for JsonRoute {
1616
ctx.send().await;
1717
};
1818
run().await;
19-
while ctx.http_from_stream(request_config).await.is_ok() {
19+
while ctx.http_from_stream(&request_config).await.is_ok() {
2020
run().await;
2121
}
2222
ctx.closed().await;
@@ -29,14 +29,14 @@ impl ServerHook for PlaintextRoute {
2929
}
3030

3131
async fn handle(self, ctx: &Context) {
32-
let request_config: RequestConfig = *REQUEST_CONFIG;
32+
let request_config: RequestConfigData = *REQUEST_CONFIG;
3333
ctx.set_response_header(CONTENT_TYPE, TEXT_PLAIN).await;
3434
ctx.set_response_body(&RESPONSEDATA_BIN).await;
3535
let run = || async {
3636
ctx.send().await;
3737
};
3838
run().await;
39-
while ctx.http_from_stream(request_config).await.is_ok() {
39+
while ctx.http_from_stream(&request_config).await.is_ok() {
4040
run().await;
4141
}
4242
ctx.closed().await;
@@ -49,7 +49,7 @@ impl ServerHook for DbRoute {
4949
}
5050

5151
async fn handle(self, ctx: &Context) {
52-
let request_config: RequestConfig = *REQUEST_CONFIG;
52+
let request_config: RequestConfigData = *REQUEST_CONFIG;
5353
let db_connection: &DbPoolConnection = get_db_connection();
5454
let run = || async {
5555
let query_row: QueryRow = random_world_row(db_connection).await;
@@ -59,7 +59,7 @@ impl ServerHook for DbRoute {
5959
.await;
6060
};
6161
run().await;
62-
while ctx.http_from_stream(request_config).await.is_ok() {
62+
while ctx.http_from_stream(&request_config).await.is_ok() {
6363
run().await;
6464
}
6565
ctx.closed().await;
@@ -72,7 +72,7 @@ impl ServerHook for QueryRoute {
7272
}
7373

7474
async fn handle(self, ctx: &Context) {
75-
let request_config: RequestConfig = *REQUEST_CONFIG;
75+
let request_config: RequestConfigData = *REQUEST_CONFIG;
7676
let run = || async {
7777
let queries: Queries = ctx
7878
.try_get_request_query(QUERY_DB_QUERY_KEY)
@@ -89,7 +89,7 @@ impl ServerHook for QueryRoute {
8989
.await;
9090
};
9191
run().await;
92-
while ctx.http_from_stream(request_config).await.is_ok() {
92+
while ctx.http_from_stream(&request_config).await.is_ok() {
9393
run().await;
9494
}
9595
ctx.closed().await;
@@ -102,7 +102,7 @@ impl ServerHook for FortunesRoute {
102102
}
103103

104104
async fn handle(self, ctx: &Context) {
105-
let request_config: RequestConfig = *REQUEST_CONFIG;
105+
let request_config: RequestConfigData = *REQUEST_CONFIG;
106106
ctx.set_response_header(
107107
CONTENT_TYPE,
108108
&ContentType::format_content_type_with_charset(TEXT_HTML, UTF8),
@@ -126,7 +126,7 @@ impl ServerHook for FortunesRoute {
126126
ctx.set_response_body(&res).await.send().await;
127127
};
128128
run().await;
129-
while ctx.http_from_stream(request_config).await.is_ok() {
129+
while ctx.http_from_stream(&request_config).await.is_ok() {
130130
run().await;
131131
}
132132
ctx.closed().await;
@@ -139,7 +139,7 @@ impl ServerHook for UpdateRoute {
139139
}
140140

141141
async fn handle(self, ctx: &Context) {
142-
let request_config: RequestConfig = *REQUEST_CONFIG;
142+
let request_config: RequestConfigData = *REQUEST_CONFIG;
143143
let run = || async {
144144
let queries: Queries = ctx
145145
.try_get_request_query(UPDATE_DB_QUERY_KEY)
@@ -155,7 +155,7 @@ impl ServerHook for UpdateRoute {
155155
.await;
156156
};
157157
run().await;
158-
while ctx.http_from_stream(request_config).await.is_ok() {
158+
while ctx.http_from_stream(&request_config).await.is_ok() {
159159
run().await;
160160
}
161161
ctx.closed().await;
@@ -168,7 +168,7 @@ impl ServerHook for CachedQueryRoute {
168168
}
169169

170170
async fn handle(self, ctx: &Context) {
171-
let request_config: RequestConfig = *REQUEST_CONFIG;
171+
let request_config: RequestConfigData = *REQUEST_CONFIG;
172172
let run = || async {
173173
let count: Queries = ctx
174174
.try_get_request_query(CACHE_QUERY_KEY)
@@ -184,7 +184,7 @@ impl ServerHook for CachedQueryRoute {
184184
.await;
185185
};
186186
run().await;
187-
while ctx.http_from_stream(request_config).await.is_ok() {
187+
while ctx.http_from_stream(&request_config).await.is_ok() {
188188
run().await;
189189
}
190190
ctx.closed().await;
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
pub(crate) mod r#impl;
2-
pub(crate) mod r#static;
3-
pub(crate) mod r#struct;
1+
mod r#impl;
2+
mod r#static;
3+
mod r#struct;
44

5-
pub(crate) use r#static::*;
6-
pub(crate) use r#struct::*;
5+
pub(crate) use {r#static::*, r#struct::*};
76

87
use super::*;
9-
10-
use sqlx::{Row, postgres::PgRow};

0 commit comments

Comments
 (0)