diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index 8c8940cf6d6..d71326501ec 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -284,9 +284,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.5" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" +checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369" dependencies = [ "crc32fast", "miniz_oxide", @@ -524,9 +524,9 @@ dependencies = [ [[package]] name = "http-compress" -version = "3.0.8" +version = "3.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a66d5d4768248172b961c2f64fb779976261751c99fb2b09df68fe0b56f830" +checksum = "55694f51ed1576ad367196125a7df33cdb5f049bf3ee3b5775373712c2965dff" dependencies = [ "brotli", "flate2", @@ -535,15 +535,15 @@ dependencies = [ [[package]] name = "http-constant" -version = "1.83.2" +version = "1.83.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b72ec39b967834331334b3f27021b1dc1b0f042a219e368f1fd5cae518ae43ab" +checksum = "9e9a76d304d9f43dcc1a90a1243d4452f9e57b95c114aaa8e0b97295920452be" [[package]] name = "http-type" -version = "5.33.3" +version = "8.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b481929fbc7df60929317e6b773db365cbd83cad2773dcd607be509e368d10" +checksum = "5556cf762bd811e1d905391793e3ca30ad7d4b933d4cb4d6c61a3dd0cc426ad1" dependencies = [ "hex", "http-compress", @@ -559,9 +559,9 @@ dependencies = [ [[package]] name = "hyperlane" -version = "10.35.2" +version = "11.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c9038c78a53a8831022fb4fb5a9031694fc465034a090c834006bab29c5e83" +checksum = "5410aea5b13d325d2689789f6fa3aea8ee7cbc49ddd7f46c45644bb6dabb5cc7" dependencies = [ "http-type", "inventory", @@ -572,9 +572,9 @@ dependencies = [ [[package]] name = "hyperlane-time" -version = "0.7.17" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673c3aa5fa8d0c1063300047454f8bbb83f10560edafc53368a11313cbb6897e" +checksum = "51339af6bf230df06daa71016ac3b19cbc27462886ce8f79685650ff97e91608" [[package]] name = "hyperlane_techempower" @@ -783,9 +783,9 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "lombok-macros" -version = "1.15.7" +version = "2.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1474fe65fbaa8e21b0c09b977599511894c8fe22fc75ca14bd5c86cd3130807a" +checksum = "f9db2b74d0fc4c57d776356329f7091816f68f86403b09d0f91198802c6f27de" dependencies = [ "proc-macro2", "quote", diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 9c416ccff92..ba584e0b565 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -16,9 +16,9 @@ rand = "0.9.2" futures = "0.3.31" num_cpus = "1.17.0" once_cell = "1.21.3" -hyperlane = "10.35.2" +hyperlane = "11.0.9" serde_json = "1.0.149" -hyperlane-time = "0.7.17" +hyperlane-time = "0.7.19" serde = { version = "1.0.228", features = ["derive"] } sqlx = { version = "0.8.6", features = ["runtime-tokio", "postgres"] } diff --git a/frameworks/Rust/hyperlane/src/config/fn.rs b/frameworks/Rust/hyperlane/src/config/fn.rs new file mode 100644 index 00000000000..d8b2374da83 --- /dev/null +++ b/frameworks/Rust/hyperlane/src/config/fn.rs @@ -0,0 +1,40 @@ +use super::*; + +pub(crate) async fn init_server_config() -> ServerConfig { + let server_config: ServerConfig = ServerConfig::new().await; + server_config.port(8080).await; + server_config.disable_nodelay().await; + server_config +} + +pub(crate) async fn init_request_config() -> RequestConfig { + let request_config: RequestConfig = RequestConfig::new().await; + request_config + .buffer_size(KB_4) + .await + .http_read_timeout_ms(u64::MAX) + .await + .max_body_size(usize::MAX) + .await + .max_header_count(usize::MAX) + .await + .max_header_key_length(usize::MAX) + .await + .max_header_line_length(usize::MAX) + .await + .max_header_value_length(usize::MAX) + .await + .max_path_length(usize::MAX) + .await + .max_query_length(usize::MAX) + .await + .max_request_line_length(usize::MAX) + .await + .max_ws_frame_size(usize::MAX) + .await + .max_ws_frames(usize::MAX) + .await + .ws_read_timeout_ms(u64::MAX) + .await; + request_config +} diff --git a/frameworks/Rust/hyperlane/src/config/mod.rs b/frameworks/Rust/hyperlane/src/config/mod.rs new file mode 100644 index 00000000000..910cac3089e --- /dev/null +++ b/frameworks/Rust/hyperlane/src/config/mod.rs @@ -0,0 +1,5 @@ +mod r#fn; + +pub(crate) use r#fn::*; + +use super::*; diff --git a/frameworks/Rust/hyperlane/src/db/mod.rs b/frameworks/Rust/hyperlane/src/db/mod.rs index 7607362706f..49981db5f3d 100644 --- a/frameworks/Rust/hyperlane/src/db/mod.rs +++ b/frameworks/Rust/hyperlane/src/db/mod.rs @@ -1,9 +1,7 @@ -pub(crate) mod r#fn; -pub(crate) mod r#static; -pub(crate) mod r#type; +mod r#fn; +mod r#static; +mod r#type; -pub(crate) use r#fn::*; -pub(crate) use r#static::*; -pub(crate) use r#type::*; +pub(crate) use {r#fn::*, r#static::*, r#type::*}; use super::*; diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 525e22b311b..def6d1bca74 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -1,61 +1,42 @@ -pub(crate) mod db; -pub(crate) mod middleware; -pub(crate) mod route; -pub(crate) mod server; -pub(crate) mod utils; - -pub(crate) use db::*; -pub(crate) use server::*; -pub(crate) use utils::*; - -pub(crate) use std::fmt; -use std::{u64, usize}; - -pub(crate) use futures::{executor::block_on, future::join_all}; -pub(crate) use hyperlane::{ - tokio::{spawn, task::JoinHandle}, - *, +mod config; +mod db; +mod middleware; +mod route; +mod server; +mod utils; + +use {config::*, db::*, middleware::*, route::*, server::*, utils::*}; + +use std::fmt; + +use { + futures::{executor::block_on, future::join_all}, + hyperlane::{ + tokio::{spawn, task::JoinHandle}, + *, + }, + hyperlane_time::*, + once_cell::sync::Lazy, + rand::{Rng, SeedableRng, rng, rngs::SmallRng}, + serde::*, + serde_json::{Value, json}, + sqlx::{ + Pool, Postgres, Row, + postgres::{PgPoolOptions, PgRow}, + query as db_query, + }, }; -pub(crate) use hyperlane_time::*; -pub(crate) use once_cell::sync::Lazy; -pub(crate) use rand::{Rng, SeedableRng, rng, rngs::SmallRng}; -pub(crate) use serde::*; -pub(crate) use serde_json::{Value, json}; -pub(crate) use sqlx::{ - Pool, Postgres, Row, - postgres::{PgPoolOptions, PgRow}, - query as db_query, -}; - -use middleware::*; -use route::*; #[tokio::main] async fn main() { init_db().await; - let mut request_config: RequestConfig = RequestConfig::default(); - request_config - .set_buffer_size(KB_4) - .set_http_read_timeout_ms(u64::MAX) - .set_max_body_size(usize::MAX) - .set_max_header_count(usize::MAX) - .set_max_header_key_length(usize::MAX) - .set_max_header_line_length(usize::MAX) - .set_max_header_value_length(usize::MAX) - .set_max_path_length(usize::MAX) - .set_max_query_length(usize::MAX) - .set_max_request_line_length(usize::MAX) - .set_max_ws_frame_size(usize::MAX) - .set_max_ws_frames(usize::MAX) - .set_ws_read_timeout_ms(u64::MAX); - - let config: ServerConfig = ServerConfig::new().await; - config.request_config(request_config).await; - config.port(8080).await; - config.disable_nodelay().await; + let server_config: ServerConfig = init_server_config().await; + let request_config: RequestConfig = init_request_config().await; - let server: Server = Server::from(config).await; + let server: Server = Server::new().await; + server.server_config(server_config).await; + server.request_config(request_config).await; server.request_middleware::().await; server.route::("/plaintext").await; server.route::("/json").await; diff --git a/frameworks/Rust/hyperlane/src/middleware/mod.rs b/frameworks/Rust/hyperlane/src/middleware/mod.rs index 976fe87bede..5a079a819ec 100644 --- a/frameworks/Rust/hyperlane/src/middleware/mod.rs +++ b/frameworks/Rust/hyperlane/src/middleware/mod.rs @@ -1,5 +1,5 @@ -pub(crate) mod r#impl; -pub(crate) mod r#struct; +mod r#impl; +mod r#struct; pub(crate) use r#struct::*; diff --git a/frameworks/Rust/hyperlane/src/route/impl.rs b/frameworks/Rust/hyperlane/src/route/impl.rs index 5c632f97527..dd708fbe01a 100644 --- a/frameworks/Rust/hyperlane/src/route/impl.rs +++ b/frameworks/Rust/hyperlane/src/route/impl.rs @@ -6,7 +6,7 @@ impl ServerHook for JsonRoute { } async fn handle(self, ctx: &Context) { - let request_config: RequestConfig = *REQUEST_CONFIG; + let request_config: RequestConfigData = *REQUEST_CONFIG; let json: Value = json!({ KEY_MESSAGE: RESPONSEDATA_STR }); @@ -16,7 +16,7 @@ impl ServerHook for JsonRoute { ctx.send().await; }; run().await; - while ctx.http_from_stream(request_config).await.is_ok() { + while ctx.http_from_stream(&request_config).await.is_ok() { run().await; } ctx.closed().await; @@ -29,14 +29,14 @@ impl ServerHook for PlaintextRoute { } async fn handle(self, ctx: &Context) { - let request_config: RequestConfig = *REQUEST_CONFIG; + let request_config: RequestConfigData = *REQUEST_CONFIG; ctx.set_response_header(CONTENT_TYPE, TEXT_PLAIN).await; ctx.set_response_body(&RESPONSEDATA_BIN).await; let run = || async { ctx.send().await; }; run().await; - while ctx.http_from_stream(request_config).await.is_ok() { + while ctx.http_from_stream(&request_config).await.is_ok() { run().await; } ctx.closed().await; @@ -49,7 +49,7 @@ impl ServerHook for DbRoute { } async fn handle(self, ctx: &Context) { - let request_config: RequestConfig = *REQUEST_CONFIG; + let request_config: RequestConfigData = *REQUEST_CONFIG; let db_connection: &DbPoolConnection = get_db_connection(); let run = || async { let query_row: QueryRow = random_world_row(db_connection).await; @@ -59,7 +59,7 @@ impl ServerHook for DbRoute { .await; }; run().await; - while ctx.http_from_stream(request_config).await.is_ok() { + while ctx.http_from_stream(&request_config).await.is_ok() { run().await; } ctx.closed().await; @@ -72,7 +72,7 @@ impl ServerHook for QueryRoute { } async fn handle(self, ctx: &Context) { - let request_config: RequestConfig = *REQUEST_CONFIG; + let request_config: RequestConfigData = *REQUEST_CONFIG; let run = || async { let queries: Queries = ctx .try_get_request_query(QUERY_DB_QUERY_KEY) @@ -89,7 +89,7 @@ impl ServerHook for QueryRoute { .await; }; run().await; - while ctx.http_from_stream(request_config).await.is_ok() { + while ctx.http_from_stream(&request_config).await.is_ok() { run().await; } ctx.closed().await; @@ -102,7 +102,7 @@ impl ServerHook for FortunesRoute { } async fn handle(self, ctx: &Context) { - let request_config: RequestConfig = *REQUEST_CONFIG; + let request_config: RequestConfigData = *REQUEST_CONFIG; ctx.set_response_header( CONTENT_TYPE, &ContentType::format_content_type_with_charset(TEXT_HTML, UTF8), @@ -126,7 +126,7 @@ impl ServerHook for FortunesRoute { ctx.set_response_body(&res).await.send().await; }; run().await; - while ctx.http_from_stream(request_config).await.is_ok() { + while ctx.http_from_stream(&request_config).await.is_ok() { run().await; } ctx.closed().await; @@ -139,7 +139,7 @@ impl ServerHook for UpdateRoute { } async fn handle(self, ctx: &Context) { - let request_config: RequestConfig = *REQUEST_CONFIG; + let request_config: RequestConfigData = *REQUEST_CONFIG; let run = || async { let queries: Queries = ctx .try_get_request_query(UPDATE_DB_QUERY_KEY) @@ -155,7 +155,7 @@ impl ServerHook for UpdateRoute { .await; }; run().await; - while ctx.http_from_stream(request_config).await.is_ok() { + while ctx.http_from_stream(&request_config).await.is_ok() { run().await; } ctx.closed().await; @@ -168,7 +168,7 @@ impl ServerHook for CachedQueryRoute { } async fn handle(self, ctx: &Context) { - let request_config: RequestConfig = *REQUEST_CONFIG; + let request_config: RequestConfigData = *REQUEST_CONFIG; let run = || async { let count: Queries = ctx .try_get_request_query(CACHE_QUERY_KEY) @@ -184,7 +184,7 @@ impl ServerHook for CachedQueryRoute { .await; }; run().await; - while ctx.http_from_stream(request_config).await.is_ok() { + while ctx.http_from_stream(&request_config).await.is_ok() { run().await; } ctx.closed().await; diff --git a/frameworks/Rust/hyperlane/src/route/mod.rs b/frameworks/Rust/hyperlane/src/route/mod.rs index 5ad7dbf00b2..4a85cd451f8 100644 --- a/frameworks/Rust/hyperlane/src/route/mod.rs +++ b/frameworks/Rust/hyperlane/src/route/mod.rs @@ -1,10 +1,7 @@ -pub(crate) mod r#impl; -pub(crate) mod r#static; -pub(crate) mod r#struct; +mod r#impl; +mod r#static; +mod r#struct; -pub(crate) use r#static::*; -pub(crate) use r#struct::*; +pub(crate) use {r#static::*, r#struct::*}; use super::*; - -use sqlx::{Row, postgres::PgRow}; diff --git a/frameworks/Rust/hyperlane/src/route/static.rs b/frameworks/Rust/hyperlane/src/route/static.rs index e6782f02af0..84ad0f7a4a2 100644 --- a/frameworks/Rust/hyperlane/src/route/static.rs +++ b/frameworks/Rust/hyperlane/src/route/static.rs @@ -1,3 +1,4 @@ use super::*; -pub static REQUEST_CONFIG: Lazy = Lazy::new(RequestConfig::default); +pub static REQUEST_CONFIG: Lazy = + Lazy::new(|| block_on(async { init_request_config().await.get_data().await })); diff --git a/frameworks/Rust/hyperlane/src/server/mod.rs b/frameworks/Rust/hyperlane/src/server/mod.rs index d806bc43dc2..4701af3d708 100644 --- a/frameworks/Rust/hyperlane/src/server/mod.rs +++ b/frameworks/Rust/hyperlane/src/server/mod.rs @@ -1,10 +1,8 @@ -pub(crate) mod r#const; -pub(crate) mod r#impl; -pub(crate) mod r#struct; -pub(crate) mod r#type; +mod r#const; +mod r#impl; +mod r#struct; +mod r#type; -pub(crate) use r#const::*; -pub(crate) use r#struct::*; -pub(crate) use r#type::*; +pub(crate) use {r#const::*, r#struct::*, r#type::*}; use super::*;