Skip to content

Commit da8b3dd

Browse files
authored
Upgrade hyperlane (#10191)
* feat: db * feat: db * feat: db * feat: db * feat: rand * feat: rand * feat: rand * feat: rand * feat: rand * feat: port * feat: port * feat: port * feat: db * feat: db * feat: db * feat: lock * feat: lock * feat: v4.41.0 * feat: v4.42.0 * Merge remote-tracking branch 'upstream/master' * Merge remote-tracking branch 'upstream/master' * feat: inline * feat: dockerfile * feat: v4.52.1 * feat: remove key * remove: log * remove: log * feat: async * remove: empty loop * feat: utf8 * change: pool_size * remove: utf8 * feat: log * feat: log * feat: v3.14.1 * feat: 4.56.3 * feat: 4.56.4 * feat: 4.56.5 * feat: rename * Merge branch 'master' of github.com:TechEmpower/FrameworkBenchmarks * feat: speed * feat: speed * lock: toml * lock: toml * lock: toml * lock: toml * lock: toml * lock: toml * lock: toml * lock: toml * lock: toml * lock: toml * lock: toml * lock: toml * lock: toml * feat: runtime * feat: runtime * feat: runtime * lock: toml * lock: toml * lock: toml * lock: toml * lock: toml * lock: toml * lock: toml * lock: toml * feat: update * 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 --------- Co-authored-by: 尤雨东 <[email protected]>
1 parent 8eb2a78 commit da8b3dd

File tree

19 files changed

+514
-459
lines changed

19 files changed

+514
-459
lines changed

frameworks/Rust/hyperlane/Cargo.lock

Lines changed: 205 additions & 166 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
@@ -20,8 +20,8 @@ exclude = [
2020

2121
[dependencies]
2222
futures = "0.3.31"
23-
hyperlane = "9.5.0"
24-
hyperlane-time = "0.7.8"
23+
hyperlane = "10.6.0"
24+
hyperlane-time = "0.7.12"
2525
num_cpus = "1.17.0"
2626
once_cell = "1.21.3"
2727
rand = "0.9.2"

frameworks/Rust/hyperlane/src/db/fn.rs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
use super::*;
22

3-
pub fn get_db_connection() -> &'static DbPoolConnection {
3+
pub(crate) fn get_db_connection() -> &'static DbPoolConnection {
44
&DB
55
}
66

77
#[cfg(feature = "dev")]
8-
pub async fn create_database() {
8+
pub(crate) async fn create_database() {
99
let db_pool: &DbPoolConnection = get_db_connection();
1010
let _ = db_query(&format!("CREATE DATABASE {DATABASE_NAME};"))
1111
.execute(db_pool)
1212
.await;
1313
}
1414

1515
#[cfg(feature = "dev")]
16-
pub async fn create_table() {
16+
pub(crate) async fn create_table() {
1717
let db_pool: &DbPoolConnection = get_db_connection();
1818
let _ = db_query(&format!(
1919
"CREATE TABLE IF NOT EXISTS {TABLE_NAME_WORLD} (
@@ -32,7 +32,7 @@ pub async fn create_table() {
3232
}
3333

3434
#[cfg(feature = "dev")]
35-
pub async fn insert_records() {
35+
pub(crate) async fn insert_records() {
3636
let db_pool: &DbPoolConnection = get_db_connection();
3737
let row: PgRow = db_query(&format!("SELECT COUNT(*) FROM {TABLE_NAME_WORLD}"))
3838
.fetch_one(db_pool)
@@ -66,7 +66,7 @@ pub async fn insert_records() {
6666
let _ = db_query(&sql).execute(db_pool).await;
6767
}
6868

69-
pub async fn init_cache() -> Vec<QueryRow> {
69+
pub(crate) async fn init_cache() -> Vec<QueryRow> {
7070
let mut res: Vec<QueryRow> = Vec::with_capacity(RANDOM_MAX as usize);
7171
let db_pool: &DbPoolConnection = get_db_connection();
7272
let sql: String = format!("SELECT id, randomNumber FROM {TABLE_NAME_WORLD} LIMIT {RANDOM_MAX}");
@@ -80,7 +80,7 @@ pub async fn init_cache() -> Vec<QueryRow> {
8080
res
8181
}
8282

83-
pub async fn connection_db() -> DbPoolConnection {
83+
pub(crate) async fn connection_db() -> DbPoolConnection {
8484
let db_url: &str = match option_env!("POSTGRES_URL") {
8585
Some(it) => it,
8686
_ => &format!(
@@ -100,7 +100,7 @@ pub async fn connection_db() -> DbPoolConnection {
100100
pool
101101
}
102102

103-
pub async fn get_update_data(limit: Queries) -> (Vec<QueryRow>, Vec<i32>, Vec<i32>) {
103+
pub(crate) async fn get_update_data(limit: Queries) -> (Vec<QueryRow>, Vec<i32>, Vec<i32>) {
104104
let db_pool: &DbPoolConnection = get_db_connection();
105105
let mut query_res_list: Vec<QueryRow> = Vec::with_capacity(limit as usize);
106106
let rows: Vec<QueryRow> = get_some_row_id(limit, db_pool).await;
@@ -115,32 +115,32 @@ pub async fn get_update_data(limit: Queries) -> (Vec<QueryRow>, Vec<i32>, Vec<i3
115115
(query_res_list, id_list, random_numbers)
116116
}
117117

118-
pub async fn init_db() {
118+
pub(crate) async fn init_db() {
119119
#[cfg(feature = "dev")]
120120
{
121121
create_database().await;
122122
create_table().await;
123123
insert_records().await;
124124
}
125125
let _ = get_db_connection();
126-
let _ = CACHE.get(0);
126+
let _ = CACHE.first();
127127
}
128128

129-
pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow {
129+
pub(crate) async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow {
130130
let random_id: Queries = get_random_id();
131131
query_world_row(db_pool, random_id).await
132132
}
133133

134-
pub async fn query_world_row(db_pool: &DbPoolConnection, id: Queries) -> QueryRow {
134+
pub(crate) async fn query_world_row(db_pool: &DbPoolConnection, id: Queries) -> QueryRow {
135135
let sql: &str = "SELECT id, randomNumber FROM World WHERE id = $1";
136136
if let Ok(rows) = db_query(sql).bind(id).fetch_one(db_pool).await {
137137
let random_number: i32 = rows.get(KEY_RANDOM_NUMBER);
138-
return QueryRow::new(id as i32, random_number);
138+
return QueryRow::new(id, random_number);
139139
}
140-
return QueryRow::new(id as i32, 1);
140+
QueryRow::new(id, 1)
141141
}
142142

143-
pub async fn update_world_rows(limit: Queries) -> Vec<QueryRow> {
143+
pub(crate) async fn update_world_rows(limit: Queries) -> Vec<QueryRow> {
144144
let db_pool: &DbPoolConnection = get_db_connection();
145145
let (data, id_list, random_numbers) = get_update_data(limit).await;
146146
let sql: &str = "UPDATE World SET randomNumber = $1 WHERE id = $2";
@@ -159,14 +159,14 @@ pub async fn update_world_rows(limit: Queries) -> Vec<QueryRow> {
159159
data
160160
}
161161

162-
pub async fn all_world_row() -> Vec<PgRow> {
162+
pub(crate) async fn all_world_row() -> Vec<PgRow> {
163163
let db_pool: &DbPoolConnection = get_db_connection();
164164
let sql: String = format!("SELECT id, message FROM {TABLE_NAME_FORTUNE}");
165165
let res: Vec<PgRow> = db_query(&sql).fetch_all(db_pool).await.unwrap_or_default();
166-
return res;
166+
res
167167
}
168168

169-
pub async fn get_some_row_id(limit: Queries, db_pool: &DbPoolConnection) -> Vec<QueryRow> {
169+
pub(crate) async fn get_some_row_id(limit: Queries, db_pool: &DbPoolConnection) -> Vec<QueryRow> {
170170
let tasks: Vec<_> = (0..limit)
171171
.map(|_| {
172172
let db_pool: Pool<Postgres> = db_pool.clone();

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ pub(crate) mod r#fn;
22
pub(crate) mod r#static;
33
pub(crate) mod r#type;
44

5-
pub use r#fn::*;
6-
pub use r#static::*;
7-
pub use r#type::*;
5+
pub(crate) use r#fn::*;
6+
pub(crate) use r#static::*;
7+
pub(crate) use r#type::*;
88

99
use super::*;

frameworks/Rust/hyperlane/src/main.rs

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,7 @@ pub(crate) use std::fmt;
1212

1313
pub(crate) use futures::{executor::block_on, future::join_all};
1414
pub(crate) use hyperlane::{
15-
tokio::{
16-
runtime::{Builder, Runtime},
17-
spawn,
18-
task::JoinHandle,
19-
},
15+
tokio::{spawn, task::JoinHandle},
2016
*,
2117
};
2218
pub(crate) use hyperlane_time::*;
@@ -30,6 +26,30 @@ pub(crate) use sqlx::{
3026
query as db_query,
3127
};
3228

33-
fn main() {
34-
run_server();
29+
use middleware::*;
30+
use route::*;
31+
32+
#[tokio::main]
33+
async fn main() {
34+
init_db().await;
35+
36+
let config: ServerConfig = ServerConfig::new().await;
37+
config.host("0.0.0.0").await;
38+
config.port(8080).await;
39+
config.buffer(256).await;
40+
config.disable_linger().await;
41+
config.disable_nodelay().await;
42+
43+
let server: Server = Server::from(config).await;
44+
server.request_middleware::<RequestMiddleware>().await;
45+
server.route::<PlaintextRoute>("/plaintext").await;
46+
server.route::<JsonRoute>("/json").await;
47+
server.route::<CachedQueryRoute>("/cached-quer").await;
48+
server.route::<DbRoute>("/db").await;
49+
server.route::<QueryRoute>("/query").await;
50+
server.route::<FortunesRoute>("/fortunes").await;
51+
server.route::<UpdateRoute>("/upda").await;
52+
53+
let server_hook: ServerControlHook = server.run().await.unwrap_or_default();
54+
server_hook.wait().await;
3555
}

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

Lines changed: 0 additions & 16 deletions
This file was deleted.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
use super::*;
2+
3+
impl ServerHook for RequestMiddleware {
4+
async fn new(_ctx: &Context) -> Self {
5+
Self
6+
}
7+
8+
async fn handle(self, ctx: &Context) {
9+
ctx.set_response_version(HttpVersion::HTTP1_1)
10+
.await
11+
.set_response_header(CONNECTION, KEEP_ALIVE)
12+
.await
13+
.set_response_header(SERVER, HYPERLANE)
14+
.await
15+
.set_response_header(DATE, &gmt())
16+
.await
17+
.set_response_status_code(200)
18+
.await
19+
.set_response_header(CONTENT_TYPE, APPLICATION_JSON)
20+
.await;
21+
}
22+
}
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
pub(crate) mod r#fn;
1+
pub(crate) mod r#impl;
2+
pub(crate) mod r#struct;
23

3-
pub use r#fn::*;
4+
pub(crate) use r#struct::*;
45

56
use super::*;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pub(crate) struct RequestMiddleware;

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

Lines changed: 0 additions & 148 deletions
This file was deleted.

0 commit comments

Comments
 (0)