Skip to content

Commit 433e1f8

Browse files
authored
Upgrade hyperlane (#10071)
* feat: config * feat: config * feat: v4.36.1 * docs: readme * feat: remove dyn * docs: readme * feat: lock * feat: lock * feat: lock * feat: lock * feat: db pool * feat: db pool * feat: lock * feat: lock * feat: db * feat: db * feat: db * feat: db * 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 --------- Co-authored-by: 尤雨东 <[email protected]>
1 parent 28fac6a commit 433e1f8

File tree

19 files changed

+122
-70
lines changed

19 files changed

+122
-70
lines changed

frameworks/Rust/hyperlane/Cargo.lock

Lines changed: 37 additions & 20 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: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ exclude = [
2020

2121
[dependencies]
2222
futures = "0.3.31"
23-
hyperlane = "7.6.1"
24-
hyperlane-time = "0.7.7"
23+
hyperlane = "8.1.2"
24+
hyperlane-time = "0.7.8"
2525
num_cpus = "1.17.0"
2626
once_cell = "1.21.3"
2727
rand = "0.9.2"
2828
serde = "1.0.219"
29-
serde_json = "1.0.142"
29+
serde_json = "1.0.143"
3030
sqlx = { version = "0.8.6", features = ["runtime-tokio", "postgres"] }
3131

3232
[profile.dev]

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,23 @@ pub fn get_db_connection() -> &'static DbPoolConnection {
77
#[cfg(feature = "dev")]
88
pub async fn create_database() {
99
let db_pool: &DbPoolConnection = get_db_connection();
10-
let _ = query(&format!("CREATE DATABASE {};", DATABASE_NAME))
10+
let _ = db_query(&format!("CREATE DATABASE {};", DATABASE_NAME))
1111
.execute(db_pool)
1212
.await;
1313
}
1414

1515
#[cfg(feature = "dev")]
1616
pub async fn create_table() {
1717
let db_pool: &DbPoolConnection = get_db_connection();
18-
let _ = query(&format!(
18+
let _ = db_query(&format!(
1919
"CREATE TABLE IF NOT EXISTS {} (
2020
id SERIAL PRIMARY KEY, randomNumber INT NOT NULL
2121
);",
2222
TABLE_NAME_WORLD
2323
))
2424
.execute(db_pool)
2525
.await;
26-
let _ = query(&format!(
26+
let _ = db_query(&format!(
2727
"CREATE TABLE IF NOT EXISTS {} (
2828
id SERIAL PRIMARY KEY, message VARCHAR NOT NULL
2929
);",
@@ -36,7 +36,7 @@ pub async fn create_table() {
3636
#[cfg(feature = "dev")]
3737
pub async fn insert_records() {
3838
let db_pool: &DbPoolConnection = get_db_connection();
39-
let row: PgRow = query(&format!("SELECT COUNT(*) FROM {}", TABLE_NAME_WORLD))
39+
let row: PgRow = db_query(&format!("SELECT COUNT(*) FROM {}", TABLE_NAME_WORLD))
4040
.fetch_one(db_pool)
4141
.await
4242
.unwrap();
@@ -56,7 +56,7 @@ pub async fn insert_records() {
5656
TABLE_NAME_WORLD,
5757
values.join(",")
5858
);
59-
let _ = query(&sql).execute(db_pool).await;
59+
let _ = db_query(&sql).execute(db_pool).await;
6060
let mut values: Vec<String> = Vec::new();
6161
for _ in 0..missing_count {
6262
let random_number: i32 = get_random_id();
@@ -67,7 +67,7 @@ pub async fn insert_records() {
6767
TABLE_NAME_FORTUNE,
6868
values.join(",")
6969
);
70-
let _ = query(&sql).execute(db_pool).await;
70+
let _ = db_query(&sql).execute(db_pool).await;
7171
}
7272

7373
pub async fn init_cache() -> Vec<QueryRow> {
@@ -77,7 +77,7 @@ pub async fn init_cache() -> Vec<QueryRow> {
7777
"SELECT id, randomNumber FROM {} LIMIT {}",
7878
TABLE_NAME_WORLD, RANDOM_MAX
7979
);
80-
if let Ok(rows) = query(&sql).fetch_all(db_pool).await {
80+
if let Ok(rows) = db_query(&sql).fetch_all(db_pool).await {
8181
for row in rows {
8282
let id: i32 = row.get(KEY_ID);
8383
let random_number: i32 = row.get(KEY_RANDOM_NUMBER);
@@ -146,7 +146,7 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow {
146146

147147
pub async fn query_world_row(db_pool: &DbPoolConnection, id: Queries) -> QueryRow {
148148
let sql: &str = "SELECT id, randomNumber FROM World WHERE id = $1";
149-
if let Ok(rows) = query(sql).bind(id).fetch_one(db_pool).await {
149+
if let Ok(rows) = db_query(sql).bind(id).fetch_one(db_pool).await {
150150
let random_number: i32 = rows.get(KEY_RANDOM_NUMBER);
151151
return QueryRow::new(id as i32, random_number);
152152
}
@@ -161,7 +161,7 @@ pub async fn update_world_rows(limit: Queries) -> Vec<QueryRow> {
161161
for (id, random_number) in id_list.into_iter().zip(random_numbers.into_iter()) {
162162
let db_pool: Pool<Postgres> = db_pool.clone();
163163
tasks.push(spawn(async move {
164-
query(sql)
164+
db_query(sql)
165165
.bind(random_number)
166166
.bind(id)
167167
.execute(&db_pool)
@@ -175,7 +175,7 @@ pub async fn update_world_rows(limit: Queries) -> Vec<QueryRow> {
175175
pub async fn all_world_row() -> Vec<PgRow> {
176176
let db_pool: &DbPoolConnection = get_db_connection();
177177
let sql: String = format!("SELECT id, message FROM {}", TABLE_NAME_FORTUNE);
178-
let res: Vec<PgRow> = query(&sql).fetch_all(db_pool).await.unwrap_or_default();
178+
let res: Vec<PgRow> = db_query(&sql).fetch_all(db_pool).await.unwrap_or_default();
179179
return res;
180180
}
181181

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
pub(crate) mod r#fn;
2+
pub(crate) mod r#static;
3+
pub(crate) mod r#type;
4+
5+
pub use r#fn::*;
6+
pub use r#static::*;
7+
pub use r#type::*;
8+
9+
use super::*;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
use super::*;
2+
3+
pub type DbPoolConnection = Pool<Postgres>;

frameworks/Rust/hyperlane/src/main.rs

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,33 @@
1-
#![allow(dead_code)]
2-
#![allow(unused_imports)]
3-
pub(crate) mod r#const;
41
pub(crate) mod db;
5-
pub(crate) mod lazy;
6-
pub(crate) mod request_middleware;
2+
pub(crate) mod middleware;
73
pub(crate) mod route;
84
pub(crate) mod server;
9-
pub(crate) mod r#type;
105
pub(crate) mod utils;
116

12-
pub(crate) use r#const::*;
137
pub(crate) use db::*;
14-
pub(crate) use r#type::*;
8+
pub(crate) use server::*;
159
pub(crate) use utils::*;
1610

17-
pub(crate) use std::{fmt, hint::black_box, sync::Arc};
11+
pub(crate) use std::fmt;
1812

1913
pub(crate) use futures::{executor::block_on, future::join_all};
2014
pub(crate) use hyperlane::{
2115
tokio::{
2216
runtime::{Builder, Runtime},
2317
spawn,
24-
sync::{AcquireError, OwnedSemaphorePermit, Semaphore},
2518
task::JoinHandle,
2619
},
2720
*,
2821
};
2922
pub(crate) use hyperlane_time::*;
30-
pub(crate) use lazy::*;
3123
pub(crate) use once_cell::sync::Lazy;
3224
pub(crate) use rand::{Rng, SeedableRng, rng, rngs::SmallRng};
3325
pub(crate) use serde::*;
3426
pub(crate) use serde_json::{Value, json};
35-
pub(crate) use server::*;
3627
pub(crate) use sqlx::{
28+
Pool, Postgres, Row,
3729
postgres::{PgPoolOptions, PgRow},
38-
*,
30+
query as db_query,
3931
};
4032

4133
fn main() {
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pub(crate) mod r#fn;
2+
3+
pub use r#fn::*;
4+
5+
use super::*;

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ pub async fn db(ctx: Context) {
4949
pub async fn query(ctx: Context) {
5050
let run = || async {
5151
let queries: Queries = ctx
52-
.get_request_query("q")
52+
.try_get_request_query(QUERY_DB_QUERY_KEY)
5353
.await
5454
.and_then(|queries| queries.parse::<Queries>().ok())
5555
.unwrap_or_default()
@@ -104,7 +104,7 @@ pub async fn fortunes(ctx: Context) {
104104
pub async fn update(ctx: Context) {
105105
let run = || async {
106106
let queries: Queries = ctx
107-
.get_request_query("q")
107+
.try_get_request_query(UPDATE_DB_QUERY_KEY)
108108
.await
109109
.and_then(|queries| queries.parse::<Queries>().ok())
110110
.unwrap_or_default()
@@ -127,13 +127,13 @@ pub async fn update(ctx: Context) {
127127
pub async fn cached_query(ctx: Context) {
128128
let run = || async {
129129
let count: Queries = ctx
130-
.get_request_query("c")
130+
.try_get_request_query(CACHE_QUERY_KEY)
131131
.await
132132
.and_then(|queries| queries.parse::<Queries>().ok())
133133
.unwrap_or_default()
134134
.min(ROW_LIMIT as Queries)
135135
.max(1);
136-
let res: Vec<QueryRow> = CACHE.iter().take(count as usize).cloned().collect();
136+
let res: Vec<&QueryRow> = CACHE.iter().take(count as usize).collect();
137137
ctx.set_response_body(serde_json::to_string(&res).unwrap_or_default())
138138
.await
139139
.send()

0 commit comments

Comments
 (0)