From 404e2dd1d3e511770556a0c64484852eb84c3f8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 11:06:37 +0800 Subject: [PATCH 001/128] feat: update & fortune --- frameworks/Rust/hyperlane/Cargo.lock | 215 ++++++++++++++++-- frameworks/Rust/hyperlane/Cargo.toml | 3 +- frameworks/Rust/hyperlane/README.md | 12 +- .../Rust/hyperlane/benchmark_config.json | 2 + frameworks/Rust/hyperlane/src/constant.rs | 3 +- frameworks/Rust/hyperlane/src/db.rs | 60 ++++- frameworks/Rust/hyperlane/src/main.rs | 5 +- .../Rust/hyperlane/src/request_middleware.rs | 5 +- frameworks/Rust/hyperlane/src/route.rs | 39 +++- frameworks/Rust/hyperlane/src/server.rs | 2 + frameworks/Rust/hyperlane/src/type.rs | 19 +- frameworks/Rust/may-minihttp/README.md | 2 +- 12 files changed, 333 insertions(+), 34 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index 8d66da54a3c..cb59f7a97ff 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -266,6 +266,72 @@ dependencies = [ "typenum", ] +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "derive_builder" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" +dependencies = [ + "derive_builder_core", + "syn", +] + [[package]] name = "digest" version = "0.10.7" @@ -322,6 +388,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -471,6 +543,22 @@ dependencies = [ "serde", ] +[[package]] +name = "handlebars" +version = "6.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d752747ddabc4c1a70dd28e72f2e3c218a816773e0d7faf67433f1acfa6cba7c" +dependencies = [ + "derive_builder", + "log", + "num-order", + "pest", + "pest_derive", + "serde", + "serde_json", + "thiserror 2.0.12", +] + [[package]] name = "hashbrown" version = "0.14.5" @@ -498,9 +586,9 @@ dependencies = [ [[package]] name = "http-compress" -version = "2.3.4" +version = "2.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8646f4e10f8fc48d8f2a595e6ef303189e49e386d6863d771f028c969f0c5e42" +checksum = "cf5394c60478257d0d294dd21362169af6823c85bc98ab73ce073193ebe0e178" dependencies = [ "brotli", "flate2", @@ -509,15 +597,15 @@ dependencies = [ [[package]] name = "http-constant" -version = "1.33.1" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3567340a02df4ec03fa5475e2b273aa183d875b3bf09674403407aadda1cd1" +checksum = "c47702947ab1af7d39cca41b42beef6598b8bc26be50d22029b3547dbca1ff09" [[package]] name = "http-type" -version = "3.21.1" +version = "3.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4f21786d19bad67be1eb85b528e65722d44812d6e9bed878147f767573a2586" +checksum = "9950165f6661115413e9f836e9cb2e6174fbf6b9fff7cad88a1d4bdfdb454d81" dependencies = [ "hex", "http-compress", @@ -533,9 +621,9 @@ dependencies = [ [[package]] name = "hyperlane" -version = "4.31.1" +version = "4.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74319ece1df44e8ddd62a9e1ae13040ba34fd1500eb240fa449ca8fbc7210727" +checksum = "89e5db0096d50b03bea038232871b8b81d8356f02549a1f9f60389a7e20b32d9" dependencies = [ "async-func", "clonelicious", @@ -583,6 +671,7 @@ dependencies = [ "bb8", "bb8-postgres", "chrono", + "handlebars", "hyperlane", "rand", "serde", @@ -730,6 +819,12 @@ dependencies = [ "syn", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "idna" version = "1.0.3" @@ -842,6 +937,21 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "num-modular" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" + +[[package]] +name = "num-order" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" +dependencies = [ + "num-modular", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -862,9 +972,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.0" +version = "1.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde51589ab56b20a6f686b2c68f7a0bd6add753d697abf720d63f8db3ab7b1ad" +checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" [[package]] name = "parking_lot" @@ -895,6 +1005,51 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "pest" +version = "2.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" +dependencies = [ + "memchr", + "thiserror 2.0.12", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pest_meta" +version = "2.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" +dependencies = [ + "once_cell", + "pest", + "sha2", +] + [[package]] name = "phf" version = "0.11.3" @@ -1102,7 +1257,7 @@ checksum = "fb3aa78ecda1ebc9ec9847d5d3aba7d618823446a049ba2491940506da6e2782" dependencies = [ "log", "serde", - "thiserror", + "thiserror 1.0.69", "xml-rs", ] @@ -1251,6 +1406,12 @@ dependencies = [ "unicode-properties", ] +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "subtle" version = "2.6.1" @@ -1285,7 +1446,16 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", ] [[package]] @@ -1299,6 +1469,17 @@ dependencies = [ "syn", ] +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "tinystr" version = "0.7.6" @@ -1326,9 +1507,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.0" +version = "1.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9975ea0f48b5aa3972bf2d888c238182458437cc2a19374b81b25cdf1023fb3a" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" dependencies = [ "backtrace", "bytes", @@ -1398,6 +1579,12 @@ version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +[[package]] +name = "ucd-trie" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" + [[package]] name = "unicode-bidi" version = "0.3.18" diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index cb0eccc2e0b..8865e6f5314 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,13 +18,14 @@ exclude = [ ] [dependencies] -hyperlane = "4.31.1" +hyperlane = "4.33.0" bb8 = "0.9.0" bb8-postgres = "0.9.0" rand = "0.9.0" tokio-postgres = { version = "0.7.13", features = ["with-uuid-0_8"] } chrono = "0.4.40" serde = "1.0.219" +handlebars = "6.3.1" [profile.dev] incremental = false diff --git a/frameworks/Rust/hyperlane/README.md b/frameworks/Rust/hyperlane/README.md index 96bf0620a7e..c1447c154b2 100644 --- a/frameworks/Rust/hyperlane/README.md +++ b/frameworks/Rust/hyperlane/README.md @@ -6,7 +6,7 @@ Hyperlane is a lightweight and high-performance Rust HTTP server library designe ## Database -PostgreSQL +PostgreSQL. ## Test URLs @@ -22,6 +22,14 @@ PostgreSQL http://localhost:8080/queries?q=20 -### Test 4: Plaintext +### Test 4: Fortunes (Template rendering) + + http://localhost:8080/fortune + +### Test 5: Update Query + + http://localhost:8080/updates?q=20 + +### Test 6: Plaintext http://localhost:8080/plaintext diff --git a/frameworks/Rust/hyperlane/benchmark_config.json b/frameworks/Rust/hyperlane/benchmark_config.json index b52090969ec..760f997a538 100644 --- a/frameworks/Rust/hyperlane/benchmark_config.json +++ b/frameworks/Rust/hyperlane/benchmark_config.json @@ -6,8 +6,10 @@ "dockerfile": "hyperlane.dockerfile", "json_url": "/json", "plaintext_url": "/plaintext", + "fortune_url": "/fortunes", "db_url": "/db", "query_url": "/queries?q=", + "update_url": "/updates?q=", "port": 8080, "approach": "Realistic", "classification": "Micro", diff --git a/frameworks/Rust/hyperlane/src/constant.rs b/frameworks/Rust/hyperlane/src/constant.rs index adc58ac641e..a582004ee7a 100644 --- a/frameworks/Rust/hyperlane/src/constant.rs +++ b/frameworks/Rust/hyperlane/src/constant.rs @@ -6,5 +6,4 @@ pub static DATABASE_USER_PASSWORD: &str = "benchmarkdbpass"; pub static DATABASE_PORT: usize = 5432; pub static DATABASE_NAME: &str = "hello_world"; pub static TABLE_NAME: &str = "World"; -pub static ROW_LIMIT: i32 = 500; -pub static HYPERLANE: &str = "hyperlane"; +pub static ROW_LIMIT: i32 = 10_000; diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 81120b548bb..3b27c2b5b4f 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -113,7 +113,7 @@ pub async fn init_db() { insert_records().await; } -pub async fn random_world_row() -> Result> { +pub async fn random_world_row() -> Result> { let random_id: i32 = rand::rng().random_range(1..ROW_LIMIT); let db_pool: DbPoolConnection = get_db_connection().await; let connection: DbConnection = db_pool @@ -131,5 +131,61 @@ pub async fn random_world_row() -> Result> let random_number: i32 = rows.get(1); return Ok(QueryRow::new(id, random_number)); } - return Ok(QueryRow::new(0, 0)); + return Ok(QueryRow::new(1, 1)); +} + +pub async fn update_world_rows(times: usize) -> Result, Box> { + let db_pool: DbPoolConnection = get_db_connection().await; + let connection: DbConnection = db_pool + .get() + .await + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; + let mut random_id_list: Vec = Vec::with_capacity(times); + let mut params: Vec> = Vec::with_capacity(times * 2); + for _ in 0..times { + let random_id: i32 = rand::rng().random_range(1..ROW_LIMIT); + let new_random_number: i32 = rand::rng().random_range(1..ROW_LIMIT); + random_id_list.push(QueryRow::new(random_id, new_random_number)); + params.push(Box::new(new_random_number)); + params.push(Box::new(random_id)); + } + let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME); + for i in 0..times { + query.push_str(&format!( + "WHEN ${}::INTEGER THEN ${}::INTEGER ", + i * 2 + 2, + i * 2 + 1 + )); + } + query.push_str("END WHERE id IN ("); + for i in 0..times { + if i > 0 { + query.push_str(", "); + } + query.push_str(&format!("${}::INTEGER", i * 2 + 2)); + } + query.push(')'); + let stmt: Statement = connection.prepare(&query).await?; + let params_refs: Vec<&(dyn bb8_postgres::tokio_postgres::types::ToSql + Sync)> = params + .iter() + .map(|p| p.as_ref() as &(dyn ToSql + Sync)) + .collect(); + connection.execute(&stmt, ¶ms_refs).await?; + Ok(random_id_list) +} + +pub async fn all_world_row() -> Result, Box> { + let db_pool: DbPoolConnection = get_db_connection().await; + let connection: DbConnection = db_pool + .get() + .await + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; + let stmt: Statement = connection + .prepare(&format!( + "SELECT id, randomNumber FROM {} ORDER BY randomNumber ASC", + TABLE_NAME + )) + .await?; + let rows: Vec = connection.query(&stmt, &[]).await?; + return Ok(rows); } diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index d0145b343da..605f270a352 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -13,6 +13,7 @@ pub(crate) use bb8_postgres::PostgresConnectionManager; pub(crate) use chrono::{DateTime, Utc}; pub(crate) use constant::*; pub(crate) use db::*; +pub(crate) use handlebars::Handlebars; pub(crate) use hyperlane::{ once_cell::sync::Lazy, serde::*, @@ -26,11 +27,11 @@ pub(crate) use rand::Rng; pub(crate) use request_middleware::*; pub(crate) use response_middleware::*; pub(crate) use route::*; - pub(crate) use server::*; +pub(crate) use std::error::Error; pub(crate) use std::time::SystemTime; pub(crate) use std::{io, sync::Arc}; -pub(crate) use tokio_postgres::{Config, NoTls, Row, Statement}; +pub(crate) use tokio_postgres::{types::ToSql, Config, NoTls, Row, Statement}; pub(crate) use utils::*; #[tokio::main] diff --git a/frameworks/Rust/hyperlane/src/request_middleware.rs b/frameworks/Rust/hyperlane/src/request_middleware.rs index b1ffc0fd2fa..28a2676fccd 100644 --- a/frameworks/Rust/hyperlane/src/request_middleware.rs +++ b/frameworks/Rust/hyperlane/src/request_middleware.rs @@ -4,10 +4,7 @@ pub async fn request(controller_data: ControllerData) { let _ = controller_data .set_response_header(CONNECTION, CONNECTION_KEEP_ALIVE) .await - .set_response_header( - CONTENT_TYPE, - format!("{}; {}", APPLICATION_JSON, CHARSET_UTF_8), - ) + .set_response_header(CONTENT_TYPE, APPLICATION_JSON) .await .set_response_header(SERVER, HYPERLANE) .await diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index fce11dbc1ca..fafb465fb5a 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -30,7 +30,7 @@ pub async fn queries(controller_data: ControllerData) { .await .and_then(|queries| queries.parse::().ok()) .unwrap_or_default() - .min(ROW_LIMIT as usize) + .min(ROW_LIMIT as Queries) .max(1); let mut data: Vec = Vec::with_capacity(queries); for _ in 0..queries { @@ -42,3 +42,40 @@ pub async fn queries(controller_data: ControllerData) { .set_response_body(serde_json::to_string(&data).unwrap_or_default()) .await; } + +pub async fn fortune(controller_data: ControllerData) { + let all_rows: Vec = all_world_row().await.unwrap_or_default(); + let fortune_list: Vec = all_rows + .iter() + .map(|row| { + let id: i32 = row.get(0); + let message: i32 = row.get(1); + Fortune::new(id, message) + }) + .collect(); + let template: &str = include_str!("../templates/fortune.hbs"); + let mut handlebars: Handlebars<'_> = Handlebars::new(); + let _ = handlebars.register_template_string("fortunes", template); + let res: String = handlebars + .render("fortunes", &serde_json::json!({ "fortunes": fortune_list })) + .unwrap_or_default(); + controller_data + .set_response_header(CONTENT_TYPE, TEXT_HTML) + .await + .set_response_body(res) + .await; +} + +pub async fn updates(controller_data: ControllerData) { + let queries: Queries = controller_data + .get_request_query("q") + .await + .and_then(|queries| queries.parse::().ok()) + .unwrap_or_default() + .min(ROW_LIMIT as Queries) + .max(1); + let res: Vec = update_world_rows(queries).await.unwrap(); + let _ = controller_data + .set_response_body(serde_json::to_string(&res).unwrap_or_default()) + .await; +} diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 7042eab442b..3c59d9ed7be 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -11,6 +11,8 @@ pub async fn run_server() { server.route("/plaintext", plaintext).await; server.route("/db", db).await; server.route("/queries", queries).await; + server.route("/fortune", fortune).await; + server.route("/updates", updates).await; server.request_middleware(request).await; server.response_middleware(response).await; println_success!("server initialization completed"); diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 5e524ede2e9..9bd7f36ff53 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -8,14 +8,23 @@ pub type Queries = usize; #[derive(Serialize)] pub struct QueryRow { id: i32, - randomNumber: i32, + random_number: i32, } impl QueryRow { pub fn new(id: i32, random_number: i32) -> Self { - Self { - id: id, - randomNumber: random_number, - } + Self { id, random_number } + } +} + +#[derive(Serialize)] +pub struct Fortune { + id: i32, + message: i32, +} + +impl Fortune { + pub fn new(id: i32, message: i32) -> Self { + Self { id, message } } } diff --git a/frameworks/Rust/may-minihttp/README.md b/frameworks/Rust/may-minihttp/README.md index e202bf0538e..a138a267303 100644 --- a/frameworks/Rust/may-minihttp/README.md +++ b/frameworks/Rust/may-minihttp/README.md @@ -10,7 +10,7 @@ PostgreSQL. ## Test URLs -### Test 1: JSON Encoding +### Test 1: JSON Encoding http://localhost:8080/json From 23a98a6954b54787ae5624f584c02a463727fc0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 11:19:59 +0800 Subject: [PATCH 002/128] feat: randomNumber --- frameworks/Rust/hyperlane/src/type.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 9bd7f36ff53..3aaa9ead7f4 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -8,12 +8,15 @@ pub type Queries = usize; #[derive(Serialize)] pub struct QueryRow { id: i32, - random_number: i32, + randomNumber: i32, } impl QueryRow { pub fn new(id: i32, random_number: i32) -> Self { - Self { id, random_number } + Self { + id, + randomNumber: random_number, + } } } From ac7dae2cae06e516e4fd534e3af02065e78d7b50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 11:25:26 +0800 Subject: [PATCH 003/128] feat: max row 500 --- frameworks/Rust/hyperlane/src/constant.rs | 2 +- frameworks/Rust/hyperlane/src/route.rs | 2 +- frameworks/Rust/hyperlane/src/server.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/constant.rs b/frameworks/Rust/hyperlane/src/constant.rs index a582004ee7a..2b988574a6c 100644 --- a/frameworks/Rust/hyperlane/src/constant.rs +++ b/frameworks/Rust/hyperlane/src/constant.rs @@ -6,4 +6,4 @@ pub static DATABASE_USER_PASSWORD: &str = "benchmarkdbpass"; pub static DATABASE_PORT: usize = 5432; pub static DATABASE_NAME: &str = "hello_world"; pub static TABLE_NAME: &str = "World"; -pub static ROW_LIMIT: i32 = 10_000; +pub static ROW_LIMIT: i32 = 500; diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index fafb465fb5a..bee73dbe29c 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -43,7 +43,7 @@ pub async fn queries(controller_data: ControllerData) { .await; } -pub async fn fortune(controller_data: ControllerData) { +pub async fn fortunes(controller_data: ControllerData) { let all_rows: Vec = all_world_row().await.unwrap_or_default(); let fortune_list: Vec = all_rows .iter() diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 3c59d9ed7be..f73eaf4fd4a 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -11,7 +11,7 @@ pub async fn run_server() { server.route("/plaintext", plaintext).await; server.route("/db", db).await; server.route("/queries", queries).await; - server.route("/fortune", fortune).await; + server.route("/fortunes", fortunes).await; server.route("/updates", updates).await; server.request_middleware(request).await; server.response_middleware(response).await; From 84934be73d5aad19f9c488b0c04078fb50a9f1bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 11:49:11 +0800 Subject: [PATCH 004/128] feat: update --- frameworks/Rust/hyperlane/src/db.rs | 32 ++++++--------------------- frameworks/Rust/hyperlane/src/type.rs | 1 + 2 files changed, 8 insertions(+), 25 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 3b27c2b5b4f..18e29eea2e0 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -141,36 +141,18 @@ pub async fn update_world_rows(times: usize) -> Result, Box = Vec::with_capacity(times); - let mut params: Vec> = Vec::with_capacity(times * 2); for _ in 0..times { let random_id: i32 = rand::rng().random_range(1..ROW_LIMIT); let new_random_number: i32 = rand::rng().random_range(1..ROW_LIMIT); random_id_list.push(QueryRow::new(random_id, new_random_number)); - params.push(Box::new(new_random_number)); - params.push(Box::new(random_id)); + let query = format!("UPDATE {} SET randomNumber = $1 WHERE id = $2", TABLE_NAME); + let stmt: Statement = connection.prepare(&query).await?; + let params_refs: Vec<&DynToSqlSync> = vec![ + &new_random_number as &DynToSqlSync, + &random_id as &DynToSqlSync, + ]; + connection.execute(&stmt, ¶ms_refs).await?; } - let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME); - for i in 0..times { - query.push_str(&format!( - "WHEN ${}::INTEGER THEN ${}::INTEGER ", - i * 2 + 2, - i * 2 + 1 - )); - } - query.push_str("END WHERE id IN ("); - for i in 0..times { - if i > 0 { - query.push_str(", "); - } - query.push_str(&format!("${}::INTEGER", i * 2 + 2)); - } - query.push(')'); - let stmt: Statement = connection.prepare(&query).await?; - let params_refs: Vec<&(dyn bb8_postgres::tokio_postgres::types::ToSql + Sync)> = params - .iter() - .map(|p| p.as_ref() as &(dyn ToSql + Sync)) - .collect(); - connection.execute(&stmt, ¶ms_refs).await?; Ok(random_id_list) } diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 3aaa9ead7f4..2ac70fdb656 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -3,6 +3,7 @@ use crate::*; pub type DbPoolConnection = bb8::Pool>; pub type DbConnection<'a> = PooledConnection<'a, PostgresConnectionManager>; pub type Queries = usize; +pub type DynToSqlSync = dyn ToSql + Sync; #[allow(bad_style)] #[derive(Serialize)] From f83757b4036f7d16b6f6ff2896ee4015ca4086c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 12:14:31 +0800 Subject: [PATCH 005/128] feat: Fortune --- frameworks/Rust/hyperlane/Cargo.lock | 16 +- frameworks/Rust/hyperlane/src/route.rs | 7 +- frameworks/Rust/hyperlane/src/type.rs | 4 +- frameworks/Rust/may-minihttp/Cargo.lock | 1381 +++++++++++++++++++++++ 4 files changed, 1397 insertions(+), 11 deletions(-) create mode 100644 frameworks/Rust/may-minihttp/Cargo.lock diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index cb59f7a97ff..87ad658c34f 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -76,9 +76,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.87" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", @@ -864,9 +864,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.170" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "litemap" @@ -1130,9 +1130,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.39" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -1562,9 +1562,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.13" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" dependencies = [ "bytes", "futures-core", diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index bee73dbe29c..5742e496791 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -45,14 +45,19 @@ pub async fn queries(controller_data: ControllerData) { pub async fn fortunes(controller_data: ControllerData) { let all_rows: Vec = all_world_row().await.unwrap_or_default(); - let fortune_list: Vec = all_rows + let mut fortune_list: Vec = all_rows .iter() .map(|row| { let id: i32 = row.get(0); let message: i32 = row.get(1); + let message: String = message.to_string(); Fortune::new(id, message) }) .collect(); + fortune_list.push(Fortune::new( + 0, + "Additional fortune added at request time.".to_owned(), + )); let template: &str = include_str!("../templates/fortune.hbs"); let mut handlebars: Handlebars<'_> = Handlebars::new(); let _ = handlebars.register_template_string("fortunes", template); diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 2ac70fdb656..40f7fc68654 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -24,11 +24,11 @@ impl QueryRow { #[derive(Serialize)] pub struct Fortune { id: i32, - message: i32, + message: String, } impl Fortune { - pub fn new(id: i32, message: i32) -> Self { + pub fn new(id: i32, message: String) -> Self { Self { id, message } } } diff --git a/frameworks/Rust/may-minihttp/Cargo.lock b/frameworks/Rust/may-minihttp/Cargo.lock new file mode 100644 index 00000000000..bf333f4ab37 --- /dev/null +++ b/frameworks/Rust/may-minihttp/Cargo.lock @@ -0,0 +1,1381 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "annotate-snippets" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccaf7e9dfbb6ab22c82e473cd1a8a7bd313c19a5b7e40970f3d89ef5a5c9e81e" +dependencies = [ + "unicode-width", + "yansi-term", +] + +[[package]] +name = "atoi" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" +dependencies = [ + "num-traits", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "buf-min" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22d5698cf6842742ed64805705798f8b351fff53fa546fd45c52184bee58dc90" +dependencies = [ + "bytes", +] + +[[package]] +name = "bumpalo" +version = "3.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "cc" +version = "1.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chrono" +version = "0.4.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-link", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core_affinity" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a034b3a7b624016c6e13f5df875747cc25f884156aad2abd12b6c46797971342" +dependencies = [ + "libc", + "num_cpus", + "winapi", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crossbeam" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "derive_more" +version = "0.99.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.100", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", + "subtle", +] + +[[package]] +name = "dtoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "generator" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +dependencies = [ + "cfg-if", + "libc", + "log", + "rustversion", + "windows", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if", + "libc", + "wasi", + "windows-targets", +] + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core 0.52.0", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "libc" +version = "0.2.171" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" + +[[package]] +name = "libmimalloc-sys" +version = "0.1.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23aa6811d3bd4deb8a84dde645f943476d13b248d818edcf8ce0b2f37f036b44" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" + +[[package]] +name = "may" +version = "0.3.49" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a809e2d6bacd818a8d78b2d43e512a29029d875338a820df5e4311daf824078b" +dependencies = [ + "cfg-if", + "core_affinity", + "crossbeam", + "generator", + "libc", + "log", + "may_queue", + "nix", + "num_cpus", + "parking_lot", + "rustversion", + "smallvec", + "socket2", + "windows-sys 0.59.0", +] + +[[package]] +name = "may-minihttp" +version = "0.1.0" +dependencies = [ + "atoi", + "buf-min", + "bytes", + "log", + "may", + "may_minihttp", + "may_postgres", + "mimalloc", + "nanorand", + "num_cpus", + "smallvec", + "yarte", +] + +[[package]] +name = "may_minihttp" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "710fda59b93aa204a26bfc7ba9c349d90035bd1b30df10df46d7c552d107291e" +dependencies = [ + "bytes", + "httparse", + "httpdate", + "itoa", + "log", + "may", + "once_cell", +] + +[[package]] +name = "may_postgres" +version = "0.1.0" +source = "git+https://github.com/Xudong-Huang/may_postgres.git?rev=917ed78#917ed788c31825b79d38e15ad8742369bec89761" +dependencies = [ + "byteorder", + "bytes", + "crossbeam", + "fallible-iterator", + "log", + "may", + "percent-encoding", + "phf", + "postgres-protocol", + "postgres-types", + "smallvec", + "spin", +] + +[[package]] +name = "may_queue" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7026ba39000f40c16ba8ea206967380471726dd26fc34f51491b47fba9d84a94" +dependencies = [ + "crossbeam-utils", + "rustversion", + "smallvec", +] + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mimalloc" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68914350ae34959d83f732418d51e2427a794055d0b9529f48259ac07af65633" +dependencies = [ + "libmimalloc-sys", +] + +[[package]] +name = "nanorand" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" + +[[package]] +name = "nix" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +dependencies = [ + "bitflags", + "cfg-if", + "cfg_aliases", + "libc", + "memoffset", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "once_cell" +version = "1.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", +] + +[[package]] +name = "postgres-protocol" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ff0abab4a9b844b93ef7b81f1efc0a366062aaef2cd702c76256b5dc075c54" +dependencies = [ + "base64", + "byteorder", + "bytes", + "fallible-iterator", + "hmac", + "md-5", + "memchr", + "rand", + "sha2", + "stringprep", +] + +[[package]] +name = "postgres-types" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613283563cd90e1dfc3518d548caee47e0e725455ed619881f5cf21f36de4b48" +dependencies = [ + "bytes", + "fallible-iterator", + "postgres-protocol", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha", + "rand_core", + "zerocopy", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom", +] + +[[package]] +name = "redox_syscall" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustversion" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "smallvec" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" + +[[package]] +name = "socket2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tinyvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicode-bidi" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "v_eval" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd8b599d797eb038d0dde9a3860aacb6bbba3bffa4ac64f807c8673820cc9d9" +dependencies = [ + "regex", + "syn 1.0.109", +] + +[[package]] +name = "v_htmlescape" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c" +dependencies = [ + "buf-min", +] + +[[package]] +name = "v_jsonescape" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be8219cc464ba10c48c3231a6871f11d26d831c5c45a47467eea387ea7bb10e8" +dependencies = [ + "buf-min", +] + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn 2.0.100", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core 0.58.0", + "windows-targets", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-core" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-result", + "windows-strings", + "windows-targets", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "windows-link" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags", +] + +[[package]] +name = "yansi-term" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe5c30ade05e61656247b2e334a031dfd0cc466fadef865bdcdea8d537951bf1" +dependencies = [ + "winapi", +] + +[[package]] +name = "yarte" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfce1df93f3b16e5272221a559e60bbbaaa71dbc042a43996d223e51a690aab2" +dependencies = [ + "buf-min", + "yarte_derive", + "yarte_helpers", +] + +[[package]] +name = "yarte_codegen" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a79312078b97a195de91a8c1457c2e0d7abd97e6e605f3cdeb01b3c105d2cff" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "yarte_helpers", + "yarte_hir", +] + +[[package]] +name = "yarte_derive" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b296edd7e1a81717b6f794baa2de8dfe89646050847161550b2d963b3ca6fe80" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "v_jsonescape", + "yarte_codegen", + "yarte_helpers", + "yarte_hir", + "yarte_parser", +] + +[[package]] +name = "yarte_helpers" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0d1076f8cee9541ea5ffbecd9102f751252c91f085e7d30a18a3ce805ebd3ee" +dependencies = [ + "buf-min", + "chrono", + "dtoa", + "itoa", + "prettyplease", + "ryu", + "serde", + "serde_json", + "syn 1.0.109", + "toml", + "v_htmlescape", + "v_jsonescape", +] + +[[package]] +name = "yarte_hir" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee42d2f704a3b1d8bc111d47a705d1302a0943d85e4c230f4e8300ee0dde4a6" +dependencies = [ + "derive_more", + "proc-macro2", + "quote", + "syn 1.0.109", + "v_eval", + "v_htmlescape", + "yarte_helpers", + "yarte_parser", +] + +[[package]] +name = "yarte_parser" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "538f72049cf7104e12d5c444048d112cb8fc788a31308afd912442a381ba860c" +dependencies = [ + "annotate-snippets", + "derive_more", + "proc-macro2", + "quote", + "serde", + "syn 1.0.109", + "unicode-xid", + "yarte_helpers", +] + +[[package]] +name = "zerocopy" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] From 95d0891f8952bed22f4035c0fd661b2651f42632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 12:17:11 +0800 Subject: [PATCH 006/128] feat: fortunes --- frameworks/Rust/hyperlane/src/route.rs | 11 +++++++---- frameworks/Rust/hyperlane/src/type.rs | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 5742e496791..8be1edeffdf 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -45,16 +45,16 @@ pub async fn queries(controller_data: ControllerData) { pub async fn fortunes(controller_data: ControllerData) { let all_rows: Vec = all_world_row().await.unwrap_or_default(); - let mut fortune_list: Vec = all_rows + let mut fortunes_list: Vec = all_rows .iter() .map(|row| { let id: i32 = row.get(0); let message: i32 = row.get(1); let message: String = message.to_string(); - Fortune::new(id, message) + Fortunes::new(id, message) }) .collect(); - fortune_list.push(Fortune::new( + fortunes_list.push(Fortunes::new( 0, "Additional fortune added at request time.".to_owned(), )); @@ -62,7 +62,10 @@ pub async fn fortunes(controller_data: ControllerData) { let mut handlebars: Handlebars<'_> = Handlebars::new(); let _ = handlebars.register_template_string("fortunes", template); let res: String = handlebars - .render("fortunes", &serde_json::json!({ "fortunes": fortune_list })) + .render( + "fortunes", + &serde_json::json!({ "fortunes": fortunes_list }), + ) .unwrap_or_default(); controller_data .set_response_header(CONTENT_TYPE, TEXT_HTML) diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 40f7fc68654..c5b7b87c33b 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -22,12 +22,12 @@ impl QueryRow { } #[derive(Serialize)] -pub struct Fortune { +pub struct Fortunes { id: i32, message: String, } -impl Fortune { +impl Fortunes { pub fn new(id: i32, message: String) -> Self { Self { id, message } } From 900c4732560e7b06f3e73deee468e5c043c2345b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 12:47:09 +0800 Subject: [PATCH 007/128] feat: update --- frameworks/Rust/hyperlane/src/db.rs | 41 ++++++++++++++++++--------- frameworks/Rust/hyperlane/src/type.rs | 1 + 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 18e29eea2e0..28e93099f4a 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -133,27 +133,42 @@ pub async fn random_world_row() -> Result> { } return Ok(QueryRow::new(1, 1)); } - pub async fn update_world_rows(times: usize) -> Result, Box> { let db_pool: DbPoolConnection = get_db_connection().await; let connection: DbConnection = db_pool .get() .await .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; - let mut random_id_list: Vec = Vec::with_capacity(times); - for _ in 0..times { - let random_id: i32 = rand::rng().random_range(1..ROW_LIMIT); + let mut id_list: Vec = Vec::with_capacity(times); + let mut params: Vec> = Vec::with_capacity(times * 2); + for id in 0..times { + let id: i32 = id as i32; let new_random_number: i32 = rand::rng().random_range(1..ROW_LIMIT); - random_id_list.push(QueryRow::new(random_id, new_random_number)); - let query = format!("UPDATE {} SET randomNumber = $1 WHERE id = $2", TABLE_NAME); - let stmt: Statement = connection.prepare(&query).await?; - let params_refs: Vec<&DynToSqlSync> = vec![ - &new_random_number as &DynToSqlSync, - &random_id as &DynToSqlSync, - ]; - connection.execute(&stmt, ¶ms_refs).await?; + id_list.push(QueryRow::new(id, new_random_number)); + params.push(Box::new(new_random_number)); + params.push(Box::new(id)); + } + let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME); + for i in 0..times { + query.push_str(&format!( + "WHEN ${}::INTEGER THEN ${}::INTEGER ", + i * 2 + 2, + i * 2 + 1 + )); + } + query.push_str("END WHERE id IN ("); + for i in 0..times { + if i > 0 { + query.push_str(", "); + } + query.push_str(&format!("${}::INTEGER", i * 2 + 2)); } - Ok(random_id_list) + query.push(')'); + let stmt: Statement = connection.prepare(&query).await?; + let params_refs: Vec<&DynToSqlSync> = + params.iter().map(|p| p.as_ref() as &DynToSqlSync).collect(); + connection.execute(&stmt, ¶ms_refs).await?; + Ok(id_list) } pub async fn all_world_row() -> Result, Box> { diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index c5b7b87c33b..4c6ffd83561 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -4,6 +4,7 @@ pub type DbPoolConnection = bb8::Pool>; pub type DbConnection<'a> = PooledConnection<'a, PostgresConnectionManager>; pub type Queries = usize; pub type DynToSqlSync = dyn ToSql + Sync; +pub type DynToSqlSyncSend = dyn ToSql + Sync + Send; #[allow(bad_style)] #[derive(Serialize)] From df76bd1a72b76e5030d2d7430f5a0bab551b86ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 13:01:40 +0800 Subject: [PATCH 008/128] feat: update --- frameworks/Rust/hyperlane/src/constant.rs | 1 + frameworks/Rust/hyperlane/src/db.rs | 9 +++------ frameworks/Rust/hyperlane/src/route.rs | 8 +++----- frameworks/Rust/hyperlane/src/type.rs | 4 ++-- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/constant.rs b/frameworks/Rust/hyperlane/src/constant.rs index 2b988574a6c..6c57ee6675b 100644 --- a/frameworks/Rust/hyperlane/src/constant.rs +++ b/frameworks/Rust/hyperlane/src/constant.rs @@ -7,3 +7,4 @@ pub static DATABASE_PORT: usize = 5432; pub static DATABASE_NAME: &str = "hello_world"; pub static TABLE_NAME: &str = "World"; pub static ROW_LIMIT: i32 = 500; +pub static RANDOM_MAX: i32 = 10000; diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 28e93099f4a..e566d08a32f 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -71,7 +71,7 @@ pub async fn insert_records() { let mut rng: rand::prelude::ThreadRng = rand::rng(); let mut values: Vec = Vec::new(); for _ in 0..missing_count { - let random_number: i32 = rng.random_range(1..=10000); + let random_number: i32 = rng.random_range(1..=RANDOM_MAX); values.push(format!("(DEFAULT, {})", random_number)); } let query: String = format!( @@ -143,7 +143,7 @@ pub async fn update_world_rows(times: usize) -> Result, Box> = Vec::with_capacity(times * 2); for id in 0..times { let id: i32 = id as i32; - let new_random_number: i32 = rand::rng().random_range(1..ROW_LIMIT); + let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); id_list.push(QueryRow::new(id, new_random_number)); params.push(Box::new(new_random_number)); params.push(Box::new(id)); @@ -178,10 +178,7 @@ pub async fn all_world_row() -> Result, Box> { .await .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; let stmt: Statement = connection - .prepare(&format!( - "SELECT id, randomNumber FROM {} ORDER BY randomNumber ASC", - TABLE_NAME - )) + .prepare(&format!("SELECT id, randomNumber FROM {}", TABLE_NAME)) .await?; let rows: Vec = connection.query(&stmt, &[]).await?; return Ok(rows); diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 8be1edeffdf..18013e9e7b3 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -54,6 +54,7 @@ pub async fn fortunes(controller_data: ControllerData) { Fortunes::new(id, message) }) .collect(); + fortunes_list.sort_by(|a, b| a.message.cmp(&b.message)); fortunes_list.push(Fortunes::new( 0, "Additional fortune added at request time.".to_owned(), @@ -62,13 +63,10 @@ pub async fn fortunes(controller_data: ControllerData) { let mut handlebars: Handlebars<'_> = Handlebars::new(); let _ = handlebars.register_template_string("fortunes", template); let res: String = handlebars - .render( - "fortunes", - &serde_json::json!({ "fortunes": fortunes_list }), - ) + .render("fortunes", &json!({ "fortunes": fortunes_list })) .unwrap_or_default(); controller_data - .set_response_header(CONTENT_TYPE, TEXT_HTML) + .set_response_header(CONTENT_TYPE, format!("{}; {}", TEXT_HTML, CHARSET_UTF_8)) .await .set_response_body(res) .await; diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 4c6ffd83561..c9d9133c54a 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -24,8 +24,8 @@ impl QueryRow { #[derive(Serialize)] pub struct Fortunes { - id: i32, - message: String, + pub id: i32, + pub message: String, } impl Fortunes { From 1d412d6763064fe41ce103dba3d4dc8e5e57334f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 13:13:45 +0800 Subject: [PATCH 009/128] feat: update --- frameworks/Rust/hyperlane/src/db.rs | 9 +++++++++ frameworks/Rust/hyperlane/src/main.rs | 2 +- frameworks/Rust/hyperlane/src/route.rs | 6 ++++++ frameworks/Rust/hyperlane/src/type.rs | 2 ++ frameworks/Rust/hyperlane/src/utils.rs | 16 ++++++++++++++++ 5 files changed, 34 insertions(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index e566d08a32f..4f6dc74c863 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -1,10 +1,12 @@ use crate::*; +#[inline] pub async fn get_db_connection() -> DbPoolConnection { let db_pool: DbPoolConnection = DB.read().await.clone().unwrap(); db_pool } +#[inline] pub async fn create_batabase() { let db_pool: DbPoolConnection = get_db_connection().await; let connection: DbConnection = db_pool.get().await.unwrap(); @@ -31,6 +33,7 @@ pub async fn create_batabase() { println_success!("database `", DATABASE_NAME, "` ready"); } +#[inline] pub async fn create_table() { let db_pool: DbPoolConnection = get_db_connection().await; let connection: DbConnection = db_pool.get().await.unwrap(); @@ -47,6 +50,7 @@ pub async fn create_table() { println_success!("table `", TABLE_NAME, "` ready"); } +#[inline] pub async fn insert_records() { let db_pool: DbPoolConnection = get_db_connection().await; let connection: DbConnection = db_pool.get().await.unwrap(); @@ -86,6 +90,7 @@ pub async fn insert_records() { )); } +#[inline] pub async fn init_db() { let db_url: &str = match option_env!("POSTGRES_URL") { Some(it) => it, @@ -113,6 +118,7 @@ pub async fn init_db() { insert_records().await; } +#[inline] pub async fn random_world_row() -> Result> { let random_id: i32 = rand::rng().random_range(1..ROW_LIMIT); let db_pool: DbPoolConnection = get_db_connection().await; @@ -133,6 +139,8 @@ pub async fn random_world_row() -> Result> { } return Ok(QueryRow::new(1, 1)); } + +#[inline] pub async fn update_world_rows(times: usize) -> Result, Box> { let db_pool: DbPoolConnection = get_db_connection().await; let connection: DbConnection = db_pool @@ -171,6 +179,7 @@ pub async fn update_world_rows(times: usize) -> Result, Box Result, Box> { let db_pool: DbPoolConnection = get_db_connection().await; let connection: DbConnection = db_pool diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 605f270a352..2e5221eda66 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -13,7 +13,7 @@ pub(crate) use bb8_postgres::PostgresConnectionManager; pub(crate) use chrono::{DateTime, Utc}; pub(crate) use constant::*; pub(crate) use db::*; -pub(crate) use handlebars::Handlebars; +pub(crate) use handlebars::{Context, Handlebars, Helper, HelperResult, RenderContext}; pub(crate) use hyperlane::{ once_cell::sync::Lazy, serde::*, diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 18013e9e7b3..8695bca049e 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -1,5 +1,6 @@ use crate::*; +#[inline] pub async fn json(controller_data: ControllerData) { let json: serde_json::Value = json!({ "message": RESPONSEDATA @@ -9,6 +10,7 @@ pub async fn json(controller_data: ControllerData) { .await; } +#[inline] pub async fn plaintext(controller_data: ControllerData) { let _ = controller_data .set_response_header(CONTENT_TYPE, TEXT_PLAIN) @@ -17,6 +19,7 @@ pub async fn plaintext(controller_data: ControllerData) { .await; } +#[inline] pub async fn db(controller_data: ControllerData) { let query_row: QueryRow = random_world_row().await.unwrap(); let _ = controller_data @@ -24,6 +27,7 @@ pub async fn db(controller_data: ControllerData) { .await; } +#[inline] pub async fn queries(controller_data: ControllerData) { let queries: Queries = controller_data .get_request_query("q") @@ -43,6 +47,7 @@ pub async fn queries(controller_data: ControllerData) { .await; } +#[inline] pub async fn fortunes(controller_data: ControllerData) { let all_rows: Vec = all_world_row().await.unwrap_or_default(); let mut fortunes_list: Vec = all_rows @@ -61,6 +66,7 @@ pub async fn fortunes(controller_data: ControllerData) { )); let template: &str = include_str!("../templates/fortune.hbs"); let mut handlebars: Handlebars<'_> = Handlebars::new(); + handlebars.register_helper("raw", Box::new(raw_helper)); let _ = handlebars.register_template_string("fortunes", template); let res: String = handlebars .render("fortunes", &json!({ "fortunes": fortunes_list })) diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index c9d9133c54a..d076f97131e 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -14,6 +14,7 @@ pub struct QueryRow { } impl QueryRow { + #[inline] pub fn new(id: i32, random_number: i32) -> Self { Self { id, @@ -29,6 +30,7 @@ pub struct Fortunes { } impl Fortunes { + #[inline] pub fn new(id: i32, message: String) -> Self { Self { id, message } } diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index c189f0be8db..a16e7db6379 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -1,6 +1,22 @@ use crate::*; +#[inline] pub fn generate_rfc1123_timestamp() -> String { let now: DateTime = SystemTime::now().into(); now.format("%a, %d %b %Y %H:%M:%S GMT").to_string() } + +#[inline] +pub fn raw_helper( + h: &Helper, + _: &Handlebars, + _: &Context, + _: &mut RenderContext, + out: &mut dyn handlebars::Output, +) -> HelperResult { + if let Some(param) = h.param(0) { + let value = param.value().as_str().unwrap_or_default(); + out.write(value)?; + } + Ok(()) +} From 14c8eaf8bd4b89d38a48bbdd4fbd52b64df172a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 13:38:05 +0800 Subject: [PATCH 010/128] feat: update --- frameworks/Rust/hyperlane/Cargo.lock | 191 +----------------------- frameworks/Rust/hyperlane/Cargo.toml | 1 - frameworks/Rust/hyperlane/src/main.rs | 11 +- frameworks/Rust/hyperlane/src/route.rs | 18 +-- frameworks/Rust/hyperlane/src/server.rs | 3 +- frameworks/Rust/hyperlane/src/type.rs | 28 +++- frameworks/Rust/hyperlane/src/utils.rs | 15 -- 7 files changed, 46 insertions(+), 221 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index 87ad658c34f..db3b2edcd76 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -266,72 +266,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "darling" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" -dependencies = [ - "darling_core", - "quote", - "syn", -] - -[[package]] -name = "derive_builder" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "derive_builder_macro" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" -dependencies = [ - "derive_builder_core", - "syn", -] - [[package]] name = "digest" version = "0.10.7" @@ -388,12 +322,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - [[package]] name = "form_urlencoded" version = "1.2.1" @@ -543,22 +471,6 @@ dependencies = [ "serde", ] -[[package]] -name = "handlebars" -version = "6.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d752747ddabc4c1a70dd28e72f2e3c218a816773e0d7faf67433f1acfa6cba7c" -dependencies = [ - "derive_builder", - "log", - "num-order", - "pest", - "pest_derive", - "serde", - "serde_json", - "thiserror 2.0.12", -] - [[package]] name = "hashbrown" version = "0.14.5" @@ -671,7 +583,6 @@ dependencies = [ "bb8", "bb8-postgres", "chrono", - "handlebars", "hyperlane", "rand", "serde", @@ -819,12 +730,6 @@ dependencies = [ "syn", ] -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - [[package]] name = "idna" version = "1.0.3" @@ -937,21 +842,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "num-modular" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" - -[[package]] -name = "num-order" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" -dependencies = [ - "num-modular", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -1005,51 +895,6 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" -[[package]] -name = "pest" -version = "2.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" -dependencies = [ - "memchr", - "thiserror 2.0.12", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pest_meta" -version = "2.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" -dependencies = [ - "once_cell", - "pest", - "sha2", -] - [[package]] name = "phf" version = "0.11.3" @@ -1257,7 +1102,7 @@ checksum = "fb3aa78ecda1ebc9ec9847d5d3aba7d618823446a049ba2491940506da6e2782" dependencies = [ "log", "serde", - "thiserror 1.0.69", + "thiserror", "xml-rs", ] @@ -1406,12 +1251,6 @@ dependencies = [ "unicode-properties", ] -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - [[package]] name = "subtle" version = "2.6.1" @@ -1446,16 +1285,7 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" -dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl", ] [[package]] @@ -1469,17 +1299,6 @@ dependencies = [ "syn", ] -[[package]] -name = "thiserror-impl" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "tinystr" version = "0.7.6" @@ -1579,12 +1398,6 @@ version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - [[package]] name = "unicode-bidi" version = "0.3.18" diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 8865e6f5314..fee51c42aef 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -25,7 +25,6 @@ rand = "0.9.0" tokio-postgres = { version = "0.7.13", features = ["with-uuid-0_8"] } chrono = "0.4.40" serde = "1.0.219" -handlebars = "6.3.1" [profile.dev] incremental = false diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 2e5221eda66..58bacef9d24 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -13,7 +13,6 @@ pub(crate) use bb8_postgres::PostgresConnectionManager; pub(crate) use chrono::{DateTime, Utc}; pub(crate) use constant::*; pub(crate) use db::*; -pub(crate) use handlebars::{Context, Handlebars, Helper, HelperResult, RenderContext}; pub(crate) use hyperlane::{ once_cell::sync::Lazy, serde::*, @@ -28,9 +27,13 @@ pub(crate) use request_middleware::*; pub(crate) use response_middleware::*; pub(crate) use route::*; pub(crate) use server::*; -pub(crate) use std::error::Error; -pub(crate) use std::time::SystemTime; -pub(crate) use std::{io, sync::Arc}; +pub(crate) use std::{ + error::Error, + fmt::{self, Write}, + io, + sync::Arc, + time::SystemTime, +}; pub(crate) use tokio_postgres::{types::ToSql, Config, NoTls, Row, Statement}; pub(crate) use utils::*; diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 8695bca049e..5b0b3f32d68 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -49,7 +49,12 @@ pub async fn queries(controller_data: ControllerData) { #[inline] pub async fn fortunes(controller_data: ControllerData) { - let all_rows: Vec = all_world_row().await.unwrap_or_default(); + let mut all_rows: Vec = all_world_row().await.unwrap_or_default(); + all_rows.sort_by(|a, b| { + let message_a: i32 = a.get(1); + let message_b: i32 = b.get(1); + message_a.cmp(&message_b) + }); let mut fortunes_list: Vec = all_rows .iter() .map(|row| { @@ -59,18 +64,12 @@ pub async fn fortunes(controller_data: ControllerData) { Fortunes::new(id, message) }) .collect(); - fortunes_list.sort_by(|a, b| a.message.cmp(&b.message)); fortunes_list.push(Fortunes::new( 0, "Additional fortune added at request time.".to_owned(), )); - let template: &str = include_str!("../templates/fortune.hbs"); - let mut handlebars: Handlebars<'_> = Handlebars::new(); - handlebars.register_helper("raw", Box::new(raw_helper)); - let _ = handlebars.register_template_string("fortunes", template); - let res: String = handlebars - .render("fortunes", &json!({ "fortunes": fortunes_list })) - .unwrap_or_default(); + let mut res: String = String::with_capacity(2048); + let _ = write!(&mut res, "{}", FortunesTemplate::new(fortunes_list)); controller_data .set_response_header(CONTENT_TYPE, format!("{}; {}", TEXT_HTML, CHARSET_UTF_8)) .await @@ -78,6 +77,7 @@ pub async fn fortunes(controller_data: ControllerData) { .await; } +#[inline] pub async fn updates(controller_data: ControllerData) { let queries: Queries = controller_data .get_request_query("q") diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index f73eaf4fd4a..dc9d450de75 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -1,12 +1,13 @@ use crate::*; +#[inline] pub async fn run_server() { let mut server: Server = Server::new(); server.host("0.0.0.0").await; server.port(8080).await; server.log_dir("./logs").await; server.log_interval_millis(1_000_000_000).await; - server.disable_print().await; + // server.disable_print().await; server.route("/json", json).await; server.route("/plaintext", plaintext).await; server.route("/db", db).await; diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index d076f97131e..0f698428e18 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -9,8 +9,8 @@ pub type DynToSqlSyncSend = dyn ToSql + Sync + Send; #[allow(bad_style)] #[derive(Serialize)] pub struct QueryRow { - id: i32, - randomNumber: i32, + pub id: i32, + pub randomNumber: i32, } impl QueryRow { @@ -35,3 +35,27 @@ impl Fortunes { Self { id, message } } } + +pub struct FortunesTemplate { + pub fortunes_list: Vec, +} + +impl FortunesTemplate { + pub fn new(fortunes_list: Vec) -> Self { + Self { fortunes_list } + } +} + +impl fmt::Display for FortunesTemplate { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "Fortunes")?; + for fortunes in &self.fortunes_list { + write!( + f, + "", + fortunes.id, fortunes.message + )?; + } + write!(f, "
idmessage
{}{}
") + } +} diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index a16e7db6379..ea37364a8bc 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -5,18 +5,3 @@ pub fn generate_rfc1123_timestamp() -> String { let now: DateTime = SystemTime::now().into(); now.format("%a, %d %b %Y %H:%M:%S GMT").to_string() } - -#[inline] -pub fn raw_helper( - h: &Helper, - _: &Handlebars, - _: &Context, - _: &mut RenderContext, - out: &mut dyn handlebars::Output, -) -> HelperResult { - if let Some(param) = h.param(0) { - let value = param.value().as_str().unwrap_or_default(); - out.write(value)?; - } - Ok(()) -} From 25a66350b049b440bcc2bb828128731fc9c8fb32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 13:42:32 +0800 Subject: [PATCH 011/128] feat: fortunes --- frameworks/Rust/hyperlane/src/type.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 0f698428e18..1e0ad656896 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -50,10 +50,11 @@ impl fmt::Display for FortunesTemplate { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Fortunes")?; for fortunes in &self.fortunes_list { + let escaped_message: String = fortunes.message.escape_default().collect::(); write!( f, "", - fortunes.id, fortunes.message + fortunes.id, escaped_message )?; } write!(f, "
idmessage
{}{}
") From 6b51ccac4b38c58ffa304225858b3631081b6658 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 13:47:49 +0800 Subject: [PATCH 012/128] feat: fortunes --- frameworks/Rust/hyperlane/Cargo.lock | 16 ++++++++++++++++ frameworks/Rust/hyperlane/Cargo.toml | 1 + frameworks/Rust/hyperlane/src/main.rs | 2 ++ frameworks/Rust/hyperlane/src/type.rs | 4 ++-- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index db3b2edcd76..8acf05f5e0f 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -496,6 +496,15 @@ dependencies = [ "digest", ] +[[package]] +name = "html-escape" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" +dependencies = [ + "utf8-width", +] + [[package]] name = "http-compress" version = "2.3.5" @@ -583,6 +592,7 @@ dependencies = [ "bb8", "bb8-postgres", "chrono", + "html-escape", "hyperlane", "rand", "serde", @@ -1442,6 +1452,12 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" +[[package]] +name = "utf8-width" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" + [[package]] name = "utf8_iter" version = "1.0.4" diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index fee51c42aef..ac9b4adabae 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -25,6 +25,7 @@ rand = "0.9.0" tokio-postgres = { version = "0.7.13", features = ["with-uuid-0_8"] } chrono = "0.4.40" serde = "1.0.219" +html-escape = "0.2.13" [profile.dev] incremental = false diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 58bacef9d24..ad136b60b3e 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -13,6 +13,7 @@ pub(crate) use bb8_postgres::PostgresConnectionManager; pub(crate) use chrono::{DateTime, Utc}; pub(crate) use constant::*; pub(crate) use db::*; +pub(crate) use html_escape::decode_html_entities; pub(crate) use hyperlane::{ once_cell::sync::Lazy, serde::*, @@ -28,6 +29,7 @@ pub(crate) use response_middleware::*; pub(crate) use route::*; pub(crate) use server::*; pub(crate) use std::{ + borrow::Cow, error::Error, fmt::{self, Write}, io, diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 1e0ad656896..4e181bdbc8c 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -50,11 +50,11 @@ impl fmt::Display for FortunesTemplate { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Fortunes")?; for fortunes in &self.fortunes_list { - let escaped_message: String = fortunes.message.escape_default().collect::(); + let decoded_message: Cow<'_, str> = decode_html_entities(&fortunes.message); write!( f, "", - fortunes.id, escaped_message + fortunes.id, decoded_message )?; } write!(f, "
idmessage
{}{}
") From ff93dffe95550d598ed737a41c559dd095b84221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 13:56:28 +0800 Subject: [PATCH 013/128] feat: fortunes --- frameworks/Rust/hyperlane/src/db.rs | 19 ++++++++++++++----- frameworks/Rust/hyperlane/src/server.rs | 2 +- frameworks/Rust/hyperlane/src/type.rs | 2 +- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 4f6dc74c863..72f255b5018 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -149,12 +149,21 @@ pub async fn update_world_rows(times: usize) -> Result, Box = Vec::with_capacity(times); let mut params: Vec> = Vec::with_capacity(times * 2); - for id in 0..times { - let id: i32 = id as i32; + let mut cnt: usize = 0; + loop { + if cnt >= times { + break; + } let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); - id_list.push(QueryRow::new(id, new_random_number)); - params.push(Box::new(new_random_number)); - params.push(Box::new(id)); + if let Ok(row) = random_world_row().await { + let id: i32 = row.id; + id_list.push(QueryRow::new(id, new_random_number)); + params.push(Box::new(new_random_number)); + params.push(Box::new(id)); + cnt += 1; + } else { + continue; + } } let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME); for i in 0..times { diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index dc9d450de75..144330bad53 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -7,7 +7,7 @@ pub async fn run_server() { server.port(8080).await; server.log_dir("./logs").await; server.log_interval_millis(1_000_000_000).await; - // server.disable_print().await; + server.disable_print().await; server.route("/json", json).await; server.route("/plaintext", plaintext).await; server.route("/db", db).await; diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 4e181bdbc8c..6158c7d9ae1 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -7,7 +7,7 @@ pub type DynToSqlSync = dyn ToSql + Sync; pub type DynToSqlSyncSend = dyn ToSql + Sync + Send; #[allow(bad_style)] -#[derive(Serialize)] +#[derive(Serialize, Default)] pub struct QueryRow { pub id: i32, pub randomNumber: i32, From b326d96feb82559e49a062cb7f6edf951a50fb1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 14:09:56 +0800 Subject: [PATCH 014/128] feat: fortunes --- frameworks/Rust/hyperlane/src/request_middleware.rs | 1 + frameworks/Rust/hyperlane/src/response_middleware.rs | 1 + frameworks/Rust/hyperlane/src/route.rs | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/request_middleware.rs b/frameworks/Rust/hyperlane/src/request_middleware.rs index 28a2676fccd..e609a8f3821 100644 --- a/frameworks/Rust/hyperlane/src/request_middleware.rs +++ b/frameworks/Rust/hyperlane/src/request_middleware.rs @@ -1,5 +1,6 @@ use crate::*; +#[inline] pub async fn request(controller_data: ControllerData) { let _ = controller_data .set_response_header(CONNECTION, CONNECTION_KEEP_ALIVE) diff --git a/frameworks/Rust/hyperlane/src/response_middleware.rs b/frameworks/Rust/hyperlane/src/response_middleware.rs index 81fb0c368e9..dcf3b096b10 100644 --- a/frameworks/Rust/hyperlane/src/response_middleware.rs +++ b/frameworks/Rust/hyperlane/src/response_middleware.rs @@ -1,5 +1,6 @@ use crate::*; +#[inline] pub async fn response(controller_data: ControllerData) { let _ = controller_data.send().await; } diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 5b0b3f32d68..da4771ddae9 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -68,7 +68,7 @@ pub async fn fortunes(controller_data: ControllerData) { 0, "Additional fortune added at request time.".to_owned(), )); - let mut res: String = String::with_capacity(2048); + let mut res: String = String::with_capacity(20480); let _ = write!(&mut res, "{}", FortunesTemplate::new(fortunes_list)); controller_data .set_response_header(CONTENT_TYPE, format!("{}; {}", TEXT_HTML, CHARSET_UTF_8)) From ff1088881ec3b5a3bd85824fe60494c86d06ebcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 14:33:40 +0800 Subject: [PATCH 015/128] feat: fortunes --- frameworks/Rust/hyperlane/src/db.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 72f255b5018..57b20630d0c 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -108,7 +108,12 @@ pub async fn init_db() { let config: Config = db_url.parse::().unwrap(); let db_manager: PostgresConnectionManager = PostgresConnectionManager::new(config, NoTls); - let db_pool: DbPoolConnection = Pool::builder().build(db_manager).await.unwrap(); + let db_pool: DbPoolConnection = Pool::builder() + .max_size(1_000) + .max_lifetime(Some(std::time::Duration::from_secs(u64::MAX))) + .build(db_manager) + .await + .unwrap(); { let mut db_pool_lock: RwLockWriteGuard<'_, Option> = DB.write().await; *db_pool_lock = Some(db_pool.clone()); From 6323de957e8649860e04d7bf6b50c8a40ce4b560 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 14:51:29 +0800 Subject: [PATCH 016/128] feat: fortunes --- frameworks/Rust/hyperlane/src/db.rs | 8 ++++++++ frameworks/Rust/hyperlane/src/main.rs | 2 +- frameworks/Rust/hyperlane/src/route.rs | 12 ++++++------ frameworks/Rust/hyperlane/src/type.rs | 2 +- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 57b20630d0c..8e493d7d269 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -155,6 +155,7 @@ pub async fn update_world_rows(times: usize) -> Result, Box = Vec::with_capacity(times); let mut params: Vec> = Vec::with_capacity(times * 2); let mut cnt: usize = 0; + let mut map: Vec = vec![false; ROW_LIMIT as usize]; loop { if cnt >= times { break; @@ -162,6 +163,13 @@ pub async fn update_world_rows(times: usize) -> Result, Box= ROW_LIMIT as usize { + continue; + } + if map[id as usize] { + continue; + } + map[id as usize] = true; id_list.push(QueryRow::new(id, new_random_number)); params.push(Box::new(new_random_number)); params.push(Box::new(id)); diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index ad136b60b3e..166e7d7c33e 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -13,7 +13,7 @@ pub(crate) use bb8_postgres::PostgresConnectionManager; pub(crate) use chrono::{DateTime, Utc}; pub(crate) use constant::*; pub(crate) use db::*; -pub(crate) use html_escape::decode_html_entities; +pub(crate) use html_escape::encode_text; pub(crate) use hyperlane::{ once_cell::sync::Lazy, serde::*, diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index da4771ddae9..2f68864ae4a 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -49,12 +49,7 @@ pub async fn queries(controller_data: ControllerData) { #[inline] pub async fn fortunes(controller_data: ControllerData) { - let mut all_rows: Vec = all_world_row().await.unwrap_or_default(); - all_rows.sort_by(|a, b| { - let message_a: i32 = a.get(1); - let message_b: i32 = b.get(1); - message_a.cmp(&message_b) - }); + let all_rows: Vec = all_world_row().await.unwrap_or_default(); let mut fortunes_list: Vec = all_rows .iter() .map(|row| { @@ -64,6 +59,11 @@ pub async fn fortunes(controller_data: ControllerData) { Fortunes::new(id, message) }) .collect(); + fortunes_list.sort_by(|a, b| { + let message_a: &String = &a.message; + let message_b: &String = &b.message; + message_a.cmp(message_b) + }); fortunes_list.push(Fortunes::new( 0, "Additional fortune added at request time.".to_owned(), diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 6158c7d9ae1..3c2db3b2019 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -50,7 +50,7 @@ impl fmt::Display for FortunesTemplate { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Fortunes")?; for fortunes in &self.fortunes_list { - let decoded_message: Cow<'_, str> = decode_html_entities(&fortunes.message); + let decoded_message: Cow<'_, str> = encode_text(&fortunes.message); write!( f, "", From 90f95a85b64a4910b9f97eed4d5599765e9ca2cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 16:58:16 +0800 Subject: [PATCH 017/128] feat: update --- frameworks/Rust/hyperlane/src/constant.rs | 5 +- frameworks/Rust/hyperlane/src/db.rs | 101 +++++++++------------- frameworks/Rust/hyperlane/src/main.rs | 4 +- frameworks/Rust/hyperlane/src/route.rs | 5 +- frameworks/Rust/hyperlane/src/server.rs | 1 - frameworks/Rust/hyperlane/src/type.rs | 4 +- 6 files changed, 51 insertions(+), 69 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/constant.rs b/frameworks/Rust/hyperlane/src/constant.rs index 6c57ee6675b..dd8c41803a5 100644 --- a/frameworks/Rust/hyperlane/src/constant.rs +++ b/frameworks/Rust/hyperlane/src/constant.rs @@ -3,8 +3,9 @@ pub static DATABASE_TYPE: &str = "postgres"; pub static DATABASE_HOST: &str = "tfb-database"; pub static DATABASE_USER_NAME: &str = "benchmarkdbuser"; pub static DATABASE_USER_PASSWORD: &str = "benchmarkdbpass"; -pub static DATABASE_PORT: usize = 5432; +pub static DATABASE_PORT: usize = 5_432; pub static DATABASE_NAME: &str = "hello_world"; pub static TABLE_NAME: &str = "World"; pub static ROW_LIMIT: i32 = 500; -pub static RANDOM_MAX: i32 = 10000; +pub static RANDOM_MAX: i32 = 10_000; +pub static DB_POOL_SIZE: u32 = 10_000; diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 8e493d7d269..22834142cff 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -19,18 +19,11 @@ pub async fn create_batabase() { .unwrap() .get(0); if !db_exists { - println_warning!( - "database `", - DATABASE_NAME, - "` not found. Creating database..." - ); connection .batch_execute(&format!("CREATE DATABASE {};", DATABASE_NAME)) .await .unwrap(); - println_success!("database `", DATABASE_NAME, "` created successfully"); } - println_success!("database `", DATABASE_NAME, "` ready"); } #[inline] @@ -47,7 +40,6 @@ pub async fn create_table() { )) .await .unwrap(); - println_success!("table `", TABLE_NAME, "` ready"); } #[inline] @@ -61,17 +53,9 @@ pub async fn insert_records() { let count: i64 = row.get(0); let limit: i64 = ROW_LIMIT as i64; if count >= limit { - println_warning!(format!( - "table '{}' already has {} records. No need to insert.", - TABLE_NAME, count - )); return; } let missing_count: i64 = limit - count; - println_warning!(format!( - "table '{}' has {} records. Inserting {} missing records...", - TABLE_NAME, count, missing_count - )); let mut rng: rand::prelude::ThreadRng = rand::rng(); let mut values: Vec = Vec::new(); for _ in 0..missing_count { @@ -84,14 +68,21 @@ pub async fn insert_records() { values.join(",") ); connection.batch_execute(&query).await.unwrap(); - println_success!(format!( - "successfully inserted {} missing records into '{}' table.", - TABLE_NAME, missing_count - )); } #[inline] pub async fn init_db() { + { + let mut db_pool_lock: RwLockWriteGuard<'_, Option> = DB.write().await; + *db_pool_lock = Some(connection_db().await); + } + create_batabase().await; + create_table().await; + insert_records().await; +} + +#[inline] +pub async fn connection_db() -> DbPoolConnection { let db_url: &str = match option_env!("POSTGRES_URL") { Some(it) => it, _ => &format!( @@ -104,29 +95,21 @@ pub async fn init_db() { DATABASE_NAME ), }; - println_warning!("db url: ", db_url); let config: Config = db_url.parse::().unwrap(); let db_manager: PostgresConnectionManager = PostgresConnectionManager::new(config, NoTls); let db_pool: DbPoolConnection = Pool::builder() - .max_size(1_000) - .max_lifetime(Some(std::time::Duration::from_secs(u64::MAX))) + .max_size(DB_POOL_SIZE) + .max_lifetime(Some(Duration::from_secs(u64::MAX))) .build(db_manager) .await .unwrap(); - { - let mut db_pool_lock: RwLockWriteGuard<'_, Option> = DB.write().await; - *db_pool_lock = Some(db_pool.clone()); - } - create_batabase().await; - create_table().await; - insert_records().await; + db_pool } #[inline] -pub async fn random_world_row() -> Result> { +pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result> { let random_id: i32 = rand::rng().random_range(1..ROW_LIMIT); - let db_pool: DbPoolConnection = get_db_connection().await; let connection: DbConnection = db_pool .get() .await @@ -146,40 +129,24 @@ pub async fn random_world_row() -> Result> { } #[inline] -pub async fn update_world_rows(times: usize) -> Result, Box> { +pub async fn update_world_rows(limit: usize) -> Result, Box> { let db_pool: DbPoolConnection = get_db_connection().await; let connection: DbConnection = db_pool .get() .await .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; - let mut id_list: Vec = Vec::with_capacity(times); - let mut params: Vec> = Vec::with_capacity(times * 2); - let mut cnt: usize = 0; - let mut map: Vec = vec![false; ROW_LIMIT as usize]; - loop { - if cnt >= times { - break; - } + let mut id_list: Vec = Vec::with_capacity(limit); + let mut params: Vec> = Vec::with_capacity(limit * 2); + let rows: Vec = get_some_row_id(limit, &db_pool).await.unwrap_or_default(); + for row in rows { let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); - if let Ok(row) = random_world_row().await { - let id: i32 = row.id; - if (id as usize) >= ROW_LIMIT as usize { - continue; - } - if map[id as usize] { - continue; - } - map[id as usize] = true; - id_list.push(QueryRow::new(id, new_random_number)); - params.push(Box::new(new_random_number)); - params.push(Box::new(id)); - cnt += 1; - } else { - continue; - } + let id: i32 = row.get(0); + id_list.push(QueryRow::new(id, new_random_number)); + params.push(Box::new(new_random_number)); + params.push(Box::new(id)); } let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME); - for i in 0..times { + for i in 0..limit { query.push_str(&format!( "WHEN ${}::INTEGER THEN ${}::INTEGER ", i * 2 + 2, @@ -187,7 +154,7 @@ pub async fn update_world_rows(times: usize) -> Result, Box 0 { query.push_str(", "); } @@ -214,3 +181,19 @@ pub async fn all_world_row() -> Result, Box> { let rows: Vec = connection.query(&stmt, &[]).await?; return Ok(rows); } + +#[inline] +pub async fn get_some_row_id( + limit: usize, + db_pool: &DbPoolConnection, +) -> Result, Box> { + let connection: DbConnection = db_pool + .get() + .await + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; + let stmt: Statement = connection + .prepare(&format!("SELECT id FROM {} LIMIT {}", TABLE_NAME, limit)) + .await?; + let rows: Vec = connection.query(&stmt, &[]).await?; + return Ok(rows); +} diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 166e7d7c33e..91b5f4814f8 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -34,6 +34,7 @@ pub(crate) use std::{ fmt::{self, Write}, io, sync::Arc, + time::Duration, time::SystemTime, }; pub(crate) use tokio_postgres::{types::ToSql, Config, NoTls, Row, Statement}; @@ -41,9 +42,6 @@ pub(crate) use utils::*; #[tokio::main] async fn main() { - println_warning!("start connect db"); init_db().await; - println_success!("connect db finish"); - println_warning!("start init server"); run_server().await; } diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 2f68864ae4a..1012d509b70 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -21,7 +21,7 @@ pub async fn plaintext(controller_data: ControllerData) { #[inline] pub async fn db(controller_data: ControllerData) { - let query_row: QueryRow = random_world_row().await.unwrap(); + let query_row: QueryRow = random_world_row(&get_db_connection().await).await.unwrap(); let _ = controller_data .set_response_body(serde_json::to_string(&query_row).unwrap_or_default()) .await; @@ -37,8 +37,9 @@ pub async fn queries(controller_data: ControllerData) { .min(ROW_LIMIT as Queries) .max(1); let mut data: Vec = Vec::with_capacity(queries); + let db_pool: DbPoolConnection = get_db_connection().await; for _ in 0..queries { - let _ = random_world_row().await.map(|row| { + let _ = random_world_row(&db_pool).await.map(|row| { data.push(row); }); } diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 144330bad53..20ec4d01a2f 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -16,6 +16,5 @@ pub async fn run_server() { server.route("/updates", updates).await; server.request_middleware(request).await; server.response_middleware(response).await; - println_success!("server initialization completed"); server.listen().await; } diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 3c2db3b2019..14ede0b3dc4 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -1,10 +1,10 @@ use crate::*; -pub type DbPoolConnection = bb8::Pool>; +pub type DbPoolConnection = Pool>; pub type DbConnection<'a> = PooledConnection<'a, PostgresConnectionManager>; pub type Queries = usize; pub type DynToSqlSync = dyn ToSql + Sync; -pub type DynToSqlSyncSend = dyn ToSql + Sync + Send; +pub type DynToSqlSyncSend = dyn ToSql + Sync + Send + Sync; #[allow(bad_style)] #[derive(Serialize, Default)] From f8c80dd68c4b41e809a802d0305dd2289e6997e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 17:11:10 +0800 Subject: [PATCH 018/128] feat: update --- frameworks/Rust/hyperlane/Cargo.lock | 16 ---------------- frameworks/Rust/hyperlane/Cargo.toml | 1 - frameworks/Rust/hyperlane/src/constant.rs | 2 +- frameworks/Rust/hyperlane/src/main.rs | 2 -- frameworks/Rust/hyperlane/src/type.rs | 2 +- frameworks/Rust/hyperlane/src/utils.rs | 7 +++++++ 6 files changed, 9 insertions(+), 21 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index 8acf05f5e0f..db3b2edcd76 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -496,15 +496,6 @@ dependencies = [ "digest", ] -[[package]] -name = "html-escape" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" -dependencies = [ - "utf8-width", -] - [[package]] name = "http-compress" version = "2.3.5" @@ -592,7 +583,6 @@ dependencies = [ "bb8", "bb8-postgres", "chrono", - "html-escape", "hyperlane", "rand", "serde", @@ -1452,12 +1442,6 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" -[[package]] -name = "utf8-width" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" - [[package]] name = "utf8_iter" version = "1.0.4" diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index ac9b4adabae..fee51c42aef 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -25,7 +25,6 @@ rand = "0.9.0" tokio-postgres = { version = "0.7.13", features = ["with-uuid-0_8"] } chrono = "0.4.40" serde = "1.0.219" -html-escape = "0.2.13" [profile.dev] incremental = false diff --git a/frameworks/Rust/hyperlane/src/constant.rs b/frameworks/Rust/hyperlane/src/constant.rs index dd8c41803a5..656e74c723f 100644 --- a/frameworks/Rust/hyperlane/src/constant.rs +++ b/frameworks/Rust/hyperlane/src/constant.rs @@ -8,4 +8,4 @@ pub static DATABASE_NAME: &str = "hello_world"; pub static TABLE_NAME: &str = "World"; pub static ROW_LIMIT: i32 = 500; pub static RANDOM_MAX: i32 = 10_000; -pub static DB_POOL_SIZE: u32 = 10_000; +pub static DB_POOL_SIZE: u32 = 1000; diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 91b5f4814f8..10394b7f9ab 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -13,7 +13,6 @@ pub(crate) use bb8_postgres::PostgresConnectionManager; pub(crate) use chrono::{DateTime, Utc}; pub(crate) use constant::*; pub(crate) use db::*; -pub(crate) use html_escape::encode_text; pub(crate) use hyperlane::{ once_cell::sync::Lazy, serde::*, @@ -29,7 +28,6 @@ pub(crate) use response_middleware::*; pub(crate) use route::*; pub(crate) use server::*; pub(crate) use std::{ - borrow::Cow, error::Error, fmt::{self, Write}, io, diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 14ede0b3dc4..62f035875b5 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -50,7 +50,7 @@ impl fmt::Display for FortunesTemplate { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Fortunes
idmessage
{}{}
")?; for fortunes in &self.fortunes_list { - let decoded_message: Cow<'_, str> = encode_text(&fortunes.message); + let decoded_message = replace_html_entities(&fortunes.message); write!( f, "", diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index ea37364a8bc..0aec0bcb8c0 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -5,3 +5,10 @@ pub fn generate_rfc1123_timestamp() -> String { let now: DateTime = SystemTime::now().into(); now.format("%a, %d %b %Y %H:%M:%S GMT").to_string() } +#[inline] +pub fn replace_html_entities(input: &str) -> String { + input + .replace("<", "<") + .replace(">", ">") + .replace(""", "\"") +} From 88a5af343ddb6e0ec6876433547e0435ecda1ac4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 17:39:32 +0800 Subject: [PATCH 019/128] feat: update --- frameworks/Rust/hyperlane/Cargo.lock | 16 ++++++++++++++++ frameworks/Rust/hyperlane/Cargo.toml | 4 ++++ frameworks/Rust/hyperlane/src/db.rs | 12 +++++++++--- frameworks/Rust/hyperlane/src/main.rs | 2 ++ frameworks/Rust/hyperlane/src/route.rs | 8 ++++---- frameworks/Rust/hyperlane/src/type.rs | 2 +- frameworks/Rust/hyperlane/src/utils.rs | 7 ------- 7 files changed, 36 insertions(+), 15 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index db3b2edcd76..8acf05f5e0f 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -496,6 +496,15 @@ dependencies = [ "digest", ] +[[package]] +name = "html-escape" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" +dependencies = [ + "utf8-width", +] + [[package]] name = "http-compress" version = "2.3.5" @@ -583,6 +592,7 @@ dependencies = [ "bb8", "bb8-postgres", "chrono", + "html-escape", "hyperlane", "rand", "serde", @@ -1442,6 +1452,12 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" +[[package]] +name = "utf8-width" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" + [[package]] name = "utf8_iter" version = "1.0.4" diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index fee51c42aef..a621195be74 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -25,6 +25,7 @@ rand = "0.9.0" tokio-postgres = { version = "0.7.13", features = ["with-uuid-0_8"] } chrono = "0.4.40" serde = "1.0.219" +html-escape = "0.2.13" [profile.dev] incremental = false @@ -43,3 +44,6 @@ panic = "unwind" debug = false codegen-units = 1 strip = "debuginfo" + +[features] +dev = [] \ No newline at end of file diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 22834142cff..339f5322644 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -7,6 +7,7 @@ pub async fn get_db_connection() -> DbPoolConnection { } #[inline] +#[cfg(feature = "dev")] pub async fn create_batabase() { let db_pool: DbPoolConnection = get_db_connection().await; let connection: DbConnection = db_pool.get().await.unwrap(); @@ -27,6 +28,7 @@ pub async fn create_batabase() { } #[inline] +#[cfg(feature = "dev")] pub async fn create_table() { let db_pool: DbPoolConnection = get_db_connection().await; let connection: DbConnection = db_pool.get().await.unwrap(); @@ -43,6 +45,7 @@ pub async fn create_table() { } #[inline] +#[cfg(feature = "dev")] pub async fn insert_records() { let db_pool: DbPoolConnection = get_db_connection().await; let connection: DbConnection = db_pool.get().await.unwrap(); @@ -76,9 +79,12 @@ pub async fn init_db() { let mut db_pool_lock: RwLockWriteGuard<'_, Option> = DB.write().await; *db_pool_lock = Some(connection_db().await); } - create_batabase().await; - create_table().await; - insert_records().await; + #[cfg(feature = "dev")] + { + create_batabase().await; + create_table().await; + insert_records().await; + } } #[inline] diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 10394b7f9ab..91b5f4814f8 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -13,6 +13,7 @@ pub(crate) use bb8_postgres::PostgresConnectionManager; pub(crate) use chrono::{DateTime, Utc}; pub(crate) use constant::*; pub(crate) use db::*; +pub(crate) use html_escape::encode_text; pub(crate) use hyperlane::{ once_cell::sync::Lazy, serde::*, @@ -28,6 +29,7 @@ pub(crate) use response_middleware::*; pub(crate) use route::*; pub(crate) use server::*; pub(crate) use std::{ + borrow::Cow, error::Error, fmt::{self, Write}, io, diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 1012d509b70..7ce7f017955 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -60,15 +60,15 @@ pub async fn fortunes(controller_data: ControllerData) { Fortunes::new(id, message) }) .collect(); + fortunes_list.push(Fortunes::new( + 0, + "Additional fortune added at request time.".to_owned(), + )); fortunes_list.sort_by(|a, b| { let message_a: &String = &a.message; let message_b: &String = &b.message; message_a.cmp(message_b) }); - fortunes_list.push(Fortunes::new( - 0, - "Additional fortune added at request time.".to_owned(), - )); let mut res: String = String::with_capacity(20480); let _ = write!(&mut res, "{}", FortunesTemplate::new(fortunes_list)); controller_data diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 62f035875b5..14ede0b3dc4 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -50,7 +50,7 @@ impl fmt::Display for FortunesTemplate { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Fortunes
idmessage
{}{}
")?; for fortunes in &self.fortunes_list { - let decoded_message = replace_html_entities(&fortunes.message); + let decoded_message: Cow<'_, str> = encode_text(&fortunes.message); write!( f, "", diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index 0aec0bcb8c0..ea37364a8bc 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -5,10 +5,3 @@ pub fn generate_rfc1123_timestamp() -> String { let now: DateTime = SystemTime::now().into(); now.format("%a, %d %b %Y %H:%M:%S GMT").to_string() } -#[inline] -pub fn replace_html_entities(input: &str) -> String { - input - .replace("<", "<") - .replace(">", ">") - .replace(""", "\"") -} From 6a74721143b35eb5e3da9cab6c0e4428d1b39532 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 18:04:10 +0800 Subject: [PATCH 020/128] feat: update --- frameworks/Rust/hyperlane/src/db.rs | 75 ++++++++++++++++----------- frameworks/Rust/hyperlane/src/lazy.rs | 6 +++ frameworks/Rust/hyperlane/src/main.rs | 1 + frameworks/Rust/hyperlane/src/type.rs | 2 +- 4 files changed, 52 insertions(+), 32 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 339f5322644..fe652ea5027 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -85,6 +85,7 @@ pub async fn init_db() { create_table().await; insert_records().await; } + init_update_state().await; } #[inline] @@ -135,43 +136,55 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result Result, Box> { +pub async fn init_update_state() { let db_pool: DbPoolConnection = get_db_connection().await; let connection: DbConnection = db_pool .get() .await - .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; - let mut id_list: Vec = Vec::with_capacity(limit); - let mut params: Vec> = Vec::with_capacity(limit * 2); - let rows: Vec = get_some_row_id(limit, &db_pool).await.unwrap_or_default(); - for row in rows { - let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); - let id: i32 = row.get(0); - id_list.push(QueryRow::new(id, new_random_number)); - params.push(Box::new(new_random_number)); - params.push(Box::new(id)); - } - let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME); - for i in 0..limit { - query.push_str(&format!( - "WHEN ${}::INTEGER THEN ${}::INTEGER ", - i * 2 + 2, - i * 2 + 1 - )); - } - query.push_str("END WHERE id IN ("); - for i in 0..limit { - if i > 0 { - query.push_str(", "); + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e))) + .unwrap(); + let mut update_state: RwLockWriteGuard<'_, HashMap> = + UPDATE_STATE.write().await; + let mut update_query: RwLockWriteGuard<'_, HashMap>> = + UPDATE_QUERY.write().await; + for limit in 1..=ROW_LIMIT { + let limit: usize = limit as usize; + let mut query_res_list: Vec = Vec::with_capacity(limit); + let rows: Vec = get_some_row_id(limit, &db_pool).await.unwrap_or_default(); + let mut query = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME); + let mut id_list: Vec = Vec::with_capacity(limit); + let mut value_list = String::new(); + let mut id_in_clause = String::new(); + for (i, row) in rows.iter().enumerate() { + let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); + let id: i32 = row.get(0); + id_list.push(id); + value_list.push_str(&format!("WHEN {} THEN {} ", id, new_random_number)); + if i > 0 { + id_in_clause.push_str(", "); + } + id_in_clause.push_str(&id.to_string()); + query_res_list.push(QueryRow::new(id, new_random_number)); } - query.push_str(&format!("${}::INTEGER", i * 2 + 2)); + update_query.insert(limit, query_res_list); + query.push_str(&value_list); + query.push_str(&format!("END WHERE id IN ({})", id_in_clause)); + let stmt: Statement = connection.prepare(&query).await.unwrap(); + update_state.insert(limit, stmt); } - query.push(')'); - let stmt: Statement = connection.prepare(&query).await?; - let params_refs: Vec<&DynToSqlSync> = - params.iter().map(|p| p.as_ref() as &DynToSqlSync).collect(); - connection.execute(&stmt, ¶ms_refs).await?; - Ok(id_list) +} + +#[inline] +pub async fn update_world_rows(limit: usize) -> Result, Box> { + let stmt: Statement = UPDATE_STATE.read().await.get(&limit).unwrap().clone(); + let db_pool: DbPoolConnection = get_db_connection().await; + let connection: DbConnection = db_pool + .get() + .await + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; + connection.execute(&stmt, &[]).await?; + let list: Vec = UPDATE_QUERY.read().await.get(&limit).cloned().unwrap(); + Ok(list) } #[inline] diff --git a/frameworks/Rust/hyperlane/src/lazy.rs b/frameworks/Rust/hyperlane/src/lazy.rs index 5b701e371bd..9c11105b4c1 100644 --- a/frameworks/Rust/hyperlane/src/lazy.rs +++ b/frameworks/Rust/hyperlane/src/lazy.rs @@ -2,3 +2,9 @@ use crate::*; pub static DB: Lazy>> = Lazy::new(|| Arc::new(RwLock::new(None))); + +pub static UPDATE_STATE: Lazy>> = + Lazy::new(|| arc_rwlock(HashMap::new())); + +pub static UPDATE_QUERY: Lazy>>> = + Lazy::new(|| arc_rwlock(HashMap::new())); diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 91b5f4814f8..f46bffb5a32 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -30,6 +30,7 @@ pub(crate) use route::*; pub(crate) use server::*; pub(crate) use std::{ borrow::Cow, + collections::HashMap, error::Error, fmt::{self, Write}, io, diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 14ede0b3dc4..229b97a3c61 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -7,7 +7,7 @@ pub type DynToSqlSync = dyn ToSql + Sync; pub type DynToSqlSyncSend = dyn ToSql + Sync + Send + Sync; #[allow(bad_style)] -#[derive(Serialize, Default)] +#[derive(Serialize, Default, Clone)] pub struct QueryRow { pub id: i32, pub randomNumber: i32, From a769be75fe883999d59a23067245b49e92154f49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 18:45:37 +0800 Subject: [PATCH 021/128] feat: update --- frameworks/Rust/hyperlane/src/db.rs | 99 +++++++++++++++----------- frameworks/Rust/hyperlane/src/lazy.rs | 8 +-- frameworks/Rust/hyperlane/src/main.rs | 4 +- frameworks/Rust/hyperlane/src/route.rs | 2 +- frameworks/Rust/hyperlane/src/type.rs | 4 +- 5 files changed, 64 insertions(+), 53 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index fe652ea5027..0189c74694c 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -73,21 +73,6 @@ pub async fn insert_records() { connection.batch_execute(&query).await.unwrap(); } -#[inline] -pub async fn init_db() { - { - let mut db_pool_lock: RwLockWriteGuard<'_, Option> = DB.write().await; - *db_pool_lock = Some(connection_db().await); - } - #[cfg(feature = "dev")] - { - create_batabase().await; - create_table().await; - insert_records().await; - } - init_update_state().await; -} - #[inline] pub async fn connection_db() -> DbPoolConnection { let db_url: &str = match option_env!("POSTGRES_URL") { @@ -115,24 +100,21 @@ pub async fn connection_db() -> DbPoolConnection { } #[inline] -pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result> { - let random_id: i32 = rand::rng().random_range(1..ROW_LIMIT); - let connection: DbConnection = db_pool - .get() - .await - .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; - let stmt: Statement = connection - .prepare(&format!( - "SELECT id, randomNumber FROM {} WHERE id = $1", - TABLE_NAME - )) - .await?; - if let Some(rows) = connection.query_opt(&stmt, &[&random_id]).await? { - let id: i32 = rows.get(0); - let random_number: i32 = rows.get(1); - return Ok(QueryRow::new(id, random_number)); +pub async fn init_query_state() { + let db_pool: DbPoolConnection = get_db_connection().await; + let mut query_state: RwLockWriteGuard<'_, HashMap> = + QUERY_STATE.write().await; + for random_id in 1..=ROW_LIMIT { + let connection: DbConnection = db_pool.get().await.unwrap(); + let stmt: Statement = connection + .prepare(&format!( + "SELECT id, randomNumber FROM {} WHERE id = {}", + TABLE_NAME, random_id + )) + .await + .unwrap(); + query_state.insert(random_id, stmt); } - return Ok(QueryRow::new(1, 1)); } #[inline] @@ -143,16 +125,16 @@ pub async fn init_update_state() { .await .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e))) .unwrap(); - let mut update_state: RwLockWriteGuard<'_, HashMap> = + let mut update_state: RwLockWriteGuard<'_, HashMap> = UPDATE_STATE.write().await; - let mut update_query: RwLockWriteGuard<'_, HashMap>> = + let mut update_query: RwLockWriteGuard<'_, HashMap>> = UPDATE_QUERY.write().await; for limit in 1..=ROW_LIMIT { - let limit: usize = limit as usize; - let mut query_res_list: Vec = Vec::with_capacity(limit); + let limit: Queries = limit as Queries; + let mut query_res_list: Vec = Vec::with_capacity(limit as usize); let rows: Vec = get_some_row_id(limit, &db_pool).await.unwrap_or_default(); let mut query = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME); - let mut id_list: Vec = Vec::with_capacity(limit); + let mut id_list: Vec = Vec::with_capacity(limit as usize); let mut value_list = String::new(); let mut id_in_clause = String::new(); for (i, row) in rows.iter().enumerate() { @@ -175,13 +157,45 @@ pub async fn init_update_state() { } #[inline] -pub async fn update_world_rows(limit: usize) -> Result, Box> { - let stmt: Statement = UPDATE_STATE.read().await.get(&limit).unwrap().clone(); +pub async fn init_db() { + { + let mut db_pool_lock: RwLockWriteGuard<'_, Option> = DB.write().await; + *db_pool_lock = Some(connection_db().await); + } + #[cfg(feature = "dev")] + { + create_batabase().await; + create_table().await; + insert_records().await; + } + init_query_state().await; + init_update_state().await; +} + +#[inline] +pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result> { + let random_id: i32 = rand::rng().random_range(1..ROW_LIMIT); + let connection: DbConnection = db_pool + .get() + .await + .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; + let stmt: Statement = QUERY_STATE.read().await.get(&random_id).cloned().unwrap(); + if let Some(rows) = connection.query_opt(&stmt, &[]).await? { + let id: i32 = rows.get(0); + let random_number: i32 = rows.get(1); + return Ok(QueryRow::new(id, random_number)); + } + return Ok(QueryRow::new(1, 1)); +} + +#[inline] +pub async fn update_world_rows(limit: Queries) -> Result, Box> { let db_pool: DbPoolConnection = get_db_connection().await; let connection: DbConnection = db_pool .get() .await .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; + let stmt: Statement = UPDATE_STATE.read().await.get(&limit).unwrap().clone(); connection.execute(&stmt, &[]).await?; let list: Vec = UPDATE_QUERY.read().await.get(&limit).cloned().unwrap(); Ok(list) @@ -194,16 +208,15 @@ pub async fn all_world_row() -> Result, Box> { .get() .await .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; - let stmt: Statement = connection - .prepare(&format!("SELECT id, randomNumber FROM {}", TABLE_NAME)) - .await?; + let query_state: RwLockReadGuard<'_, HashMap> = QUERY_STATE.read().await; + let stmt: Statement = query_state.get(&(ROW_LIMIT as Queries)).unwrap().clone(); let rows: Vec = connection.query(&stmt, &[]).await?; return Ok(rows); } #[inline] pub async fn get_some_row_id( - limit: usize, + limit: Queries, db_pool: &DbPoolConnection, ) -> Result, Box> { let connection: DbConnection = db_pool diff --git a/frameworks/Rust/hyperlane/src/lazy.rs b/frameworks/Rust/hyperlane/src/lazy.rs index 9c11105b4c1..4898cc1d043 100644 --- a/frameworks/Rust/hyperlane/src/lazy.rs +++ b/frameworks/Rust/hyperlane/src/lazy.rs @@ -2,9 +2,9 @@ use crate::*; pub static DB: Lazy>> = Lazy::new(|| Arc::new(RwLock::new(None))); - -pub static UPDATE_STATE: Lazy>> = +pub static UPDATE_STATE: Lazy>> = Lazy::new(|| arc_rwlock(HashMap::new())); - -pub static UPDATE_QUERY: Lazy>>> = +pub static UPDATE_QUERY: Lazy>>> = + Lazy::new(|| arc_rwlock(HashMap::new())); +pub static QUERY_STATE: Lazy>> = Lazy::new(|| arc_rwlock(HashMap::new())); diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index f46bffb5a32..fca97cb9476 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -18,7 +18,7 @@ pub(crate) use hyperlane::{ once_cell::sync::Lazy, serde::*, serde_json::json, - tokio::sync::{RwLock, RwLockWriteGuard}, + tokio::sync::{RwLock, RwLockReadGuard, RwLockWriteGuard}, *, }; pub(crate) use lazy::*; @@ -38,7 +38,7 @@ pub(crate) use std::{ time::Duration, time::SystemTime, }; -pub(crate) use tokio_postgres::{types::ToSql, Config, NoTls, Row, Statement}; +pub(crate) use tokio_postgres::{Config, NoTls, Row, Statement}; pub(crate) use utils::*; #[tokio::main] diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 7ce7f017955..3efa598d71b 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -36,7 +36,7 @@ pub async fn queries(controller_data: ControllerData) { .unwrap_or_default() .min(ROW_LIMIT as Queries) .max(1); - let mut data: Vec = Vec::with_capacity(queries); + let mut data: Vec = Vec::with_capacity(queries as usize); let db_pool: DbPoolConnection = get_db_connection().await; for _ in 0..queries { let _ = random_world_row(&db_pool).await.map(|row| { diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 229b97a3c61..dd9ae6e1a45 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -2,9 +2,7 @@ use crate::*; pub type DbPoolConnection = Pool>; pub type DbConnection<'a> = PooledConnection<'a, PostgresConnectionManager>; -pub type Queries = usize; -pub type DynToSqlSync = dyn ToSql + Sync; -pub type DynToSqlSyncSend = dyn ToSql + Sync + Send + Sync; +pub type Queries = i32; #[allow(bad_style)] #[derive(Serialize, Default, Clone)] From c332dcc3ed665b4fd71e1dc3e0361f81dc9705fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 19:18:43 +0800 Subject: [PATCH 022/128] feat: update --- frameworks/Rust/hyperlane/src/db.rs | 63 ++++++++++++------------- frameworks/Rust/hyperlane/src/lazy.rs | 7 +-- frameworks/Rust/hyperlane/src/route.rs | 3 +- frameworks/Rust/hyperlane/src/server.rs | 2 +- 4 files changed, 37 insertions(+), 38 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 0189c74694c..c571b94eef7 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -93,6 +93,7 @@ pub async fn connection_db() -> DbPoolConnection { let db_pool: DbPoolConnection = Pool::builder() .max_size(DB_POOL_SIZE) .max_lifetime(Some(Duration::from_secs(u64::MAX))) + .connection_timeout(Duration::from_secs(u64::MAX)) .build(db_manager) .await .unwrap(); @@ -101,34 +102,30 @@ pub async fn connection_db() -> DbPoolConnection { #[inline] pub async fn init_query_state() { - let db_pool: DbPoolConnection = get_db_connection().await; - let mut query_state: RwLockWriteGuard<'_, HashMap> = - QUERY_STATE.write().await; + let mut query_sql: RwLockWriteGuard<'_, HashMap> = QUERY_SQL.write().await; for random_id in 1..=ROW_LIMIT { - let connection: DbConnection = db_pool.get().await.unwrap(); - let stmt: Statement = connection - .prepare(&format!( + query_sql.insert( + random_id, + format!( "SELECT id, randomNumber FROM {} WHERE id = {}", TABLE_NAME, random_id - )) - .await - .unwrap(); - query_state.insert(random_id, stmt); + ), + ); } } +#[inline] +pub async fn init_query_all_state() { + let mut query_all_sql: RwLockWriteGuard<'_, String> = QUERY_ALL_SQL.write().await; + *query_all_sql = format!("SELECT id, randomNumber FROM {}", TABLE_NAME); +} + #[inline] pub async fn init_update_state() { let db_pool: DbPoolConnection = get_db_connection().await; - let connection: DbConnection = db_pool - .get() - .await - .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e))) - .unwrap(); - let mut update_state: RwLockWriteGuard<'_, HashMap> = - UPDATE_STATE.write().await; - let mut update_query: RwLockWriteGuard<'_, HashMap>> = - UPDATE_QUERY.write().await; + let mut update_sql: RwLockWriteGuard<'_, HashMap> = UPDATE_SQL.write().await; + let mut update_query_sql: RwLockWriteGuard<'_, HashMap>> = + UPDATE_QUERY_SQL.write().await; for limit in 1..=ROW_LIMIT { let limit: Queries = limit as Queries; let mut query_res_list: Vec = Vec::with_capacity(limit as usize); @@ -148,11 +145,10 @@ pub async fn init_update_state() { id_in_clause.push_str(&id.to_string()); query_res_list.push(QueryRow::new(id, new_random_number)); } - update_query.insert(limit, query_res_list); + update_query_sql.insert(limit, query_res_list); query.push_str(&value_list); query.push_str(&format!("END WHERE id IN ({})", id_in_clause)); - let stmt: Statement = connection.prepare(&query).await.unwrap(); - update_state.insert(limit, stmt); + update_sql.insert(limit, query); } } @@ -169,18 +165,19 @@ pub async fn init_db() { insert_records().await; } init_query_state().await; + init_query_all_state().await; init_update_state().await; } #[inline] pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result> { - let random_id: i32 = rand::rng().random_range(1..ROW_LIMIT); + let random_id: i32 = rand::rng().random_range(1..=ROW_LIMIT); let connection: DbConnection = db_pool .get() .await .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; - let stmt: Statement = QUERY_STATE.read().await.get(&random_id).cloned().unwrap(); - if let Some(rows) = connection.query_opt(&stmt, &[]).await? { + let sql: String = QUERY_SQL.read().await.get(&random_id).cloned().unwrap(); + if let Some(rows) = connection.query_opt(&sql, &[]).await? { let id: i32 = rows.get(0); let random_number: i32 = rows.get(1); return Ok(QueryRow::new(id, random_number)); @@ -195,9 +192,9 @@ pub async fn update_world_rows(limit: Queries) -> Result, Box = UPDATE_QUERY.read().await.get(&limit).cloned().unwrap(); + let sql: String = UPDATE_SQL.read().await.get(&limit).unwrap().clone(); + connection.execute(&sql, &[]).await?; + let list: Vec = UPDATE_QUERY_SQL.read().await.get(&limit).cloned().unwrap(); Ok(list) } @@ -208,9 +205,9 @@ pub async fn all_world_row() -> Result, Box> { .get() .await .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; - let query_state: RwLockReadGuard<'_, HashMap> = QUERY_STATE.read().await; - let stmt: Statement = query_state.get(&(ROW_LIMIT as Queries)).unwrap().clone(); - let rows: Vec = connection.query(&stmt, &[]).await?; + let query_all_sql: RwLockReadGuard<'_, String> = QUERY_ALL_SQL.read().await; + let sql: String = query_all_sql.clone(); + let rows: Vec = connection.query(&sql, &[]).await?; return Ok(rows); } @@ -223,9 +220,9 @@ pub async fn get_some_row_id( .get() .await .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; - let stmt: Statement = connection + let sql: Statement = connection .prepare(&format!("SELECT id FROM {} LIMIT {}", TABLE_NAME, limit)) .await?; - let rows: Vec = connection.query(&stmt, &[]).await?; + let rows: Vec = connection.query(&sql, &[]).await?; return Ok(rows); } diff --git a/frameworks/Rust/hyperlane/src/lazy.rs b/frameworks/Rust/hyperlane/src/lazy.rs index 4898cc1d043..ffefbf9bcb9 100644 --- a/frameworks/Rust/hyperlane/src/lazy.rs +++ b/frameworks/Rust/hyperlane/src/lazy.rs @@ -2,9 +2,10 @@ use crate::*; pub static DB: Lazy>> = Lazy::new(|| Arc::new(RwLock::new(None))); -pub static UPDATE_STATE: Lazy>> = +pub static UPDATE_SQL: Lazy>> = Lazy::new(|| arc_rwlock(HashMap::new())); -pub static UPDATE_QUERY: Lazy>>> = +pub static UPDATE_QUERY_SQL: Lazy>>> = Lazy::new(|| arc_rwlock(HashMap::new())); -pub static QUERY_STATE: Lazy>> = +pub static QUERY_SQL: Lazy>> = Lazy::new(|| arc_rwlock(HashMap::new())); +pub static QUERY_ALL_SQL: Lazy> = Lazy::new(|| arc_rwlock(String::new())); diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 3efa598d71b..2618fec1083 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -21,7 +21,8 @@ pub async fn plaintext(controller_data: ControllerData) { #[inline] pub async fn db(controller_data: ControllerData) { - let query_row: QueryRow = random_world_row(&get_db_connection().await).await.unwrap(); + let db_connection: DbPoolConnection = get_db_connection().await; + let query_row: QueryRow = random_world_row(&db_connection).await.unwrap(); let _ = controller_data .set_response_body(serde_json::to_string(&query_row).unwrap_or_default()) .await; diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 20ec4d01a2f..d6045794c64 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -7,7 +7,7 @@ pub async fn run_server() { server.port(8080).await; server.log_dir("./logs").await; server.log_interval_millis(1_000_000_000).await; - server.disable_print().await; + // server.disable_print().await; server.route("/json", json).await; server.route("/plaintext", plaintext).await; server.route("/db", db).await; From d4fe13b48927a8c698afc336bca45773274b231f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 19:26:53 +0800 Subject: [PATCH 023/128] feat: update --- frameworks/Rust/hyperlane/src/db.rs | 4 ++-- frameworks/Rust/hyperlane/src/server.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index c571b94eef7..43db472c5ee 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -145,9 +145,9 @@ pub async fn init_update_state() { id_in_clause.push_str(&id.to_string()); query_res_list.push(QueryRow::new(id, new_random_number)); } - update_query_sql.insert(limit, query_res_list); query.push_str(&value_list); query.push_str(&format!("END WHERE id IN ({})", id_in_clause)); + update_query_sql.insert(limit, query_res_list); update_sql.insert(limit, query); } } @@ -193,7 +193,7 @@ pub async fn update_world_rows(limit: Queries) -> Result, Box = UPDATE_QUERY_SQL.read().await.get(&limit).cloned().unwrap(); Ok(list) } diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index d6045794c64..20ec4d01a2f 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -7,7 +7,7 @@ pub async fn run_server() { server.port(8080).await; server.log_dir("./logs").await; server.log_interval_millis(1_000_000_000).await; - // server.disable_print().await; + server.disable_print().await; server.route("/json", json).await; server.route("/plaintext", plaintext).await; server.route("/db", db).await; From 6e6bdf62ef6d07c8ad0ea85448c3620ea8d56f0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 19:47:20 +0800 Subject: [PATCH 024/128] feat: update --- frameworks/Rust/hyperlane/src/db.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 43db472c5ee..f1ae4875028 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -93,7 +93,6 @@ pub async fn connection_db() -> DbPoolConnection { let db_pool: DbPoolConnection = Pool::builder() .max_size(DB_POOL_SIZE) .max_lifetime(Some(Duration::from_secs(u64::MAX))) - .connection_timeout(Duration::from_secs(u64::MAX)) .build(db_manager) .await .unwrap(); @@ -130,10 +129,10 @@ pub async fn init_update_state() { let limit: Queries = limit as Queries; let mut query_res_list: Vec = Vec::with_capacity(limit as usize); let rows: Vec = get_some_row_id(limit, &db_pool).await.unwrap_or_default(); - let mut query = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME); + let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME); let mut id_list: Vec = Vec::with_capacity(limit as usize); - let mut value_list = String::new(); - let mut id_in_clause = String::new(); + let mut value_list: String = String::new(); + let mut id_in_clause: String = String::new(); for (i, row) in rows.iter().enumerate() { let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); let id: i32 = row.get(0); From adbf84232af74bd1392ee0e37edc88bba0978fb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 20:21:57 +0800 Subject: [PATCH 025/128] feat: update --- frameworks/Rust/hyperlane/Cargo.lock | 908 ++++++++++++++++++---- frameworks/Rust/hyperlane/Cargo.toml | 6 +- frameworks/Rust/hyperlane/src/constant.rs | 3 +- frameworks/Rust/hyperlane/src/db.rs | 103 +-- frameworks/Rust/hyperlane/src/main.rs | 6 +- frameworks/Rust/hyperlane/src/route.rs | 2 +- frameworks/Rust/hyperlane/src/server.rs | 2 +- frameworks/Rust/hyperlane/src/type.rs | 3 +- 8 files changed, 810 insertions(+), 223 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index 8acf05f5e0f..c641a62dc3f 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -75,14 +75,12 @@ dependencies = [ ] [[package]] -name = "async-trait" -version = "0.1.88" +name = "atoi" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" dependencies = [ - "proc-macro2", - "quote", - "syn", + "num-traits", ] [[package]] @@ -103,7 +101,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -113,32 +111,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] -name = "bb8" -version = "0.9.0" +name = "base64ct" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d8b8e1a22743d9241575c6ba822cf9c8fef34771c86ab7e477a4fbfd254e5" -dependencies = [ - "futures-util", - "parking_lot", - "tokio", -] - -[[package]] -name = "bb8-postgres" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e570e6557cd0f88d28d32afa76644873271a70dc22656df565b2021c4036aa9c" -dependencies = [ - "bb8", - "tokio", - "tokio-postgres", -] +checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" [[package]] name = "bitflags" version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +dependencies = [ + "serde", +] [[package]] name = "block-buffer" @@ -232,6 +217,21 @@ dependencies = [ "hyperlane-time", ] +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -247,6 +247,21 @@ dependencies = [ "libc", ] +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + [[package]] name = "crc32fast" version = "1.4.2" @@ -256,6 +271,21 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + [[package]] name = "crypto-common" version = "0.1.6" @@ -266,6 +296,17 @@ dependencies = [ "typenum", ] +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + [[package]] name = "digest" version = "0.10.7" @@ -273,6 +314,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", + "const-oid", "crypto-common", "subtle", ] @@ -289,10 +331,63 @@ dependencies = [ ] [[package]] -name = "fallible-iterator" -version = "0.2.0" +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +dependencies = [ + "serde", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if", + "home", + "windows-sys 0.48.0", +] + +[[package]] +name = "event-listener" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "file-operation" @@ -322,6 +417,23 @@ dependencies = [ "num-traits", ] +[[package]] +name = "flume" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" +dependencies = [ + "futures-core", + "futures-sink", + "spin", +] + +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -373,6 +485,17 @@ dependencies = [ "futures-util", ] +[[package]] +name = "futures-intrusive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" +dependencies = [ + "futures-core", + "lock_api", + "parking_lot", +] + [[package]] name = "futures-io" version = "0.3.31" @@ -452,7 +575,7 @@ dependencies = [ "cfg-if", "libc", "wasi 0.13.3+wasi-0.2.2", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -467,7 +590,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f" dependencies = [ - "hashbrown", + "hashbrown 0.14.5", "serde", ] @@ -481,12 +604,47 @@ dependencies = [ "allocator-api2", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashlink" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" +dependencies = [ + "hashbrown 0.15.2", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + [[package]] name = "hmac" version = "0.12.1" @@ -496,6 +654,15 @@ dependencies = [ "digest", ] +[[package]] +name = "home" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", +] + [[package]] name = "html-escape" version = "0.2.13" @@ -589,14 +756,12 @@ checksum = "11dcc4ca08d1ebfc1f70e7a40033483219f77909a7ef6c4af302a14aa97da3d2" name = "hyperlane_techempower" version = "0.0.1" dependencies = [ - "bb8", - "bb8-postgres", "chrono", "html-escape", "hyperlane", - "rand", + "rand 0.9.0", "serde", - "tokio-postgres", + "sqlx", ] [[package]] @@ -761,6 +926,16 @@ dependencies = [ "icu_properties", ] +[[package]] +name = "indexmap" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +dependencies = [ + "equivalent", + "hashbrown 0.15.2", +] + [[package]] name = "itoa" version = "1.0.15" @@ -777,12 +952,43 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] + [[package]] name = "libc" version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + +[[package]] +name = "libsqlite3-sys" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" +dependencies = [ + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" + [[package]] name = "litemap" version = "0.7.5" @@ -849,7 +1055,44 @@ checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", ] [[package]] @@ -859,6 +1102,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -876,6 +1120,12 @@ version = "1.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + [[package]] name = "parking_lot" version = "0.12.3" @@ -896,32 +1146,23 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "phf" -version = "0.11.3" +name = "pem-rfc7468" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" dependencies = [ - "phf_shared", + "base64ct", ] [[package]] -name = "phf_shared" -version = "0.11.3" +name = "percent-encoding" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" -dependencies = [ - "siphasher", -] +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project-lite" @@ -936,35 +1177,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] -name = "postgres-protocol" -version = "0.6.8" +name = "pkcs1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76ff0abab4a9b844b93ef7b81f1efc0a366062aaef2cd702c76256b5dc075c54" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" dependencies = [ - "base64", - "byteorder", - "bytes", - "fallible-iterator", - "hmac", - "md-5", - "memchr", - "rand", - "sha2", - "stringprep", + "der", + "pkcs8", + "spki", ] [[package]] -name = "postgres-types" -version = "0.2.9" +name = "pkcs8" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613283563cd90e1dfc3518d548caee47e0e725455ed619881f5cf21f36de4b48" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "bytes", - "fallible-iterator", - "postgres-protocol", - "uuid", + "der", + "spki", ] +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + [[package]] name = "ppv-lite86" version = "0.2.21" @@ -992,17 +1230,38 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + [[package]] name = "rand" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ - "rand_chacha", - "rand_core", + "rand_chacha 0.9.0", + "rand_core 0.9.3", "zerocopy 0.8.23", ] +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + [[package]] name = "rand_chacha" version = "0.9.0" @@ -1010,7 +1269,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", ] [[package]] @@ -1071,12 +1339,45 @@ dependencies = [ "syn", ] +[[package]] +name = "rsa" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "signature", + "spki", + "subtle", + "zeroize", +] + [[package]] name = "rustc-demangle" version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +[[package]] +name = "rustix" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + [[package]] name = "rustversion" version = "1.0.20" @@ -1112,7 +1413,7 @@ checksum = "fb3aa78ecda1ebc9ec9847d5d3aba7d618823446a049ba2491940506da6e2782" dependencies = [ "log", "serde", - "thiserror", + "thiserror 1.0.69", "xml-rs", ] @@ -1160,6 +1461,17 @@ dependencies = [ "tokio", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + [[package]] name = "sha2" version = "0.10.8" @@ -1186,6 +1498,16 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + [[package]] name = "simd-json" version = "0.14.3" @@ -1207,12 +1529,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" -[[package]] -name = "siphasher" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" - [[package]] name = "slab" version = "0.4.9" @@ -1227,6 +1543,9 @@ name = "smallvec" version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +dependencies = [ + "serde", +] [[package]] name = "socket2" @@ -1235,7 +1554,213 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "sqlx" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f" +dependencies = [ + "sqlx-core", + "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", +] + +[[package]] +name = "sqlx-core" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0" +dependencies = [ + "bytes", + "crc", + "crossbeam-queue", + "either", + "event-listener", + "futures-core", + "futures-intrusive", + "futures-io", + "futures-util", + "hashbrown 0.15.2", + "hashlink", + "indexmap", + "log", + "memchr", + "once_cell", + "percent-encoding", + "serde", + "serde_json", + "sha2", + "smallvec", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "tracing", + "url", +] + +[[package]] +name = "sqlx-macros" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310" +dependencies = [ + "proc-macro2", + "quote", + "sqlx-core", + "sqlx-macros-core", + "syn", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad" +dependencies = [ + "dotenvy", + "either", + "heck", + "hex", + "once_cell", + "proc-macro2", + "quote", + "serde", + "serde_json", + "sha2", + "sqlx-core", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", + "syn", + "tempfile", + "tokio", + "url", +] + +[[package]] +name = "sqlx-mysql" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233" +dependencies = [ + "atoi", + "base64", + "bitflags", + "byteorder", + "bytes", + "crc", + "digest", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "percent-encoding", + "rand 0.8.5", + "rsa", + "serde", + "sha1", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror 2.0.12", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613" +dependencies = [ + "atoi", + "base64", + "bitflags", + "byteorder", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-util", + "hex", + "hkdf", + "hmac", + "home", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "rand 0.8.5", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror 2.0.12", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540" +dependencies = [ + "atoi", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "serde_urlencoded", + "sqlx-core", + "tracing", + "url", ] [[package]] @@ -1289,13 +1814,35 @@ dependencies = [ "syn", ] +[[package]] +name = "tempfile" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488960f40a3fd53d72c2a29a58722561dee8afdd175bd88e3db4677d7b2ba600" +dependencies = [ + "fastrand", + "getrandom 0.3.1", + "once_cell", + "rustix", + "windows-sys 0.52.0", +] + [[package]] name = "thiserror" version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", ] [[package]] @@ -1309,6 +1856,17 @@ dependencies = [ "syn", ] +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "tinystr" version = "0.7.6" @@ -1349,7 +1907,7 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1364,42 +1922,46 @@ dependencies = [ ] [[package]] -name = "tokio-postgres" -version = "0.7.13" +name = "tokio-stream" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c95d533c83082bb6490e0189acaa0bbeef9084e60471b696ca6988cd0541fb0" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ - "async-trait", - "byteorder", - "bytes", - "fallible-iterator", - "futures-channel", - "futures-util", - "log", - "parking_lot", - "percent-encoding", - "phf", + "futures-core", "pin-project-lite", - "postgres-protocol", - "postgres-types", - "rand", - "socket2", "tokio", - "tokio-util", - "whoami", ] [[package]] -name = "tokio-util" -version = "0.7.14" +name = "tracing" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ - "bytes", - "futures-core", - "futures-sink", + "log", "pin-project-lite", - "tokio", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", ] [[package]] @@ -1464,12 +2026,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" - [[package]] name = "value-trait" version = "0.10.1" @@ -1482,6 +2038,12 @@ dependencies = [ "ryu", ] +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "version_check" version = "0.9.5" @@ -1567,16 +2129,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "web-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "whoami" version = "1.5.2" @@ -1585,7 +2137,6 @@ checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" dependencies = [ "redox_syscall", "wasite", - "web-sys", ] [[package]] @@ -1594,7 +2145,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -1603,13 +2154,46 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -1618,28 +2202,46 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -1652,24 +2254,48 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -1788,6 +2414,12 @@ dependencies = [ "synstructure", ] +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + [[package]] name = "zerovec" version = "0.10.4" diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index a621195be74..4046a66c754 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -19,13 +19,11 @@ exclude = [ [dependencies] hyperlane = "4.33.0" -bb8 = "0.9.0" -bb8-postgres = "0.9.0" rand = "0.9.0" -tokio-postgres = { version = "0.7.13", features = ["with-uuid-0_8"] } chrono = "0.4.40" serde = "1.0.219" html-escape = "0.2.13" +sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } [profile.dev] incremental = false @@ -46,4 +44,4 @@ codegen-units = 1 strip = "debuginfo" [features] -dev = [] \ No newline at end of file +dev = [] diff --git a/frameworks/Rust/hyperlane/src/constant.rs b/frameworks/Rust/hyperlane/src/constant.rs index 656e74c723f..a6cd3fe94a2 100644 --- a/frameworks/Rust/hyperlane/src/constant.rs +++ b/frameworks/Rust/hyperlane/src/constant.rs @@ -8,4 +8,5 @@ pub static DATABASE_NAME: &str = "hello_world"; pub static TABLE_NAME: &str = "World"; pub static ROW_LIMIT: i32 = 500; pub static RANDOM_MAX: i32 = 10_000; -pub static DB_POOL_SIZE: u32 = 1000; +pub static KEY_ID: &str = "id"; +pub static KEY_RANDOM_NUMBER: &str = "randomNumber"; diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index f1ae4875028..89cab1e6b68 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -10,47 +10,31 @@ pub async fn get_db_connection() -> DbPoolConnection { #[cfg(feature = "dev")] pub async fn create_batabase() { let db_pool: DbPoolConnection = get_db_connection().await; - let connection: DbConnection = db_pool.get().await.unwrap(); - let db_exists: bool = connection - .query_one( - "SELECT EXISTS(SELECT 1 FROM pg_database WHERE datname = $1);", - &[&DATABASE_NAME], - ) - .await - .unwrap() - .get(0); - if !db_exists { - connection - .batch_execute(&format!("CREATE DATABASE {};", DATABASE_NAME)) - .await - .unwrap(); - } + let _ = sqlx::query(&format!("CREATE DATABASE {};", DATABASE_NAME)) + .execute(&db_pool) + .await; } #[inline] #[cfg(feature = "dev")] pub async fn create_table() { let db_pool: DbPoolConnection = get_db_connection().await; - let connection: DbConnection = db_pool.get().await.unwrap(); - connection - .batch_execute(&format!( - "CREATE TABLE IF NOT EXISTS {} ( - id SERIAL PRIMARY KEY, - randomNumber INTEGER NOT NULL - );", - TABLE_NAME - )) - .await - .unwrap(); + let _ = sqlx::query(&format!( + "CREATE TABLE IF NOT EXISTS {} ( + id SERIAL PRIMARY KEY, randomNumber INTEGER NOT NULL + );", + TABLE_NAME + )) + .execute(&db_pool) + .await; } #[inline] #[cfg(feature = "dev")] pub async fn insert_records() { let db_pool: DbPoolConnection = get_db_connection().await; - let connection: DbConnection = db_pool.get().await.unwrap(); - let row: Row = connection - .query_one(&format!("SELECT COUNT(*) FROM {}", TABLE_NAME), &[]) + let row: PgRow = sqlx::query(&format!("SELECT COUNT(*) FROM {}", TABLE_NAME)) + .fetch_one(&db_pool) .await .unwrap(); let count: i64 = row.get(0); @@ -70,7 +54,7 @@ pub async fn insert_records() { TABLE_NAME, values.join(",") ); - connection.batch_execute(&query).await.unwrap(); + let _ = sqlx::query(&query).execute(&db_pool).await; } #[inline] @@ -87,16 +71,8 @@ pub async fn connection_db() -> DbPoolConnection { DATABASE_NAME ), }; - let config: Config = db_url.parse::().unwrap(); - let db_manager: PostgresConnectionManager = - PostgresConnectionManager::new(config, NoTls); - let db_pool: DbPoolConnection = Pool::builder() - .max_size(DB_POOL_SIZE) - .max_lifetime(Some(Duration::from_secs(u64::MAX))) - .build(db_manager) - .await - .unwrap(); - db_pool + let pool: DbPoolConnection = PgPool::connect(db_url).await.unwrap(); + pool } #[inline] @@ -128,14 +104,14 @@ pub async fn init_update_state() { for limit in 1..=ROW_LIMIT { let limit: Queries = limit as Queries; let mut query_res_list: Vec = Vec::with_capacity(limit as usize); - let rows: Vec = get_some_row_id(limit, &db_pool).await.unwrap_or_default(); + let rows: Vec = get_some_row_id(limit, &db_pool).await.unwrap_or_default(); let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME); let mut id_list: Vec = Vec::with_capacity(limit as usize); let mut value_list: String = String::new(); let mut id_in_clause: String = String::new(); for (i, row) in rows.iter().enumerate() { let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); - let id: i32 = row.get(0); + let id: i32 = row.get(KEY_ID); id_list.push(id); value_list.push_str(&format!("WHEN {} THEN {} ", id, new_random_number)); if i > 0 { @@ -171,14 +147,10 @@ pub async fn init_db() { #[inline] pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result> { let random_id: i32 = rand::rng().random_range(1..=ROW_LIMIT); - let connection: DbConnection = db_pool - .get() - .await - .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; let sql: String = QUERY_SQL.read().await.get(&random_id).cloned().unwrap(); - if let Some(rows) = connection.query_opt(&sql, &[]).await? { - let id: i32 = rows.get(0); - let random_number: i32 = rows.get(1); + if let Ok(rows) = sqlx::query(&sql).fetch_one(db_pool).await { + let id: i32 = rows.get(KEY_ID); + let random_number: i32 = rows.get(KEY_RANDOM_NUMBER); return Ok(QueryRow::new(id, random_number)); } return Ok(QueryRow::new(1, 1)); @@ -187,41 +159,30 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result Result, Box> { let db_pool: DbPoolConnection = get_db_connection().await; - let connection: DbConnection = db_pool - .get() - .await - .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; let sql: String = UPDATE_SQL.read().await.get(&limit).unwrap().clone(); - let _ = connection.execute(&sql, &[]).await; + let _ = sqlx::query(&sql).execute(&db_pool).await; let list: Vec = UPDATE_QUERY_SQL.read().await.get(&limit).cloned().unwrap(); Ok(list) } #[inline] -pub async fn all_world_row() -> Result, Box> { +pub async fn all_world_row() -> Vec { let db_pool: DbPoolConnection = get_db_connection().await; - let connection: DbConnection = db_pool - .get() - .await - .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; let query_all_sql: RwLockReadGuard<'_, String> = QUERY_ALL_SQL.read().await; let sql: String = query_all_sql.clone(); - let rows: Vec = connection.query(&sql, &[]).await?; - return Ok(rows); + let res: Vec = sqlx::query(&sql) + .fetch_all(&db_pool) + .await + .unwrap_or_default(); + return res; } #[inline] pub async fn get_some_row_id( limit: Queries, db_pool: &DbPoolConnection, -) -> Result, Box> { - let connection: DbConnection = db_pool - .get() - .await - .map_err(|e| io::Error::new(io::ErrorKind::Other, format!("timeout: {}", e)))?; - let sql: Statement = connection - .prepare(&format!("SELECT id FROM {} LIMIT {}", TABLE_NAME, limit)) - .await?; - let rows: Vec = connection.query(&sql, &[]).await?; - return Ok(rows); +) -> Result, SqlxError> { + let sql: String = format!("SELECT id FROM {} LIMIT {}", TABLE_NAME, limit); + let res: Result, SqlxError> = sqlx::query(&sql).fetch_all(db_pool).await; + return res; } diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index fca97cb9476..d1ab51ac88a 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -8,8 +8,6 @@ pub(crate) mod server; pub(crate) mod r#type; pub(crate) mod utils; -pub(crate) use bb8::{Pool, PooledConnection}; -pub(crate) use bb8_postgres::PostgresConnectionManager; pub(crate) use chrono::{DateTime, Utc}; pub(crate) use constant::*; pub(crate) use db::*; @@ -28,17 +26,15 @@ pub(crate) use request_middleware::*; pub(crate) use response_middleware::*; pub(crate) use route::*; pub(crate) use server::*; +pub(crate) use sqlx::{postgres::PgRow, Error as SqlxError, PgPool, Pool, Postgres, Row}; pub(crate) use std::{ borrow::Cow, collections::HashMap, error::Error, fmt::{self, Write}, - io, sync::Arc, - time::Duration, time::SystemTime, }; -pub(crate) use tokio_postgres::{Config, NoTls, Row, Statement}; pub(crate) use utils::*; #[tokio::main] diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 2618fec1083..07d1f87fd21 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -51,7 +51,7 @@ pub async fn queries(controller_data: ControllerData) { #[inline] pub async fn fortunes(controller_data: ControllerData) { - let all_rows: Vec = all_world_row().await.unwrap_or_default(); + let all_rows: Vec = all_world_row().await; let mut fortunes_list: Vec = all_rows .iter() .map(|row| { diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 20ec4d01a2f..d6045794c64 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -7,7 +7,7 @@ pub async fn run_server() { server.port(8080).await; server.log_dir("./logs").await; server.log_interval_millis(1_000_000_000).await; - server.disable_print().await; + // server.disable_print().await; server.route("/json", json).await; server.route("/plaintext", plaintext).await; server.route("/db", db).await; diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index dd9ae6e1a45..df2d4e3e457 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -1,7 +1,6 @@ use crate::*; -pub type DbPoolConnection = Pool>; -pub type DbConnection<'a> = PooledConnection<'a, PostgresConnectionManager>; +pub type DbPoolConnection = Pool; pub type Queries = i32; #[allow(bad_style)] From 299faa3dc6c16ac1324c120c2d5073cea12a26ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 20:36:05 +0800 Subject: [PATCH 026/128] feat: update --- frameworks/Rust/hyperlane/src/db.rs | 11 +++++++++-- frameworks/Rust/hyperlane/src/main.rs | 10 ++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 89cab1e6b68..2bc9b52ec51 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -71,7 +71,11 @@ pub async fn connection_db() -> DbPoolConnection { DATABASE_NAME ), }; - let pool: DbPoolConnection = PgPool::connect(db_url).await.unwrap(); + let pool: DbPoolConnection = PgPoolOptions::new() + .max_connections(1_000) + .connect(db_url) + .await + .unwrap(); pool } @@ -160,7 +164,10 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result Result, Box> { let db_pool: DbPoolConnection = get_db_connection().await; let sql: String = UPDATE_SQL.read().await.get(&limit).unwrap().clone(); - let _ = sqlx::query(&sql).execute(&db_pool).await; + let _ = spawn_blocking(move || async move { + let _ = sqlx::query(&sql).execute(&db_pool).await; + }) + .await?; let list: Vec = UPDATE_QUERY_SQL.read().await.get(&limit).cloned().unwrap(); Ok(list) } diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index d1ab51ac88a..e03b41b1ca0 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -16,7 +16,10 @@ pub(crate) use hyperlane::{ once_cell::sync::Lazy, serde::*, serde_json::json, - tokio::sync::{RwLock, RwLockReadGuard, RwLockWriteGuard}, + tokio::{ + sync::{RwLock, RwLockReadGuard, RwLockWriteGuard}, + task::spawn_blocking, + }, *, }; pub(crate) use lazy::*; @@ -26,7 +29,10 @@ pub(crate) use request_middleware::*; pub(crate) use response_middleware::*; pub(crate) use route::*; pub(crate) use server::*; -pub(crate) use sqlx::{postgres::PgRow, Error as SqlxError, PgPool, Pool, Postgres, Row}; +pub(crate) use sqlx::{ + postgres::{PgPoolOptions, PgRow}, + Error as SqlxError, Pool, Postgres, Row, +}; pub(crate) use std::{ borrow::Cow, collections::HashMap, From c1adf76ee124ba8499ace8b8b10c598c5a0337ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 20:58:19 +0800 Subject: [PATCH 027/128] feat: update --- frameworks/Rust/hyperlane/src/constant.rs | 2 +- frameworks/Rust/hyperlane/src/db.rs | 5 ++--- frameworks/Rust/hyperlane/src/main.rs | 2 +- frameworks/Rust/hyperlane/src/server.rs | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/constant.rs b/frameworks/Rust/hyperlane/src/constant.rs index a6cd3fe94a2..161b12d5de6 100644 --- a/frameworks/Rust/hyperlane/src/constant.rs +++ b/frameworks/Rust/hyperlane/src/constant.rs @@ -9,4 +9,4 @@ pub static TABLE_NAME: &str = "World"; pub static ROW_LIMIT: i32 = 500; pub static RANDOM_MAX: i32 = 10_000; pub static KEY_ID: &str = "id"; -pub static KEY_RANDOM_NUMBER: &str = "randomNumber"; +pub static KEY_RANDOM_NUMBER: &str = "randomnumber"; diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 2bc9b52ec51..4c07b57a986 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -164,10 +164,9 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result Result, Box> { let db_pool: DbPoolConnection = get_db_connection().await; let sql: String = UPDATE_SQL.read().await.get(&limit).unwrap().clone(); - let _ = spawn_blocking(move || async move { + spawn(async move { let _ = sqlx::query(&sql).execute(&db_pool).await; - }) - .await?; + }); let list: Vec = UPDATE_QUERY_SQL.read().await.get(&limit).cloned().unwrap(); Ok(list) } diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index e03b41b1ca0..ebc05dd03b1 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -18,7 +18,7 @@ pub(crate) use hyperlane::{ serde_json::json, tokio::{ sync::{RwLock, RwLockReadGuard, RwLockWriteGuard}, - task::spawn_blocking, + task::spawn, }, *, }; diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index d6045794c64..20ec4d01a2f 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -7,7 +7,7 @@ pub async fn run_server() { server.port(8080).await; server.log_dir("./logs").await; server.log_interval_millis(1_000_000_000).await; - // server.disable_print().await; + server.disable_print().await; server.route("/json", json).await; server.route("/plaintext", plaintext).await; server.route("/db", db).await; From 96c65fe65c7ad817add90311d4c7f51df9ef4666 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 21:33:14 +0800 Subject: [PATCH 028/128] feat: update --- frameworks/Rust/hyperlane/Cargo.lock | 189 ++++++++++++++++++++++--- frameworks/Rust/hyperlane/Cargo.toml | 2 +- frameworks/Rust/hyperlane/src/db.rs | 51 +++---- frameworks/Rust/hyperlane/src/lazy.rs | 4 - frameworks/Rust/hyperlane/src/main.rs | 11 +- frameworks/Rust/hyperlane/src/route.rs | 12 +- frameworks/Rust/hyperlane/src/type.rs | 25 ---- 7 files changed, 203 insertions(+), 91 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index c641a62dc3f..836b48d2c5a 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -296,6 +296,41 @@ dependencies = [ "typenum", ] +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core", + "quote", + "syn", +] + [[package]] name = "der" version = "0.7.9" @@ -307,6 +342,37 @@ dependencies = [ "zeroize", ] +[[package]] +name = "derive_builder" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" +dependencies = [ + "derive_builder_core", + "syn", +] + [[package]] name = "digest" version = "0.10.7" @@ -358,7 +424,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -428,6 +494,12 @@ dependencies = [ "spin", ] +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + [[package]] name = "foldhash" version = "0.1.4" @@ -594,6 +666,22 @@ dependencies = [ "serde", ] +[[package]] +name = "handlebars" +version = "6.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d752747ddabc4c1a70dd28e72f2e3c218a816773e0d7faf67433f1acfa6cba7c" +dependencies = [ + "derive_builder", + "log", + "num-order", + "pest", + "pest_derive", + "serde", + "serde_json", + "thiserror 2.0.12", +] + [[package]] name = "hashbrown" version = "0.14.5" @@ -663,15 +751,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "html-escape" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" -dependencies = [ - "utf8-width", -] - [[package]] name = "http-compress" version = "2.3.5" @@ -757,7 +836,7 @@ name = "hyperlane_techempower" version = "0.0.1" dependencies = [ "chrono", - "html-escape", + "handlebars", "hyperlane", "rand 0.9.0", "serde", @@ -905,6 +984,12 @@ dependencies = [ "syn", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "idna" version = "1.0.3" @@ -1095,6 +1180,21 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-modular" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" + +[[package]] +name = "num-order" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" +dependencies = [ + "num-modular", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -1164,6 +1264,51 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "pest" +version = "2.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" +dependencies = [ + "memchr", + "thiserror 2.0.12", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pest_meta" +version = "2.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" +dependencies = [ + "once_cell", + "pest", + "sha2", +] + [[package]] name = "pin-project-lite" version = "0.2.16" @@ -1375,7 +1520,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1786,6 +1931,12 @@ dependencies = [ "unicode-properties", ] +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "subtle" version = "2.6.1" @@ -1824,7 +1975,7 @@ dependencies = [ "getrandom 0.3.1", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1970,6 +2121,12 @@ version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +[[package]] +name = "ucd-trie" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" + [[package]] name = "unicode-bidi" version = "0.3.18" @@ -2014,12 +2171,6 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" -[[package]] -name = "utf8-width" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" - [[package]] name = "utf8_iter" version = "1.0.4" diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 4046a66c754..722562efae1 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -22,8 +22,8 @@ hyperlane = "4.33.0" rand = "0.9.0" chrono = "0.4.40" serde = "1.0.219" -html-escape = "0.2.13" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } +handlebars = "6.3.1" [profile.dev] incremental = false diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 4c07b57a986..fd4b477e487 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -100,35 +100,28 @@ pub async fn init_query_all_state() { } #[inline] -pub async fn init_update_state() { +pub async fn get_update_data(limit: Queries) -> (String, Vec) { let db_pool: DbPoolConnection = get_db_connection().await; - let mut update_sql: RwLockWriteGuard<'_, HashMap> = UPDATE_SQL.write().await; - let mut update_query_sql: RwLockWriteGuard<'_, HashMap>> = - UPDATE_QUERY_SQL.write().await; - for limit in 1..=ROW_LIMIT { - let limit: Queries = limit as Queries; - let mut query_res_list: Vec = Vec::with_capacity(limit as usize); - let rows: Vec = get_some_row_id(limit, &db_pool).await.unwrap_or_default(); - let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME); - let mut id_list: Vec = Vec::with_capacity(limit as usize); - let mut value_list: String = String::new(); - let mut id_in_clause: String = String::new(); - for (i, row) in rows.iter().enumerate() { - let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); - let id: i32 = row.get(KEY_ID); - id_list.push(id); - value_list.push_str(&format!("WHEN {} THEN {} ", id, new_random_number)); - if i > 0 { - id_in_clause.push_str(", "); - } - id_in_clause.push_str(&id.to_string()); - query_res_list.push(QueryRow::new(id, new_random_number)); + let mut query_res_list: Vec = Vec::with_capacity(limit as usize); + let rows: Vec = get_some_row_id(limit, &db_pool).await.unwrap_or_default(); + let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME); + let mut id_list: Vec = Vec::with_capacity(limit as usize); + let mut value_list: String = String::new(); + let mut id_in_clause: String = String::new(); + for (i, row) in rows.iter().enumerate() { + let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); + let id: i32 = row.get(KEY_ID); + id_list.push(id); + value_list.push_str(&format!("WHEN {} THEN {} ", id, new_random_number)); + if i > 0 { + id_in_clause.push_str(", "); } - query.push_str(&value_list); - query.push_str(&format!("END WHERE id IN ({})", id_in_clause)); - update_query_sql.insert(limit, query_res_list); - update_sql.insert(limit, query); + id_in_clause.push_str(&id.to_string()); + query_res_list.push(QueryRow::new(id, new_random_number)); } + query.push_str(&value_list); + query.push_str(&format!("END WHERE id IN ({})", id_in_clause)); + (query, query_res_list) } #[inline] @@ -145,7 +138,6 @@ pub async fn init_db() { } init_query_state().await; init_query_all_state().await; - init_update_state().await; } #[inline] @@ -163,12 +155,11 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result Result, Box> { let db_pool: DbPoolConnection = get_db_connection().await; - let sql: String = UPDATE_SQL.read().await.get(&limit).unwrap().clone(); + let (sql, data) = get_update_data(limit).await; spawn(async move { let _ = sqlx::query(&sql).execute(&db_pool).await; }); - let list: Vec = UPDATE_QUERY_SQL.read().await.get(&limit).cloned().unwrap(); - Ok(list) + Ok(data) } #[inline] diff --git a/frameworks/Rust/hyperlane/src/lazy.rs b/frameworks/Rust/hyperlane/src/lazy.rs index ffefbf9bcb9..00739cf4f48 100644 --- a/frameworks/Rust/hyperlane/src/lazy.rs +++ b/frameworks/Rust/hyperlane/src/lazy.rs @@ -2,10 +2,6 @@ use crate::*; pub static DB: Lazy>> = Lazy::new(|| Arc::new(RwLock::new(None))); -pub static UPDATE_SQL: Lazy>> = - Lazy::new(|| arc_rwlock(HashMap::new())); -pub static UPDATE_QUERY_SQL: Lazy>>> = - Lazy::new(|| arc_rwlock(HashMap::new())); pub static QUERY_SQL: Lazy>> = Lazy::new(|| arc_rwlock(HashMap::new())); pub static QUERY_ALL_SQL: Lazy> = Lazy::new(|| arc_rwlock(String::new())); diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index ebc05dd03b1..0f645528a02 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -11,7 +11,7 @@ pub(crate) mod utils; pub(crate) use chrono::{DateTime, Utc}; pub(crate) use constant::*; pub(crate) use db::*; -pub(crate) use html_escape::encode_text; +pub(crate) use handlebars::Handlebars; pub(crate) use hyperlane::{ once_cell::sync::Lazy, serde::*, @@ -33,14 +33,7 @@ pub(crate) use sqlx::{ postgres::{PgPoolOptions, PgRow}, Error as SqlxError, Pool, Postgres, Row, }; -pub(crate) use std::{ - borrow::Cow, - collections::HashMap, - error::Error, - fmt::{self, Write}, - sync::Arc, - time::SystemTime, -}; +pub(crate) use std::{collections::HashMap, error::Error, sync::Arc, time::SystemTime}; pub(crate) use utils::*; #[tokio::main] diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 07d1f87fd21..7452799f819 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -70,12 +70,18 @@ pub async fn fortunes(controller_data: ControllerData) { let message_b: &String = &b.message; message_a.cmp(message_b) }); - let mut res: String = String::with_capacity(20480); - let _ = write!(&mut res, "{}", FortunesTemplate::new(fortunes_list)); + let template: &str = include_str!("../templates/fortune.hbs"); + let mut handlebars: Handlebars<'_> = Handlebars::new(); + handlebars + .register_template_string("fortunes", template) + .unwrap(); + let mut data: HashMap<&str, Vec> = HashMap::new(); + data.insert("fortunes", fortunes_list); + let result: String = handlebars.render("fortunes", &data).unwrap(); controller_data .set_response_header(CONTENT_TYPE, format!("{}; {}", TEXT_HTML, CHARSET_UTF_8)) .await - .set_response_body(res) + .set_response_body(result) .await; } diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index df2d4e3e457..6fd18c1e330 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -32,28 +32,3 @@ impl Fortunes { Self { id, message } } } - -pub struct FortunesTemplate { - pub fortunes_list: Vec, -} - -impl FortunesTemplate { - pub fn new(fortunes_list: Vec) -> Self { - Self { fortunes_list } - } -} - -impl fmt::Display for FortunesTemplate { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "Fortunes
idmessage
{}{}
")?; - for fortunes in &self.fortunes_list { - let decoded_message: Cow<'_, str> = encode_text(&fortunes.message); - write!( - f, - "", - fortunes.id, decoded_message - )?; - } - write!(f, "
idmessage
{}{}
") - } -} From 9930a3685b37d4f5bcfe13b85d65a82dc4c6b50a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 21:44:50 +0800 Subject: [PATCH 029/128] feat: update --- frameworks/Rust/hyperlane/src/route.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 7452799f819..0d8c7f6d0ee 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -65,11 +65,7 @@ pub async fn fortunes(controller_data: ControllerData) { 0, "Additional fortune added at request time.".to_owned(), )); - fortunes_list.sort_by(|a, b| { - let message_a: &String = &a.message; - let message_b: &String = &b.message; - message_a.cmp(message_b) - }); + fortunes_list.sort_by_key(|f| f.message.clone()); let template: &str = include_str!("../templates/fortune.hbs"); let mut handlebars: Handlebars<'_> = Handlebars::new(); handlebars From fe8bef4d6da3dc806543154582a609159c6ac229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 21:50:02 +0800 Subject: [PATCH 030/128] feat: update --- frameworks/Rust/hyperlane/Cargo.lock | 195 ++++--------------------- frameworks/Rust/hyperlane/Cargo.toml | 3 +- frameworks/Rust/hyperlane/src/main.rs | 3 +- frameworks/Rust/hyperlane/src/route.rs | 38 ++++- 4 files changed, 61 insertions(+), 178 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index 836b48d2c5a..ca3c194d1e3 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -296,41 +296,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "darling" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" -dependencies = [ - "darling_core", - "quote", - "syn", -] - [[package]] name = "der" version = "0.7.9" @@ -342,37 +307,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "derive_builder" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "derive_builder_macro" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" -dependencies = [ - "derive_builder_core", - "syn", -] - [[package]] name = "digest" version = "0.10.7" @@ -494,12 +428,6 @@ dependencies = [ "spin", ] -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - [[package]] name = "foldhash" version = "0.1.4" @@ -666,22 +594,6 @@ dependencies = [ "serde", ] -[[package]] -name = "handlebars" -version = "6.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d752747ddabc4c1a70dd28e72f2e3c218a816773e0d7faf67433f1acfa6cba7c" -dependencies = [ - "derive_builder", - "log", - "num-order", - "pest", - "pest_derive", - "serde", - "serde_json", - "thiserror 2.0.12", -] - [[package]] name = "hashbrown" version = "0.14.5" @@ -836,11 +748,12 @@ name = "hyperlane_techempower" version = "0.0.1" dependencies = [ "chrono", - "handlebars", "hyperlane", + "markup", "rand 0.9.0", "serde", "sqlx", + "v_htmlescape", ] [[package]] @@ -984,12 +897,6 @@ dependencies = [ "syn", ] -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - [[package]] name = "idna" version = "1.0.3" @@ -1107,6 +1014,26 @@ dependencies = [ "syn", ] +[[package]] +name = "markup" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74a887ad620fe1022257343ac77fcdd3720e92888e1b2e66e1b7a4707f453898" +dependencies = [ + "markup-proc-macro", +] + +[[package]] +name = "markup-proc-macro" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ab6ee21fd1855134cacf2f41afdf45f1bc456c7d7f6165d763b4647062dd2be" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "md-5" version = "0.10.6" @@ -1180,21 +1107,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-modular" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" - -[[package]] -name = "num-order" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" -dependencies = [ - "num-modular", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -1264,51 +1176,6 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" -[[package]] -name = "pest" -version = "2.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" -dependencies = [ - "memchr", - "thiserror 2.0.12", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pest_meta" -version = "2.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" -dependencies = [ - "once_cell", - "pest", - "sha2", -] - [[package]] name = "pin-project-lite" version = "0.2.16" @@ -1931,12 +1798,6 @@ dependencies = [ "unicode-properties", ] -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - [[package]] name = "subtle" version = "2.6.1" @@ -2121,12 +1982,6 @@ version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - [[package]] name = "unicode-bidi" version = "0.3.18" @@ -2177,6 +2032,12 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +[[package]] +name = "v_htmlescape" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c" + [[package]] name = "value-trait" version = "0.10.1" diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 722562efae1..67cbbc82244 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -23,7 +23,8 @@ rand = "0.9.0" chrono = "0.4.40" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } -handlebars = "6.3.1" +markup = "0.15.0" +v_htmlescape = "0.15.8" [profile.dev] incremental = false diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 0f645528a02..db29b0f05c5 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -11,7 +11,6 @@ pub(crate) mod utils; pub(crate) use chrono::{DateTime, Utc}; pub(crate) use constant::*; pub(crate) use db::*; -pub(crate) use handlebars::Handlebars; pub(crate) use hyperlane::{ once_cell::sync::Lazy, serde::*, @@ -33,7 +32,7 @@ pub(crate) use sqlx::{ postgres::{PgPoolOptions, PgRow}, Error as SqlxError, Pool, Postgres, Row, }; -pub(crate) use std::{collections::HashMap, error::Error, sync::Arc, time::SystemTime}; +pub(crate) use std::{collections::HashMap, error::Error, fmt::Write, sync::Arc, time::SystemTime}; pub(crate) use utils::*; #[tokio::main] diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 0d8c7f6d0ee..a46af9ecdb1 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -49,6 +49,28 @@ pub async fn queries(controller_data: ControllerData) { .await; } +markup::define! { + FortunesTemplate(fortunes: Vec) { + {markup::doctype()} + html { + head { + title { "Fortunes" } + } + body { + table { + tr { th { "id" } th { "message" } } + @for item in fortunes { + tr { + td { {item.id} } + td { {markup::raw(v_htmlescape::escape(&item.message))} } + } + } + } + } + } + } +} + #[inline] pub async fn fortunes(controller_data: ControllerData) { let all_rows: Vec = all_world_row().await; @@ -66,14 +88,14 @@ pub async fn fortunes(controller_data: ControllerData) { "Additional fortune added at request time.".to_owned(), )); fortunes_list.sort_by_key(|f| f.message.clone()); - let template: &str = include_str!("../templates/fortune.hbs"); - let mut handlebars: Handlebars<'_> = Handlebars::new(); - handlebars - .register_template_string("fortunes", template) - .unwrap(); - let mut data: HashMap<&str, Vec> = HashMap::new(); - data.insert("fortunes", fortunes_list); - let result: String = handlebars.render("fortunes", &data).unwrap(); + let mut result: String = String::with_capacity(2048); + let _ = write!( + &mut result, + "{}", + FortunesTemplate { + fortunes: fortunes_list + } + ); controller_data .set_response_header(CONTENT_TYPE, format!("{}; {}", TEXT_HTML, CHARSET_UTF_8)) .await From efa40a96d437319f54ea25cdd23aa8b8197669ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 21:53:11 +0800 Subject: [PATCH 031/128] feat: update --- frameworks/Rust/hyperlane/src/route.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index a46af9ecdb1..473a8c873c0 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -87,7 +87,7 @@ pub async fn fortunes(controller_data: ControllerData) { 0, "Additional fortune added at request time.".to_owned(), )); - fortunes_list.sort_by_key(|f| f.message.clone()); + fortunes_list.sort_by(|it, next| it.message.cmp(&next.message)); let mut result: String = String::with_capacity(2048); let _ = write!( &mut result, From 382f535c208ff35d2ab09de156e505a6732e6b77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 21:54:58 +0800 Subject: [PATCH 032/128] feat: update --- frameworks/Rust/hyperlane/src/db.rs | 9 +-------- frameworks/Rust/hyperlane/src/lazy.rs | 1 - frameworks/Rust/hyperlane/src/main.rs | 2 +- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index fd4b477e487..7d06418363e 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -93,12 +93,6 @@ pub async fn init_query_state() { } } -#[inline] -pub async fn init_query_all_state() { - let mut query_all_sql: RwLockWriteGuard<'_, String> = QUERY_ALL_SQL.write().await; - *query_all_sql = format!("SELECT id, randomNumber FROM {}", TABLE_NAME); -} - #[inline] pub async fn get_update_data(limit: Queries) -> (String, Vec) { let db_pool: DbPoolConnection = get_db_connection().await; @@ -137,7 +131,6 @@ pub async fn init_db() { insert_records().await; } init_query_state().await; - init_query_all_state().await; } #[inline] @@ -165,7 +158,7 @@ pub async fn update_world_rows(limit: Queries) -> Result, Box Vec { let db_pool: DbPoolConnection = get_db_connection().await; - let query_all_sql: RwLockReadGuard<'_, String> = QUERY_ALL_SQL.read().await; + let query_all_sql: String = format!("SELECT id, randomNumber FROM {}", TABLE_NAME); let sql: String = query_all_sql.clone(); let res: Vec = sqlx::query(&sql) .fetch_all(&db_pool) diff --git a/frameworks/Rust/hyperlane/src/lazy.rs b/frameworks/Rust/hyperlane/src/lazy.rs index 00739cf4f48..9cb0f52e158 100644 --- a/frameworks/Rust/hyperlane/src/lazy.rs +++ b/frameworks/Rust/hyperlane/src/lazy.rs @@ -4,4 +4,3 @@ pub static DB: Lazy>> = Lazy::new(|| Arc::new(RwLock::new(None))); pub static QUERY_SQL: Lazy>> = Lazy::new(|| arc_rwlock(HashMap::new())); -pub static QUERY_ALL_SQL: Lazy> = Lazy::new(|| arc_rwlock(String::new())); diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index db29b0f05c5..ed44e8b3e92 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -16,7 +16,7 @@ pub(crate) use hyperlane::{ serde::*, serde_json::json, tokio::{ - sync::{RwLock, RwLockReadGuard, RwLockWriteGuard}, + sync::{RwLock, RwLockWriteGuard}, task::spawn, }, *, From f6397370eb514bcf94c2dc28db9719363dafdd99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 22:18:17 +0800 Subject: [PATCH 033/128] feat: update --- frameworks/Rust/hyperlane/src/db.rs | 8 ++++---- frameworks/Rust/hyperlane/src/route.rs | 3 +-- frameworks/Rust/hyperlane/src/type.rs | 4 ++-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 7d06418363e..ebda961b5b2 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -21,7 +21,7 @@ pub async fn create_table() { let db_pool: DbPoolConnection = get_db_connection().await; let _ = sqlx::query(&format!( "CREATE TABLE IF NOT EXISTS {} ( - id SERIAL PRIMARY KEY, randomNumber INTEGER NOT NULL + id SERIAL PRIMARY KEY, randomNumber VARCHAR NOT NULL );", TABLE_NAME )) @@ -103,7 +103,7 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec) { let mut value_list: String = String::new(); let mut id_in_clause: String = String::new(); for (i, row) in rows.iter().enumerate() { - let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); + let new_random_number: String = rand::rng().random_range(1..RANDOM_MAX).to_string(); let id: i32 = row.get(KEY_ID); id_list.push(id); value_list.push_str(&format!("WHEN {} THEN {} ", id, new_random_number)); @@ -139,10 +139,10 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result Self { + pub fn new(id: i32, random_number: String) -> Self { Self { id, randomNumber: random_number, From c69e72ebd243e11daba9103dad05c142a0cbc982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 22:34:08 +0800 Subject: [PATCH 034/128] feat: update --- frameworks/Rust/hyperlane/src/server.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 20ec4d01a2f..d6045794c64 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -7,7 +7,7 @@ pub async fn run_server() { server.port(8080).await; server.log_dir("./logs").await; server.log_interval_millis(1_000_000_000).await; - server.disable_print().await; + // server.disable_print().await; server.route("/json", json).await; server.route("/plaintext", plaintext).await; server.route("/db", db).await; From 2eda143d365827c50552fa826155e5daf2a77f0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 22:53:03 +0800 Subject: [PATCH 035/128] feat: update --- frameworks/Rust/hyperlane/src/constant.rs | 3 +- frameworks/Rust/hyperlane/src/db.rs | 41 +++++++++++++++++------ frameworks/Rust/hyperlane/src/route.rs | 4 +-- frameworks/Rust/hyperlane/src/server.rs | 2 +- frameworks/Rust/hyperlane/src/type.rs | 4 +-- 5 files changed, 37 insertions(+), 17 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/constant.rs b/frameworks/Rust/hyperlane/src/constant.rs index 161b12d5de6..f369b8f395c 100644 --- a/frameworks/Rust/hyperlane/src/constant.rs +++ b/frameworks/Rust/hyperlane/src/constant.rs @@ -5,7 +5,8 @@ pub static DATABASE_USER_NAME: &str = "benchmarkdbuser"; pub static DATABASE_USER_PASSWORD: &str = "benchmarkdbpass"; pub static DATABASE_PORT: usize = 5_432; pub static DATABASE_NAME: &str = "hello_world"; -pub static TABLE_NAME: &str = "World"; +pub static TABLE_NAME_WORLD: &str = "World"; +pub static TABLE_NAME_FORTUNE: &str = "Fortune"; pub static ROW_LIMIT: i32 = 500; pub static RANDOM_MAX: i32 = 10_000; pub static KEY_ID: &str = "id"; diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index ebda961b5b2..76305896d3a 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -21,9 +21,17 @@ pub async fn create_table() { let db_pool: DbPoolConnection = get_db_connection().await; let _ = sqlx::query(&format!( "CREATE TABLE IF NOT EXISTS {} ( - id SERIAL PRIMARY KEY, randomNumber VARCHAR NOT NULL + id SERIAL PRIMARY KEY, randomNumber INT NOT NULL );", - TABLE_NAME + TABLE_NAME_WORLD + )) + .execute(&db_pool) + .await; + let _ = sqlx::query(&format!( + "CREATE TABLE IF NOT EXISTS {} ( + id SERIAL PRIMARY KEY, message VARCHAR NOT NULL + );", + TABLE_NAME_FORTUNE )) .execute(&db_pool) .await; @@ -33,7 +41,7 @@ pub async fn create_table() { #[cfg(feature = "dev")] pub async fn insert_records() { let db_pool: DbPoolConnection = get_db_connection().await; - let row: PgRow = sqlx::query(&format!("SELECT COUNT(*) FROM {}", TABLE_NAME)) + let row: PgRow = sqlx::query(&format!("SELECT COUNT(*) FROM {}", TABLE_NAME_WORLD)) .fetch_one(&db_pool) .await .unwrap(); @@ -51,7 +59,18 @@ pub async fn insert_records() { } let query: String = format!( "INSERT INTO {} (id, randomNumber) VALUES {}", - TABLE_NAME, + TABLE_NAME_WORLD, + values.join(",") + ); + let _ = sqlx::query(&query).execute(&db_pool).await; + let mut values: Vec = Vec::new(); + for _ in 0..missing_count { + let random_number: String = rng.random_range(1..=RANDOM_MAX).to_string(); + values.push(format!("(DEFAULT, {})", random_number)); + } + let query: String = format!( + "INSERT INTO {} (id, message) VALUES {}", + TABLE_NAME_FORTUNE, values.join(",") ); let _ = sqlx::query(&query).execute(&db_pool).await; @@ -87,7 +106,7 @@ pub async fn init_query_state() { random_id, format!( "SELECT id, randomNumber FROM {} WHERE id = {}", - TABLE_NAME, random_id + TABLE_NAME_WORLD, random_id ), ); } @@ -98,12 +117,12 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec) { let db_pool: DbPoolConnection = get_db_connection().await; let mut query_res_list: Vec = Vec::with_capacity(limit as usize); let rows: Vec = get_some_row_id(limit, &db_pool).await.unwrap_or_default(); - let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME); + let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME_WORLD); let mut id_list: Vec = Vec::with_capacity(limit as usize); let mut value_list: String = String::new(); let mut id_in_clause: String = String::new(); for (i, row) in rows.iter().enumerate() { - let new_random_number: String = rand::rng().random_range(1..RANDOM_MAX).to_string(); + let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); let id: i32 = row.get(KEY_ID); id_list.push(id); value_list.push_str(&format!("WHEN {} THEN {} ", id, new_random_number)); @@ -139,10 +158,10 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result Result, Box Vec { let db_pool: DbPoolConnection = get_db_connection().await; - let query_all_sql: String = format!("SELECT id, randomNumber FROM {}", TABLE_NAME); + let query_all_sql: String = format!("SELECT id, randomNumber FROM {}", TABLE_NAME_FORTUNE); let sql: String = query_all_sql.clone(); let res: Vec = sqlx::query(&sql) .fetch_all(&db_pool) @@ -172,7 +191,7 @@ pub async fn get_some_row_id( limit: Queries, db_pool: &DbPoolConnection, ) -> Result, SqlxError> { - let sql: String = format!("SELECT id FROM {} LIMIT {}", TABLE_NAME, limit); + let sql: String = format!("SELECT id FROM {} LIMIT {}", TABLE_NAME_WORLD, limit); let res: Result, SqlxError> = sqlx::query(&sql).fetch_all(db_pool).await; return res; } diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index e626bfac5a2..c0ef460760e 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -77,8 +77,8 @@ pub async fn fortunes(controller_data: ControllerData) { let mut fortunes_list: Vec = all_rows .iter() .map(|row| { - let id: i32 = row.get(0); - let message: String = row.get(1); + let id: i32 = row.get(KEY_ID); + let message: String = row.get(KEY_RANDOM_NUMBER); Fortunes::new(id, message) }) .collect(); diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index d6045794c64..20ec4d01a2f 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -7,7 +7,7 @@ pub async fn run_server() { server.port(8080).await; server.log_dir("./logs").await; server.log_interval_millis(1_000_000_000).await; - // server.disable_print().await; + server.disable_print().await; server.route("/json", json).await; server.route("/plaintext", plaintext).await; server.route("/db", db).await; diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 8f636d6b66b..6fd18c1e330 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -7,12 +7,12 @@ pub type Queries = i32; #[derive(Serialize, Default, Clone)] pub struct QueryRow { pub id: i32, - pub randomNumber: String, + pub randomNumber: i32, } impl QueryRow { #[inline] - pub fn new(id: i32, random_number: String) -> Self { + pub fn new(id: i32, random_number: i32) -> Self { Self { id, randomNumber: random_number, From 39982ec9fde8bc0bb55a53ebcf193642be47d91e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 23:06:49 +0800 Subject: [PATCH 036/128] feat: update --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- frameworks/Rust/hyperlane/src/db.rs | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 67cbbc82244..64eae3b592e 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -22,7 +22,7 @@ hyperlane = "4.33.0" rand = "0.9.0" chrono = "0.4.40" serde = "1.0.219" -sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } +sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres", "offline"] } markup = "0.15.0" v_htmlescape = "0.15.8" diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 76305896d3a..71baaf80dc4 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -168,9 +168,7 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result Result, Box> { let db_pool: DbPoolConnection = get_db_connection().await; let (sql, data) = get_update_data(limit).await; - spawn(async move { - let _ = sqlx::query(&sql).execute(&db_pool).await; - }); + let _ = sqlx::query(&sql).execute(&db_pool).await; Ok(data) } From db3f495ee5903676b366154e8813ce1acdbb337a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 23:12:43 +0800 Subject: [PATCH 037/128] feat: update --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- frameworks/Rust/hyperlane/src/main.rs | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 64eae3b592e..67cbbc82244 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -22,7 +22,7 @@ hyperlane = "4.33.0" rand = "0.9.0" chrono = "0.4.40" serde = "1.0.219" -sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres", "offline"] } +sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } markup = "0.15.0" v_htmlescape = "0.15.8" diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index ed44e8b3e92..9e6ed24ae68 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -15,10 +15,7 @@ pub(crate) use hyperlane::{ once_cell::sync::Lazy, serde::*, serde_json::json, - tokio::{ - sync::{RwLock, RwLockWriteGuard}, - task::spawn, - }, + tokio::sync::{RwLock, RwLockWriteGuard}, *, }; pub(crate) use lazy::*; From 374fb85ee04ff341e3db86a59598e792a2bbc3ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 23:32:17 +0800 Subject: [PATCH 038/128] feat: update --- frameworks/Rust/hyperlane/Cargo.lock | 28 ---------------------- frameworks/Rust/hyperlane/Cargo.toml | 2 -- frameworks/Rust/hyperlane/src/main.rs | 2 +- frameworks/Rust/hyperlane/src/route.rs | 33 ++------------------------ frameworks/Rust/hyperlane/src/type.rs | 27 +++++++++++++++++++++ frameworks/Rust/hyperlane/src/utils.rs | 16 +++++++++++++ 6 files changed, 46 insertions(+), 62 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index ca3c194d1e3..97881041abd 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -749,11 +749,9 @@ version = "0.0.1" dependencies = [ "chrono", "hyperlane", - "markup", "rand 0.9.0", "serde", "sqlx", - "v_htmlescape", ] [[package]] @@ -1014,26 +1012,6 @@ dependencies = [ "syn", ] -[[package]] -name = "markup" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74a887ad620fe1022257343ac77fcdd3720e92888e1b2e66e1b7a4707f453898" -dependencies = [ - "markup-proc-macro", -] - -[[package]] -name = "markup-proc-macro" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ab6ee21fd1855134cacf2f41afdf45f1bc456c7d7f6165d763b4647062dd2be" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "md-5" version = "0.10.6" @@ -2032,12 +2010,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" -[[package]] -name = "v_htmlescape" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c" - [[package]] name = "value-trait" version = "0.10.1" diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 67cbbc82244..6c418dbfe6d 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -23,8 +23,6 @@ rand = "0.9.0" chrono = "0.4.40" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } -markup = "0.15.0" -v_htmlescape = "0.15.8" [profile.dev] incremental = false diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 9e6ed24ae68..604a5b64c88 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -29,7 +29,7 @@ pub(crate) use sqlx::{ postgres::{PgPoolOptions, PgRow}, Error as SqlxError, Pool, Postgres, Row, }; -pub(crate) use std::{collections::HashMap, error::Error, fmt::Write, sync::Arc, time::SystemTime}; +pub(crate) use std::{collections::HashMap, error::Error, fmt, sync::Arc, time::SystemTime}; pub(crate) use utils::*; #[tokio::main] diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index c0ef460760e..f69308b6f7c 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -49,28 +49,6 @@ pub async fn queries(controller_data: ControllerData) { .await; } -markup::define! { - FortunesTemplate(fortunes: Vec) { - {markup::doctype()} - html { - head { - title { "Fortunes" } - } - body { - table { - tr { th { "id" } th { "message" } } - @for item in fortunes { - tr { - td { {item.id} } - td { {markup::raw(v_htmlescape::escape(&item.message))} } - } - } - } - } - } - } -} - #[inline] pub async fn fortunes(controller_data: ControllerData) { let all_rows: Vec = all_world_row().await; @@ -87,18 +65,11 @@ pub async fn fortunes(controller_data: ControllerData) { "Additional fortune added at request time.".to_owned(), )); fortunes_list.sort_by(|it, next| it.message.cmp(&next.message)); - let mut result: String = String::with_capacity(2048); - let _ = write!( - &mut result, - "{}", - FortunesTemplate { - fortunes: fortunes_list - } - ); + let res: String = FortunesTemplate::new(fortunes_list).to_string(); controller_data .set_response_header(CONTENT_TYPE, format!("{}; {}", TEXT_HTML, CHARSET_UTF_8)) .await - .set_response_body(result) + .set_response_body(res) .await; } diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 6fd18c1e330..dcc2d756c4e 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -32,3 +32,30 @@ impl Fortunes { Self { id, message } } } + +#[derive(Serialize)] +pub struct FortunesTemplate(pub Vec); + +impl FortunesTemplate { + #[inline] + pub fn new(list: Vec) -> Self { + Self(list) + } +} + +impl fmt::Display for FortunesTemplate { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + let fortunes: &Vec = &self.0; + let _ = write!(f, "Fortunes"); + for tem in fortunes.iter() { + let row: String = format!( + "", + tem.id, + escape_html(&tem.message) + ); + let _ = write!(f, "{}", row); + } + let _ = write!(f, "
idmessage
{}{}
"); + Ok(()) + } +} diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index ea37364a8bc..c63e0ddb3c6 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -5,3 +5,19 @@ pub fn generate_rfc1123_timestamp() -> String { let now: DateTime = SystemTime::now().into(); now.format("%a, %d %b %Y %H:%M:%S GMT").to_string() } + +#[inline] +pub fn escape_html(input: &str) -> String { + let mut result: String = String::new(); + for ch in input.chars() { + match ch { + '<' => result.push_str("<"), + '>' => result.push_str(">"), + '&' => result.push_str("&"), + '"' => result.push_str("""), + '\'' => result.push_str("'"), + _ => result.push(ch), + } + } + result +} From c607a0775d4961f259bc5789e98bb86b9dab6321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 23:40:18 +0800 Subject: [PATCH 039/128] feat: update --- frameworks/Rust/hyperlane/src/db.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 71baaf80dc4..40fd8164c5f 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -175,7 +175,7 @@ pub async fn update_world_rows(limit: Queries) -> Result, Box Vec { let db_pool: DbPoolConnection = get_db_connection().await; - let query_all_sql: String = format!("SELECT id, randomNumber FROM {}", TABLE_NAME_FORTUNE); + let query_all_sql: String = format!("SELECT id, message FROM {}", TABLE_NAME_FORTUNE); let sql: String = query_all_sql.clone(); let res: Vec = sqlx::query(&sql) .fetch_all(&db_pool) From 332ad4ffdaf142c8477423bdc00b73c67752ffaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 15 Mar 2025 23:50:04 +0800 Subject: [PATCH 040/128] feat: update --- frameworks/Rust/hyperlane/src/constant.rs | 1 + frameworks/Rust/hyperlane/src/db.rs | 23 +++++------------------ frameworks/Rust/hyperlane/src/lazy.rs | 2 -- frameworks/Rust/hyperlane/src/main.rs | 2 +- frameworks/Rust/hyperlane/src/route.rs | 2 +- 5 files changed, 8 insertions(+), 22 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/constant.rs b/frameworks/Rust/hyperlane/src/constant.rs index f369b8f395c..c811a9b843b 100644 --- a/frameworks/Rust/hyperlane/src/constant.rs +++ b/frameworks/Rust/hyperlane/src/constant.rs @@ -11,3 +11,4 @@ pub static ROW_LIMIT: i32 = 500; pub static RANDOM_MAX: i32 = 10_000; pub static KEY_ID: &str = "id"; pub static KEY_RANDOM_NUMBER: &str = "randomnumber"; +pub static KEY_MESSAGE: &str = "message "; diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 40fd8164c5f..d231938b92b 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -98,20 +98,6 @@ pub async fn connection_db() -> DbPoolConnection { pool } -#[inline] -pub async fn init_query_state() { - let mut query_sql: RwLockWriteGuard<'_, HashMap> = QUERY_SQL.write().await; - for random_id in 1..=ROW_LIMIT { - query_sql.insert( - random_id, - format!( - "SELECT id, randomNumber FROM {} WHERE id = {}", - TABLE_NAME_WORLD, random_id - ), - ); - } -} - #[inline] pub async fn get_update_data(limit: Queries) -> (String, Vec) { let db_pool: DbPoolConnection = get_db_connection().await; @@ -149,13 +135,15 @@ pub async fn init_db() { create_table().await; insert_records().await; } - init_query_state().await; } #[inline] pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result> { let random_id: i32 = rand::rng().random_range(1..=ROW_LIMIT); - let sql: String = QUERY_SQL.read().await.get(&random_id).cloned().unwrap(); + let sql: String = format!( + "SELECT id, randomNumber FROM {} WHERE id = {}", + TABLE_NAME_WORLD, random_id + ); if let Ok(rows) = sqlx::query(&sql).fetch_one(db_pool).await { let id: i32 = rows.get(KEY_ID); let random_number: i32 = rows.get(KEY_RANDOM_NUMBER); @@ -175,8 +163,7 @@ pub async fn update_world_rows(limit: Queries) -> Result, Box Vec { let db_pool: DbPoolConnection = get_db_connection().await; - let query_all_sql: String = format!("SELECT id, message FROM {}", TABLE_NAME_FORTUNE); - let sql: String = query_all_sql.clone(); + let sql: String = format!("SELECT id, message FROM {}", TABLE_NAME_FORTUNE); let res: Vec = sqlx::query(&sql) .fetch_all(&db_pool) .await diff --git a/frameworks/Rust/hyperlane/src/lazy.rs b/frameworks/Rust/hyperlane/src/lazy.rs index 9cb0f52e158..5b701e371bd 100644 --- a/frameworks/Rust/hyperlane/src/lazy.rs +++ b/frameworks/Rust/hyperlane/src/lazy.rs @@ -2,5 +2,3 @@ use crate::*; pub static DB: Lazy>> = Lazy::new(|| Arc::new(RwLock::new(None))); -pub static QUERY_SQL: Lazy>> = - Lazy::new(|| arc_rwlock(HashMap::new())); diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 604a5b64c88..98849020ced 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -29,7 +29,7 @@ pub(crate) use sqlx::{ postgres::{PgPoolOptions, PgRow}, Error as SqlxError, Pool, Postgres, Row, }; -pub(crate) use std::{collections::HashMap, error::Error, fmt, sync::Arc, time::SystemTime}; +pub(crate) use std::{error::Error, fmt, sync::Arc, time::SystemTime}; pub(crate) use utils::*; #[tokio::main] diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index f69308b6f7c..1e7f004970a 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -56,7 +56,7 @@ pub async fn fortunes(controller_data: ControllerData) { .iter() .map(|row| { let id: i32 = row.get(KEY_ID); - let message: String = row.get(KEY_RANDOM_NUMBER); + let message: String = row.get(KEY_MESSAGE); Fortunes::new(id, message) }) .collect(); From 2998cdecc1f01d2bb0ea61f22499f40c3393e6ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 07:39:39 +0800 Subject: [PATCH 041/128] feat: update --- frameworks/Rust/hyperlane/src/server.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 20ec4d01a2f..d6045794c64 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -7,7 +7,7 @@ pub async fn run_server() { server.port(8080).await; server.log_dir("./logs").await; server.log_interval_millis(1_000_000_000).await; - server.disable_print().await; + // server.disable_print().await; server.route("/json", json).await; server.route("/plaintext", plaintext).await; server.route("/db", db).await; From 37ebcd104e33bc6563a1e67a4bcf90d63f5e116d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 07:44:44 +0800 Subject: [PATCH 042/128] feat: update --- frameworks/Rust/hyperlane/src/constant.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/constant.rs b/frameworks/Rust/hyperlane/src/constant.rs index c811a9b843b..54ee847daf0 100644 --- a/frameworks/Rust/hyperlane/src/constant.rs +++ b/frameworks/Rust/hyperlane/src/constant.rs @@ -11,4 +11,4 @@ pub static ROW_LIMIT: i32 = 500; pub static RANDOM_MAX: i32 = 10_000; pub static KEY_ID: &str = "id"; pub static KEY_RANDOM_NUMBER: &str = "randomnumber"; -pub static KEY_MESSAGE: &str = "message "; +pub static KEY_MESSAGE: &str = "message"; From c80fd29baa3de0b9b4794f58bdd54409227cf90a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 08:12:01 +0800 Subject: [PATCH 043/128] feat: update --- frameworks/Rust/hyperlane/src/db.rs | 24 +++++++++++++----------- frameworks/Rust/hyperlane/src/main.rs | 7 +++++-- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index d231938b92b..74cd0fe74bd 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -102,14 +102,14 @@ pub async fn connection_db() -> DbPoolConnection { pub async fn get_update_data(limit: Queries) -> (String, Vec) { let db_pool: DbPoolConnection = get_db_connection().await; let mut query_res_list: Vec = Vec::with_capacity(limit as usize); - let rows: Vec = get_some_row_id(limit, &db_pool).await.unwrap_or_default(); + let rows: Vec = get_some_row_id(limit, &db_pool).await; let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME_WORLD); let mut id_list: Vec = Vec::with_capacity(limit as usize); let mut value_list: String = String::new(); let mut id_in_clause: String = String::new(); for (i, row) in rows.iter().enumerate() { let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); - let id: i32 = row.get(KEY_ID); + let id: i32 = row.id; id_list.push(id); value_list.push_str(&format!("WHEN {} THEN {} ", id, new_random_number)); if i > 0 { @@ -139,7 +139,7 @@ pub async fn init_db() { #[inline] pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result> { - let random_id: i32 = rand::rng().random_range(1..=ROW_LIMIT); + let random_id: i32 = rand::rng().random_range(1..=RANDOM_MAX); let sql: String = format!( "SELECT id, randomNumber FROM {} WHERE id = {}", TABLE_NAME_WORLD, random_id @@ -156,7 +156,9 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result Result, Box> { let db_pool: DbPoolConnection = get_db_connection().await; let (sql, data) = get_update_data(limit).await; - let _ = sqlx::query(&sql).execute(&db_pool).await; + spawn(async move { + let _ = sqlx::query(&sql).execute(&db_pool).await; + }); Ok(data) } @@ -172,11 +174,11 @@ pub async fn all_world_row() -> Vec { } #[inline] -pub async fn get_some_row_id( - limit: Queries, - db_pool: &DbPoolConnection, -) -> Result, SqlxError> { - let sql: String = format!("SELECT id FROM {} LIMIT {}", TABLE_NAME_WORLD, limit); - let res: Result, SqlxError> = sqlx::query(&sql).fetch_all(db_pool).await; - return res; +pub async fn get_some_row_id(limit: Queries, db_pool: &DbPoolConnection) -> Vec { + let mut res: Vec = Vec::with_capacity(limit as usize); + for _ in 0..limit { + let tem: QueryRow = random_world_row(db_pool).await.unwrap_or_default(); + res.push(tem); + } + res } diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 98849020ced..3d5370476d0 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -15,7 +15,10 @@ pub(crate) use hyperlane::{ once_cell::sync::Lazy, serde::*, serde_json::json, - tokio::sync::{RwLock, RwLockWriteGuard}, + tokio::{ + spawn, + sync::{RwLock, RwLockWriteGuard}, + }, *, }; pub(crate) use lazy::*; @@ -27,7 +30,7 @@ pub(crate) use route::*; pub(crate) use server::*; pub(crate) use sqlx::{ postgres::{PgPoolOptions, PgRow}, - Error as SqlxError, Pool, Postgres, Row, + Pool, Postgres, Row, }; pub(crate) use std::{error::Error, fmt, sync::Arc, time::SystemTime}; pub(crate) use utils::*; From 3ffc0f5809baa3bb0d42760db332a07589a512c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 08:54:46 +0800 Subject: [PATCH 044/128] feat: cache --- frameworks/Rust/hyperlane/README.md | 4 ++++ .../Rust/hyperlane/benchmark_config.json | 1 + frameworks/Rust/hyperlane/src/db.rs | 20 +++++++++++++++++++ frameworks/Rust/hyperlane/src/lazy.rs | 1 + frameworks/Rust/hyperlane/src/route.rs | 19 ++++++++++++++++++ frameworks/Rust/hyperlane/src/server.rs | 1 + 6 files changed, 46 insertions(+) diff --git a/frameworks/Rust/hyperlane/README.md b/frameworks/Rust/hyperlane/README.md index c1447c154b2..362846e9137 100644 --- a/frameworks/Rust/hyperlane/README.md +++ b/frameworks/Rust/hyperlane/README.md @@ -33,3 +33,7 @@ PostgreSQL. ### Test 6: Plaintext http://localhost:8080/plaintext + +### Test 7: Caching + + http://localhost:8080/cached-queries?c=20 diff --git a/frameworks/Rust/hyperlane/benchmark_config.json b/frameworks/Rust/hyperlane/benchmark_config.json index 760f997a538..7fed5aa3a64 100644 --- a/frameworks/Rust/hyperlane/benchmark_config.json +++ b/frameworks/Rust/hyperlane/benchmark_config.json @@ -10,6 +10,7 @@ "db_url": "/db", "query_url": "/queries?q=", "update_url": "/updates?q=", + "cached_url": "/cached-queries?c=", "port": 8080, "approach": "Realistic", "classification": "Micro", diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 74cd0fe74bd..4b068a3b2e1 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -76,6 +76,25 @@ pub async fn insert_records() { let _ = sqlx::query(&query).execute(&db_pool).await; } +#[inline] +pub async fn init_cache() { + let mut res: Vec = Vec::with_capacity(RANDOM_MAX as usize); + let db_pool: DbPoolConnection = get_db_connection().await; + let sql: String = format!( + "SELECT id, randomNumber FROM {} LIMIT {}", + TABLE_NAME_WORLD, RANDOM_MAX + ); + if let Ok(rows) = sqlx::query(&sql).fetch_all(&db_pool).await { + for row in rows { + let id: i32 = row.get(KEY_ID); + let random_number: i32 = row.get(KEY_RANDOM_NUMBER); + res.push(QueryRow::new(id, random_number)); + } + } + let mut cache: RwLockWriteGuard<'_, Vec> = CACHE.write().await; + *cache = res; +} + #[inline] pub async fn connection_db() -> DbPoolConnection { let db_url: &str = match option_env!("POSTGRES_URL") { @@ -135,6 +154,7 @@ pub async fn init_db() { create_table().await; insert_records().await; } + init_cache().await; } #[inline] diff --git a/frameworks/Rust/hyperlane/src/lazy.rs b/frameworks/Rust/hyperlane/src/lazy.rs index 5b701e371bd..6826b018008 100644 --- a/frameworks/Rust/hyperlane/src/lazy.rs +++ b/frameworks/Rust/hyperlane/src/lazy.rs @@ -2,3 +2,4 @@ use crate::*; pub static DB: Lazy>> = Lazy::new(|| Arc::new(RwLock::new(None))); +pub static CACHE: Lazy>> = Lazy::new(|| arc_rwlock(vec![])); diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 1e7f004970a..322a72cea76 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -87,3 +87,22 @@ pub async fn updates(controller_data: ControllerData) { .set_response_body(serde_json::to_string(&res).unwrap_or_default()) .await; } + +#[inline] +pub async fn cached_queries(controller_data: ControllerData) { + let count: Queries = controller_data + .get_request_query("c") + .await + .and_then(|queries| queries.parse::().ok()) + .unwrap_or_default() + .min(ROW_LIMIT as Queries) + .max(1); + let mut res: Vec = Vec::with_capacity(count as usize); + let cache: tokio::sync::RwLockReadGuard<'_, Vec> = CACHE.read().await; + for i in 0..count { + res.push(cache[i as usize].clone()); + } + let _ = controller_data + .set_response_body(serde_json::to_string(&res).unwrap_or_default()) + .await; +} diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index d6045794c64..09d0f809e62 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -14,6 +14,7 @@ pub async fn run_server() { server.route("/queries", queries).await; server.route("/fortunes", fortunes).await; server.route("/updates", updates).await; + server.route("/cached-queries",cached_queries).await; server.request_middleware(request).await; server.response_middleware(response).await; server.listen().await; From ce6b7ecde6c170c0fa6eafc7ed13fe17ae97fe65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 08:57:15 +0800 Subject: [PATCH 045/128] feat: cache --- frameworks/Rust/hyperlane/benchmark_config.json | 16 ++++++++-------- frameworks/Rust/hyperlane/src/server.rs | 14 +++++++------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/frameworks/Rust/hyperlane/benchmark_config.json b/frameworks/Rust/hyperlane/benchmark_config.json index 7fed5aa3a64..7f4d8cf1367 100644 --- a/frameworks/Rust/hyperlane/benchmark_config.json +++ b/frameworks/Rust/hyperlane/benchmark_config.json @@ -4,20 +4,20 @@ { "default": { "dockerfile": "hyperlane.dockerfile", - "json_url": "/json", - "plaintext_url": "/plaintext", - "fortune_url": "/fortunes", - "db_url": "/db", - "query_url": "/queries?q=", - "update_url": "/updates?q=", - "cached_url": "/cached-queries?c=", + "json_url": "/j", + "plaintext_url": "/p", + "fortune_url": "/f", + "db_url": "/d", + "query_url": "/q?q=", + "update_url": "/u?q=", + "cached_query_url": "/c?c=", "port": 8080, "approach": "Realistic", "classification": "Micro", "database": "Postgres", "framework": "hyperlane", "language": "Rust", - "orm": "raw", + "orm": "sqlx", "platform": "Rust", "webserver": "hyperlane", "os": "Linux", diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 09d0f809e62..283432453bd 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -8,13 +8,13 @@ pub async fn run_server() { server.log_dir("./logs").await; server.log_interval_millis(1_000_000_000).await; // server.disable_print().await; - server.route("/json", json).await; - server.route("/plaintext", plaintext).await; - server.route("/db", db).await; - server.route("/queries", queries).await; - server.route("/fortunes", fortunes).await; - server.route("/updates", updates).await; - server.route("/cached-queries",cached_queries).await; + server.route("/j", json).await; + server.route("/p", plaintext).await; + server.route("/d", db).await; + server.route("/q", queries).await; + server.route("/f", fortunes).await; + server.route("/u", updates).await; + server.route("/c", cached_queries).await; server.request_middleware(request).await; server.response_middleware(response).await; server.listen().await; From fbf14e2adf5e834df1604182e7b3ecc66fe9282b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 09:02:31 +0800 Subject: [PATCH 046/128] feat: config --- frameworks/Rust/hyperlane/benchmark_config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/Rust/hyperlane/benchmark_config.json b/frameworks/Rust/hyperlane/benchmark_config.json index 7f4d8cf1367..3c4ba24a12c 100644 --- a/frameworks/Rust/hyperlane/benchmark_config.json +++ b/frameworks/Rust/hyperlane/benchmark_config.json @@ -13,11 +13,11 @@ "cached_query_url": "/c?c=", "port": 8080, "approach": "Realistic", - "classification": "Micro", + "classification": "Platform", "database": "Postgres", "framework": "hyperlane", "language": "Rust", - "orm": "sqlx", + "orm": "raw", "platform": "Rust", "webserver": "hyperlane", "os": "Linux", From f8fecf2f2670631d86282fd2702130d8686b0d0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 09:11:03 +0800 Subject: [PATCH 047/128] feat: config --- frameworks/Rust/hyperlane/benchmark_config.json | 14 +++++++------- frameworks/Rust/hyperlane/src/server.rs | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/frameworks/Rust/hyperlane/benchmark_config.json b/frameworks/Rust/hyperlane/benchmark_config.json index 3c4ba24a12c..4d8022c7a96 100644 --- a/frameworks/Rust/hyperlane/benchmark_config.json +++ b/frameworks/Rust/hyperlane/benchmark_config.json @@ -4,13 +4,13 @@ { "default": { "dockerfile": "hyperlane.dockerfile", - "json_url": "/j", - "plaintext_url": "/p", - "fortune_url": "/f", - "db_url": "/d", - "query_url": "/q?q=", - "update_url": "/u?q=", - "cached_query_url": "/c?c=", + "json_url": "/json", + "plaintext_url": "/plaintext", + "fortune_url": "/fortunes", + "db_url": "/db", + "query_url": "/quer?q=", + "update_url": "/upda?q=", + "cached_query_url": "/cached-quer?c=", "port": 8080, "approach": "Realistic", "classification": "Platform", diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 283432453bd..1cf22f4e9ee 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -8,13 +8,13 @@ pub async fn run_server() { server.log_dir("./logs").await; server.log_interval_millis(1_000_000_000).await; // server.disable_print().await; - server.route("/j", json).await; - server.route("/p", plaintext).await; - server.route("/d", db).await; - server.route("/q", queries).await; - server.route("/f", fortunes).await; - server.route("/u", updates).await; - server.route("/c", cached_queries).await; + server.route("/json", json).await; + server.route("/plaintext", plaintext).await; + server.route("/db", db).await; + server.route("/quer", queries).await; + server.route("/fortunes", fortunes).await; + server.route("/upda", updates).await; + server.route("/cached-quer", cached_queries).await; server.request_middleware(request).await; server.response_middleware(response).await; server.listen().await; From f10855783b7b4f549519037fb23b47ab3f7e696c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 09:16:14 +0800 Subject: [PATCH 048/128] feat: config --- frameworks/Rust/hyperlane/benchmark_config.json | 2 +- frameworks/Rust/hyperlane/src/server.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/Rust/hyperlane/benchmark_config.json b/frameworks/Rust/hyperlane/benchmark_config.json index 4d8022c7a96..1f810752e18 100644 --- a/frameworks/Rust/hyperlane/benchmark_config.json +++ b/frameworks/Rust/hyperlane/benchmark_config.json @@ -8,7 +8,7 @@ "plaintext_url": "/plaintext", "fortune_url": "/fortunes", "db_url": "/db", - "query_url": "/quer?q=", + "query_url": "/query?q=", "update_url": "/upda?q=", "cached_query_url": "/cached-quer?c=", "port": 8080, diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 1cf22f4e9ee..fb89ced4c7e 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -11,7 +11,7 @@ pub async fn run_server() { server.route("/json", json).await; server.route("/plaintext", plaintext).await; server.route("/db", db).await; - server.route("/quer", queries).await; + server.route("/query", queries).await; server.route("/fortunes", fortunes).await; server.route("/upda", updates).await; server.route("/cached-quer", cached_queries).await; From 9c2ef17a90fada466081cd6c28d7bee259584e0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 12:29:55 +0800 Subject: [PATCH 049/128] feat: v4.36.1 --- frameworks/Rust/hyperlane/Cargo.lock | 125 +++--------------- frameworks/Rust/hyperlane/Cargo.toml | 3 +- frameworks/Rust/hyperlane/src/main.rs | 3 +- .../Rust/hyperlane/src/request_middleware.rs | 2 +- frameworks/Rust/hyperlane/src/route.rs | 2 +- frameworks/Rust/hyperlane/src/server.rs | 3 +- frameworks/Rust/hyperlane/src/utils.rs | 8 -- 7 files changed, 21 insertions(+), 125 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index 97881041abd..a678ccd5b07 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -50,21 +50,6 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - [[package]] name = "async-func" version = "0.1.8" @@ -173,35 +158,12 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" -[[package]] -name = "cc" -version = "1.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" -dependencies = [ - "shlex", -] - [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "chrono" -version = "0.4.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "wasm-bindgen", - "windows-link", -] - [[package]] name = "clonelicious" version = "1.0.5" @@ -210,9 +172,9 @@ checksum = "2c61986b9f0347d401ef41468e7aadba2ab6dfc2547df1862f2563250fbfa8d3" [[package]] name = "color-output" -version = "6.4.3" +version = "6.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc537d9d2e7e15fa40da2a6a451afedea17808a63f8339863e3a6b5ae93db596" +checksum = "6c85488dab2761e7883ac16c88819eefb468973b57591ef3c2baa743c35004ff" dependencies = [ "hyperlane-time", ] @@ -232,12 +194,6 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - [[package]] name = "cpufeatures" version = "0.2.17" @@ -665,9 +621,9 @@ dependencies = [ [[package]] name = "http-compress" -version = "2.3.5" +version = "2.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5394c60478257d0d294dd21362169af6823c85bc98ab73ce073193ebe0e178" +checksum = "98b1cde57d40ec354eb0d1f7fea31e5d621e2bfbc9ec087f6d06944b5ac1ca3a" dependencies = [ "brotli", "flate2", @@ -676,15 +632,15 @@ dependencies = [ [[package]] name = "http-constant" -version = "1.34.0" +version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c47702947ab1af7d39cca41b42beef6598b8bc26be50d22029b3547dbca1ff09" +checksum = "82b282f8cb8ff76d9ad521f4e159143bfe2639a03e7d91871f740b716f28c608" [[package]] name = "http-type" -version = "3.25.0" +version = "3.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9950165f6661115413e9f836e9cb2e6174fbf6b9fff7cad88a1d4bdfdb454d81" +checksum = "1ac0f534e18616d3a80a032fed278879bfd663d071282377ce66c55ebd7eef09" dependencies = [ "hex", "http-compress", @@ -700,9 +656,9 @@ dependencies = [ [[package]] name = "hyperlane" -version = "4.33.0" +version = "4.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e5db0096d50b03bea038232871b8b81d8356f02549a1f9f60389a7e20b32d9" +checksum = "678154dd86505451acd8d9a3faea8edbc20e61f1e2024d8b26d40d8b59b886eb" dependencies = [ "async-func", "clonelicious", @@ -712,6 +668,7 @@ dependencies = [ "http-compress", "http-type", "hyperlane-log", + "hyperlane-time", "lombok-macros", "once_cell", "recoverable-spawn", @@ -726,9 +683,9 @@ dependencies = [ [[package]] name = "hyperlane-log" -version = "1.2.3" +version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf652414e2c385beb37c36341ae91f6eb686062f3cfff6c0cff8526deafbb65" +checksum = "1e4ac75392e2efe8ca225dd9dbb3a027b861ea20c483a7763ee736edabe10cca" dependencies = [ "file-operation", "hyperlane-time", @@ -739,44 +696,20 @@ dependencies = [ [[package]] name = "hyperlane-time" -version = "0.0.9" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11dcc4ca08d1ebfc1f70e7a40033483219f77909a7ef6c4af302a14aa97da3d2" +checksum = "a65d56c50277b8523f6a77f5643a2cc17d58565a411fa1893b761ebaef785f4e" [[package]] name = "hyperlane_techempower" version = "0.0.1" dependencies = [ - "chrono", "hyperlane", "rand 0.9.0", "serde", "sqlx", ] -[[package]] -name = "iana-time-zone" -version = "0.1.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - [[package]] name = "icu_collections" version = "1.5.0" @@ -1368,12 +1301,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "rustversion" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" - [[package]] name = "ryu" version = "1.0.20" @@ -1473,12 +1400,6 @@ dependencies = [ "digest", ] -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - [[package]] name = "signal-hook-registry" version = "1.4.2" @@ -2063,7 +1984,6 @@ checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", - "rustversion", "wasm-bindgen-macro", ] @@ -2123,21 +2043,6 @@ dependencies = [ "wasite", ] -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-link" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" - [[package]] name = "windows-sys" version = "0.48.0" diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 6c418dbfe6d..8b909a01df4 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,9 +18,8 @@ exclude = [ ] [dependencies] -hyperlane = "4.33.0" +hyperlane = "4.36.1" rand = "0.9.0" -chrono = "0.4.40" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 3d5370476d0..1a3f1ab7b0c 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -8,7 +8,6 @@ pub(crate) mod server; pub(crate) mod r#type; pub(crate) mod utils; -pub(crate) use chrono::{DateTime, Utc}; pub(crate) use constant::*; pub(crate) use db::*; pub(crate) use hyperlane::{ @@ -32,7 +31,7 @@ pub(crate) use sqlx::{ postgres::{PgPoolOptions, PgRow}, Pool, Postgres, Row, }; -pub(crate) use std::{error::Error, fmt, sync::Arc, time::SystemTime}; +pub(crate) use std::{error::Error, fmt, sync::Arc}; pub(crate) use utils::*; #[tokio::main] diff --git a/frameworks/Rust/hyperlane/src/request_middleware.rs b/frameworks/Rust/hyperlane/src/request_middleware.rs index e609a8f3821..fe810b0a1d5 100644 --- a/frameworks/Rust/hyperlane/src/request_middleware.rs +++ b/frameworks/Rust/hyperlane/src/request_middleware.rs @@ -9,7 +9,7 @@ pub async fn request(controller_data: ControllerData) { .await .set_response_header(SERVER, HYPERLANE) .await - .set_response_header(DATE, generate_rfc1123_timestamp()) + .set_response_header(DATE, current_date_gmt()) .await .set_response_status_code(200) .await; diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 322a72cea76..657a240e763 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -67,7 +67,7 @@ pub async fn fortunes(controller_data: ControllerData) { fortunes_list.sort_by(|it, next| it.message.cmp(&next.message)); let res: String = FortunesTemplate::new(fortunes_list).to_string(); controller_data - .set_response_header(CONTENT_TYPE, format!("{}; {}", TEXT_HTML, CHARSET_UTF_8)) + .set_response_header(CONTENT_TYPE, content_type_charset(TEXT_HTML, UTF8)) .await .set_response_body(res) .await; diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index fb89ced4c7e..91dc1aeea08 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -7,7 +7,8 @@ pub async fn run_server() { server.port(8080).await; server.log_dir("./logs").await; server.log_interval_millis(1_000_000_000).await; - // server.disable_print().await; + server.disable_inner_log().await; + server.disable_inner_print().await; server.route("/json", json).await; server.route("/plaintext", plaintext).await; server.route("/db", db).await; diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index c63e0ddb3c6..8c9c080f9f2 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -1,11 +1,3 @@ -use crate::*; - -#[inline] -pub fn generate_rfc1123_timestamp() -> String { - let now: DateTime = SystemTime::now().into(); - now.format("%a, %d %b %Y %H:%M:%S GMT").to_string() -} - #[inline] pub fn escape_html(input: &str) -> String { let mut result: String = String::new(); From 8bf1c060a1e11ead8e884ddc728b3bded2b8feb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 12:43:07 +0800 Subject: [PATCH 050/128] docs: readme --- frameworks/Rust/hyperlane/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frameworks/Rust/hyperlane/README.md b/frameworks/Rust/hyperlane/README.md index 362846e9137..20ab5eec3c4 100644 --- a/frameworks/Rust/hyperlane/README.md +++ b/frameworks/Rust/hyperlane/README.md @@ -20,15 +20,15 @@ PostgreSQL. ### Test 3: Multi Row Query - http://localhost:8080/queries?q=20 + http://localhost:8080/query?q=20 ### Test 4: Fortunes (Template rendering) - http://localhost:8080/fortune + http://localhost:8080/fortunes ### Test 5: Update Query - http://localhost:8080/updates?q=20 + http://localhost:8080/upda?q=20 ### Test 6: Plaintext @@ -36,4 +36,4 @@ PostgreSQL. ### Test 7: Caching - http://localhost:8080/cached-queries?c=20 + http://localhost:8080/cached-quer?c=20 From c347a8c22d64f8f33c667ba858831bcba559e0be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 12:47:56 +0800 Subject: [PATCH 051/128] feat: remove dyn --- frameworks/Rust/hyperlane/src/db.rs | 12 ++++++------ frameworks/Rust/hyperlane/src/main.rs | 2 +- frameworks/Rust/hyperlane/src/route.rs | 9 ++++----- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 4b068a3b2e1..137fc5ea695 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -158,7 +158,7 @@ pub async fn init_db() { } #[inline] -pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result> { +pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow { let random_id: i32 = rand::rng().random_range(1..=RANDOM_MAX); let sql: String = format!( "SELECT id, randomNumber FROM {} WHERE id = {}", @@ -167,19 +167,19 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> Result Result, Box> { +pub async fn update_world_rows(limit: Queries) -> Vec { let db_pool: DbPoolConnection = get_db_connection().await; let (sql, data) = get_update_data(limit).await; spawn(async move { let _ = sqlx::query(&sql).execute(&db_pool).await; }); - Ok(data) + data } #[inline] @@ -197,7 +197,7 @@ pub async fn all_world_row() -> Vec { pub async fn get_some_row_id(limit: Queries, db_pool: &DbPoolConnection) -> Vec { let mut res: Vec = Vec::with_capacity(limit as usize); for _ in 0..limit { - let tem: QueryRow = random_world_row(db_pool).await.unwrap_or_default(); + let tem: QueryRow = random_world_row(db_pool).await; res.push(tem); } res diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 1a3f1ab7b0c..5e5c0d19660 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -31,7 +31,7 @@ pub(crate) use sqlx::{ postgres::{PgPoolOptions, PgRow}, Pool, Postgres, Row, }; -pub(crate) use std::{error::Error, fmt, sync::Arc}; +pub(crate) use std::{fmt, sync::Arc}; pub(crate) use utils::*; #[tokio::main] diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 657a240e763..c34ea5420a4 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -22,7 +22,7 @@ pub async fn plaintext(controller_data: ControllerData) { #[inline] pub async fn db(controller_data: ControllerData) { let db_connection: DbPoolConnection = get_db_connection().await; - let query_row: QueryRow = random_world_row(&db_connection).await.unwrap(); + let query_row: QueryRow = random_world_row(&db_connection).await; let _ = controller_data .set_response_body(serde_json::to_string(&query_row).unwrap_or_default()) .await; @@ -40,9 +40,8 @@ pub async fn queries(controller_data: ControllerData) { let mut data: Vec = Vec::with_capacity(queries as usize); let db_pool: DbPoolConnection = get_db_connection().await; for _ in 0..queries { - let _ = random_world_row(&db_pool).await.map(|row| { - data.push(row); - }); + let row: QueryRow = random_world_row(&db_pool).await; + data.push(row); } let _ = controller_data .set_response_body(serde_json::to_string(&data).unwrap_or_default()) @@ -82,7 +81,7 @@ pub async fn updates(controller_data: ControllerData) { .unwrap_or_default() .min(ROW_LIMIT as Queries) .max(1); - let res: Vec = update_world_rows(queries).await.unwrap(); + let res: Vec = update_world_rows(queries).await; let _ = controller_data .set_response_body(serde_json::to_string(&res).unwrap_or_default()) .await; From be44a7f597c0b6f58bcf803b83077d0b78a46075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 13:23:06 +0800 Subject: [PATCH 052/128] docs: readme --- frameworks/Rust/may-minihttp/Cargo.lock | 1381 ----------------------- frameworks/Rust/may-minihttp/README.md | 2 +- 2 files changed, 1 insertion(+), 1382 deletions(-) delete mode 100644 frameworks/Rust/may-minihttp/Cargo.lock diff --git a/frameworks/Rust/may-minihttp/Cargo.lock b/frameworks/Rust/may-minihttp/Cargo.lock deleted file mode 100644 index bf333f4ab37..00000000000 --- a/frameworks/Rust/may-minihttp/Cargo.lock +++ /dev/null @@ -1,1381 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "annotate-snippets" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccaf7e9dfbb6ab22c82e473cd1a8a7bd313c19a5b7e40970f3d89ef5a5c9e81e" -dependencies = [ - "unicode-width", - "yansi-term", -] - -[[package]] -name = "atoi" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" -dependencies = [ - "num-traits", -] - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "bitflags" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "buf-min" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22d5698cf6842742ed64805705798f8b351fff53fa546fd45c52184bee58dc90" -dependencies = [ - "bytes", -] - -[[package]] -name = "bumpalo" -version = "3.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" - -[[package]] -name = "cc" -version = "1.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "chrono" -version = "0.4.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "wasm-bindgen", - "windows-link", -] - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "core_affinity" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a034b3a7b624016c6e13f5df875747cc25f884156aad2abd12b6c46797971342" -dependencies = [ - "libc", - "num_cpus", - "winapi", -] - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crossbeam" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "derive_more" -version = "0.99.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version", - "syn 2.0.100", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] - -[[package]] -name = "dtoa" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" - -[[package]] -name = "fallible-iterator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" - -[[package]] -name = "generator" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" -dependencies = [ - "cfg-if", - "libc", - "log", - "rustversion", - "windows", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" -dependencies = [ - "cfg-if", - "libc", - "wasi", - "windows-targets", -] - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - -[[package]] -name = "httparse" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "iana-time-zone" -version = "0.1.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core 0.52.0", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "itoa" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - -[[package]] -name = "js-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.171" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" - -[[package]] -name = "libmimalloc-sys" -version = "0.1.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23aa6811d3bd4deb8a84dde645f943476d13b248d818edcf8ce0b2f37f036b44" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" - -[[package]] -name = "may" -version = "0.3.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a809e2d6bacd818a8d78b2d43e512a29029d875338a820df5e4311daf824078b" -dependencies = [ - "cfg-if", - "core_affinity", - "crossbeam", - "generator", - "libc", - "log", - "may_queue", - "nix", - "num_cpus", - "parking_lot", - "rustversion", - "smallvec", - "socket2", - "windows-sys 0.59.0", -] - -[[package]] -name = "may-minihttp" -version = "0.1.0" -dependencies = [ - "atoi", - "buf-min", - "bytes", - "log", - "may", - "may_minihttp", - "may_postgres", - "mimalloc", - "nanorand", - "num_cpus", - "smallvec", - "yarte", -] - -[[package]] -name = "may_minihttp" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "710fda59b93aa204a26bfc7ba9c349d90035bd1b30df10df46d7c552d107291e" -dependencies = [ - "bytes", - "httparse", - "httpdate", - "itoa", - "log", - "may", - "once_cell", -] - -[[package]] -name = "may_postgres" -version = "0.1.0" -source = "git+https://github.com/Xudong-Huang/may_postgres.git?rev=917ed78#917ed788c31825b79d38e15ad8742369bec89761" -dependencies = [ - "byteorder", - "bytes", - "crossbeam", - "fallible-iterator", - "log", - "may", - "percent-encoding", - "phf", - "postgres-protocol", - "postgres-types", - "smallvec", - "spin", -] - -[[package]] -name = "may_queue" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7026ba39000f40c16ba8ea206967380471726dd26fc34f51491b47fba9d84a94" -dependencies = [ - "crossbeam-utils", - "rustversion", - "smallvec", -] - -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "mimalloc" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68914350ae34959d83f732418d51e2427a794055d0b9529f48259ac07af65633" -dependencies = [ - "libmimalloc-sys", -] - -[[package]] -name = "nanorand" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" - -[[package]] -name = "nix" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" -dependencies = [ - "bitflags", - "cfg-if", - "cfg_aliases", - "libc", - "memoffset", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "once_cell" -version = "1.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "phf" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" -dependencies = [ - "phf_shared", -] - -[[package]] -name = "phf_shared" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" -dependencies = [ - "siphasher", -] - -[[package]] -name = "postgres-protocol" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76ff0abab4a9b844b93ef7b81f1efc0a366062aaef2cd702c76256b5dc075c54" -dependencies = [ - "base64", - "byteorder", - "bytes", - "fallible-iterator", - "hmac", - "md-5", - "memchr", - "rand", - "sha2", - "stringprep", -] - -[[package]] -name = "postgres-types" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613283563cd90e1dfc3518d548caee47e0e725455ed619881f5cf21f36de4b48" -dependencies = [ - "bytes", - "fallible-iterator", - "postgres-protocol", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "prettyplease" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" -dependencies = [ - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "proc-macro2" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" -dependencies = [ - "rand_chacha", - "rand_core", - "zerocopy", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom", -] - -[[package]] -name = "redox_syscall" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" -dependencies = [ - "bitflags", -] - -[[package]] -name = "regex" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - -[[package]] -name = "rustversion" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" - -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "semver" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" - -[[package]] -name = "serde" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "serde_json" -version = "1.0.140" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "siphasher" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" - -[[package]] -name = "smallvec" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "stringprep" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" -dependencies = [ - "unicode-bidi", - "unicode-normalization", - "unicode-properties", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tinyvec" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - -[[package]] -name = "unicode-bidi" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" - -[[package]] -name = "unicode-ident" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" - -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-properties" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" - -[[package]] -name = "unicode-width" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "v_eval" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd8b599d797eb038d0dde9a3860aacb6bbba3bffa4ac64f807c8673820cc9d9" -dependencies = [ - "regex", - "syn 1.0.109", -] - -[[package]] -name = "v_htmlescape" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c" -dependencies = [ - "buf-min", -] - -[[package]] -name = "v_jsonescape" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8219cc464ba10c48c3231a6871f11d26d831c5c45a47467eea387ea7bb10e8" -dependencies = [ - "buf-min", -] - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wasi" -version = "0.13.3+wasi-0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" -dependencies = [ - "wit-bindgen-rt", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.100", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" -dependencies = [ - "windows-core 0.58.0", - "windows-targets", -] - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-core" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-result", - "windows-strings", - "windows-targets", -] - -[[package]] -name = "windows-implement" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "windows-interface" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "windows-link" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" - -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result", - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "wit-bindgen-rt" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" -dependencies = [ - "bitflags", -] - -[[package]] -name = "yansi-term" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe5c30ade05e61656247b2e334a031dfd0cc466fadef865bdcdea8d537951bf1" -dependencies = [ - "winapi", -] - -[[package]] -name = "yarte" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfce1df93f3b16e5272221a559e60bbbaaa71dbc042a43996d223e51a690aab2" -dependencies = [ - "buf-min", - "yarte_derive", - "yarte_helpers", -] - -[[package]] -name = "yarte_codegen" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a79312078b97a195de91a8c1457c2e0d7abd97e6e605f3cdeb01b3c105d2cff" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "yarte_helpers", - "yarte_hir", -] - -[[package]] -name = "yarte_derive" -version = "0.15.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b296edd7e1a81717b6f794baa2de8dfe89646050847161550b2d963b3ca6fe80" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "v_jsonescape", - "yarte_codegen", - "yarte_helpers", - "yarte_hir", - "yarte_parser", -] - -[[package]] -name = "yarte_helpers" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0d1076f8cee9541ea5ffbecd9102f751252c91f085e7d30a18a3ce805ebd3ee" -dependencies = [ - "buf-min", - "chrono", - "dtoa", - "itoa", - "prettyplease", - "ryu", - "serde", - "serde_json", - "syn 1.0.109", - "toml", - "v_htmlescape", - "v_jsonescape", -] - -[[package]] -name = "yarte_hir" -version = "0.15.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee42d2f704a3b1d8bc111d47a705d1302a0943d85e4c230f4e8300ee0dde4a6" -dependencies = [ - "derive_more", - "proc-macro2", - "quote", - "syn 1.0.109", - "v_eval", - "v_htmlescape", - "yarte_helpers", - "yarte_parser", -] - -[[package]] -name = "yarte_parser" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "538f72049cf7104e12d5c444048d112cb8fc788a31308afd912442a381ba860c" -dependencies = [ - "annotate-snippets", - "derive_more", - "proc-macro2", - "quote", - "serde", - "syn 1.0.109", - "unicode-xid", - "yarte_helpers", -] - -[[package]] -name = "zerocopy" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] diff --git a/frameworks/Rust/may-minihttp/README.md b/frameworks/Rust/may-minihttp/README.md index a138a267303..e202bf0538e 100644 --- a/frameworks/Rust/may-minihttp/README.md +++ b/frameworks/Rust/may-minihttp/README.md @@ -10,7 +10,7 @@ PostgreSQL. ## Test URLs -### Test 1: JSON Encoding +### Test 1: JSON Encoding http://localhost:8080/json From b6ef7b34b8d9220167efad3a843f9868090f152e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 13:24:30 +0800 Subject: [PATCH 053/128] feat: lock --- frameworks/Rust/hyperlane/Cargo.lock | 2332 -------------------------- 1 file changed, 2332 deletions(-) delete mode 100644 frameworks/Rust/hyperlane/Cargo.lock diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock deleted file mode 100644 index a678ccd5b07..00000000000 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ /dev/null @@ -1,2332 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy 0.7.35", -] - -[[package]] -name = "alloc-no-stdlib" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" - -[[package]] -name = "alloc-stdlib" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" -dependencies = [ - "alloc-no-stdlib", -] - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - -[[package]] -name = "async-func" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8882ceb09bc57f9b7a52d48cffab866310aeeb6a5aa1c9420640e7689660c9ee" -dependencies = [ - "tokio", -] - -[[package]] -name = "atoi" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" -dependencies = [ - "num-traits", -] - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" - -[[package]] -name = "bitflags" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" -dependencies = [ - "serde", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "brotli" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli-decompressor" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", -] - -[[package]] -name = "bumpalo" -version = "3.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "clonelicious" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c61986b9f0347d401ef41468e7aadba2ab6dfc2547df1862f2563250fbfa8d3" - -[[package]] -name = "color-output" -version = "6.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c85488dab2761e7883ac16c88819eefb468973b57591ef3c2baa743c35004ff" -dependencies = [ - "hyperlane-time", -] - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crc" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" -dependencies = [ - "serde", -] - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "etcetera" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" -dependencies = [ - "cfg-if", - "home", - "windows-sys 0.48.0", -] - -[[package]] -name = "event-listener" -version = "5.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "file-operation" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaba2fa080e689c4ec9a0666c5b7eb074182fdba13a34e97b19b56ac2a855556" -dependencies = [ - "tokio", -] - -[[package]] -name = "flate2" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "float-cmp" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8" -dependencies = [ - "num-traits", -] - -[[package]] -name = "flume" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" -dependencies = [ - "futures-core", - "futures-sink", - "spin", -] - -[[package]] -name = "foldhash" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-intrusive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" -dependencies = [ - "futures-core", - "lock_api", - "parking_lot", -] - -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.13.3+wasi-0.2.2", - "windows-targets 0.52.6", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "halfbrown" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f" -dependencies = [ - "hashbrown 0.14.5", - "serde", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash", -] - -[[package]] -name = "hashlink" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" -dependencies = [ - "hashbrown 0.15.2", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - -[[package]] -name = "home" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "http-compress" -version = "2.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98b1cde57d40ec354eb0d1f7fea31e5d621e2bfbc9ec087f6d06944b5ac1ca3a" -dependencies = [ - "brotli", - "flate2", - "http-constant", -] - -[[package]] -name = "http-constant" -version = "1.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b282f8cb8ff76d9ad521f4e159143bfe2639a03e7d91871f740b716f28c608" - -[[package]] -name = "http-type" -version = "3.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac0f534e18616d3a80a032fed278879bfd663d071282377ce66c55ebd7eef09" -dependencies = [ - "hex", - "http-compress", - "http-constant", - "lombok-macros", - "serde", - "serde-xml-rs", - "serde_json", - "serde_urlencoded", - "tokio", - "url", -] - -[[package]] -name = "hyperlane" -version = "4.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678154dd86505451acd8d9a3faea8edbc20e61f1e2024d8b26d40d8b59b886eb" -dependencies = [ - "async-func", - "clonelicious", - "color-output", - "file-operation", - "futures", - "http-compress", - "http-type", - "hyperlane-log", - "hyperlane-time", - "lombok-macros", - "once_cell", - "recoverable-spawn", - "recoverable-thread-pool", - "serde", - "serde_json", - "server-manager", - "simd-json", - "std-macro-extensions", - "tokio", -] - -[[package]] -name = "hyperlane-log" -version = "1.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e4ac75392e2efe8ca225dd9dbb3a027b861ea20c483a7763ee736edabe10cca" -dependencies = [ - "file-operation", - "hyperlane-time", - "lombok-macros", - "once_cell", - "recoverable-spawn", -] - -[[package]] -name = "hyperlane-time" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a65d56c50277b8523f6a77f5643a2cc17d58565a411fa1893b761ebaef785f4e" - -[[package]] -name = "hyperlane_techempower" -version = "0.0.1" -dependencies = [ - "hyperlane", - "rand 0.9.0", - "serde", - "sqlx", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" -dependencies = [ - "equivalent", - "hashbrown 0.15.2", -] - -[[package]] -name = "itoa" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - -[[package]] -name = "js-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] - -[[package]] -name = "libc" -version = "0.2.171" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" - -[[package]] -name = "libm" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" - -[[package]] -name = "libsqlite3-sys" -version = "0.30.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" -dependencies = [ - "pkg-config", - "vcpkg", -] - -[[package]] -name = "linux-raw-sys" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" - -[[package]] -name = "litemap" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" - -[[package]] -name = "lombok-macros" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe4fc0110b8bdb29b2423a2be59fa7b9b3e0e1b225553514895564420887bc5" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "miniz_oxide" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", -] - -[[package]] -name = "num-bigint-dig" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" -dependencies = [ - "byteorder", - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.5", - "smallvec", - "zeroize", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" - -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der", - "pkcs8", - "spki", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy 0.8.23", -] - -[[package]] -name = "proc-macro2" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", - "zerocopy 0.8.23", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.15", -] - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.1", -] - -[[package]] -name = "recoverable-spawn" -version = "3.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5081593fb6a36af3e9ca8c4f23735f9d454a252cba0629509baa3947983846d" -dependencies = [ - "once_cell", - "tokio", -] - -[[package]] -name = "recoverable-thread-pool" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4190261c8a4823ceaf4b9cd68bf28deca98aa5697d2e1ec66e8053dac2a817fa" -dependencies = [ - "lombok-macros", - "recoverable-spawn", -] - -[[package]] -name = "redox_syscall" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" -dependencies = [ - "bitflags", -] - -[[package]] -name = "ref-cast" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "rsa" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" -dependencies = [ - "const-oid", - "digest", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8", - "rand_core 0.6.4", - "signature", - "spki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "serde" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-xml-rs" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3aa78ecda1ebc9ec9847d5d3aba7d618823446a049ba2491940506da6e2782" -dependencies = [ - "log", - "serde", - "thiserror 1.0.69", - "xml-rs", -] - -[[package]] -name = "serde_derive" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.140" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "server-manager" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5144bc130554928fb304af2e7590742db173a40f82672613dc293f7567e8730e" -dependencies = [ - "tokio", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core 0.6.4", -] - -[[package]] -name = "simd-json" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2bcf6c6e164e81bc7a5d49fc6988b3d515d9e8c07457d7b74ffb9324b9cd40" -dependencies = [ - "getrandom 0.2.15", - "halfbrown", - "ref-cast", - "serde", - "serde_json", - "simdutf8", - "value-trait", -] - -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" -dependencies = [ - "serde", -] - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "sqlx" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f" -dependencies = [ - "sqlx-core", - "sqlx-macros", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", -] - -[[package]] -name = "sqlx-core" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0" -dependencies = [ - "bytes", - "crc", - "crossbeam-queue", - "either", - "event-listener", - "futures-core", - "futures-intrusive", - "futures-io", - "futures-util", - "hashbrown 0.15.2", - "hashlink", - "indexmap", - "log", - "memchr", - "once_cell", - "percent-encoding", - "serde", - "serde_json", - "sha2", - "smallvec", - "thiserror 2.0.12", - "tokio", - "tokio-stream", - "tracing", - "url", -] - -[[package]] -name = "sqlx-macros" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310" -dependencies = [ - "proc-macro2", - "quote", - "sqlx-core", - "sqlx-macros-core", - "syn", -] - -[[package]] -name = "sqlx-macros-core" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad" -dependencies = [ - "dotenvy", - "either", - "heck", - "hex", - "once_cell", - "proc-macro2", - "quote", - "serde", - "serde_json", - "sha2", - "sqlx-core", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", - "syn", - "tempfile", - "tokio", - "url", -] - -[[package]] -name = "sqlx-mysql" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233" -dependencies = [ - "atoi", - "base64", - "bitflags", - "byteorder", - "bytes", - "crc", - "digest", - "dotenvy", - "either", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "generic-array", - "hex", - "hkdf", - "hmac", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "percent-encoding", - "rand 0.8.5", - "rsa", - "serde", - "sha1", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror 2.0.12", - "tracing", - "whoami", -] - -[[package]] -name = "sqlx-postgres" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613" -dependencies = [ - "atoi", - "base64", - "bitflags", - "byteorder", - "crc", - "dotenvy", - "etcetera", - "futures-channel", - "futures-core", - "futures-util", - "hex", - "hkdf", - "hmac", - "home", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "rand 0.8.5", - "serde", - "serde_json", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror 2.0.12", - "tracing", - "whoami", -] - -[[package]] -name = "sqlx-sqlite" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540" -dependencies = [ - "atoi", - "flume", - "futures-channel", - "futures-core", - "futures-executor", - "futures-intrusive", - "futures-util", - "libsqlite3-sys", - "log", - "percent-encoding", - "serde", - "serde_urlencoded", - "sqlx-core", - "tracing", - "url", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "std-macro-extensions" -version = "0.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b44c771c1591df90e3b49f618362dc1c431a8df6a7a6cc69dbe00757b158522" - -[[package]] -name = "stringprep" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" -dependencies = [ - "unicode-bidi", - "unicode-normalization", - "unicode-properties", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "2.0.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488960f40a3fd53d72c2a29a58722561dee8afdd175bd88e3db4677d7b2ba600" -dependencies = [ - "fastrand", - "getrandom 0.3.1", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" -dependencies = [ - "thiserror-impl 2.0.12", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.44.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-macros" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tokio-stream" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - -[[package]] -name = "unicode-bidi" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" - -[[package]] -name = "unicode-ident" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" - -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-properties" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "value-trait" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9170e001f458781e92711d2ad666110f153e4e50bfd5cbd02db6547625714187" -dependencies = [ - "float-cmp", - "halfbrown", - "itoa", - "ryu", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasi" -version = "0.13.3+wasi-0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" -dependencies = [ - "wit-bindgen-rt", -] - -[[package]] -name = "wasite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" - -[[package]] -name = "wasm-bindgen" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "whoami" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" -dependencies = [ - "redox_syscall", - "wasite", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "wit-bindgen-rt" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "xml-rs" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" -dependencies = [ - "zerocopy-derive 0.8.23", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] From c90214f2b51ceb6069dc457946f4ccf319d01c9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 13:40:08 +0800 Subject: [PATCH 054/128] feat: lock --- frameworks/Rust/hyperlane/Cargo.lock | 2332 ++++++++++++++++++++++++++ frameworks/Rust/hyperlane/src/db.rs | 13 +- 2 files changed, 2344 insertions(+), 1 deletion(-) create mode 100644 frameworks/Rust/hyperlane/Cargo.lock diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock new file mode 100644 index 00000000000..6a0b9a5ebb9 --- /dev/null +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -0,0 +1,2332 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy 0.7.35", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "async-func" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8882ceb09bc57f9b7a52d48cffab866310aeeb6a5aa1c9420640e7689660c9ee" +dependencies = [ + "tokio", +] + +[[package]] +name = "atoi" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" +dependencies = [ + "num-traits", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +dependencies = [ + "serde", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "brotli" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bumpalo" +version = "3.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clonelicious" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c61986b9f0347d401ef41468e7aadba2ab6dfc2547df1862f2563250fbfa8d3" + +[[package]] +name = "color-output" +version = "6.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c85488dab2761e7883ac16c88819eefb468973b57591ef3c2baa743c35004ff" +dependencies = [ + "hyperlane-time", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +dependencies = [ + "serde", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if", + "home", + "windows-sys 0.48.0", +] + +[[package]] +name = "event-listener" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "file-operation" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaba2fa080e689c4ec9a0666c5b7eb074182fdba13a34e97b19b56ac2a855556" +dependencies = [ + "tokio", +] + +[[package]] +name = "flate2" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "float-cmp" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8" +dependencies = [ + "num-traits", +] + +[[package]] +name = "flume" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" +dependencies = [ + "futures-core", + "futures-sink", + "spin", +] + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-intrusive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" +dependencies = [ + "futures-core", + "lock_api", + "parking_lot", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "halfbrown" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f" +dependencies = [ + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashlink" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" +dependencies = [ + "hashbrown 0.15.2", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "home" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "http-compress" +version = "2.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98b1cde57d40ec354eb0d1f7fea31e5d621e2bfbc9ec087f6d06944b5ac1ca3a" +dependencies = [ + "brotli", + "flate2", + "http-constant", +] + +[[package]] +name = "http-constant" +version = "1.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b282f8cb8ff76d9ad521f4e159143bfe2639a03e7d91871f740b716f28c608" + +[[package]] +name = "http-type" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ac0f534e18616d3a80a032fed278879bfd663d071282377ce66c55ebd7eef09" +dependencies = [ + "hex", + "http-compress", + "http-constant", + "lombok-macros", + "serde", + "serde-xml-rs", + "serde_json", + "serde_urlencoded", + "tokio", + "url", +] + +[[package]] +name = "hyperlane" +version = "4.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678154dd86505451acd8d9a3faea8edbc20e61f1e2024d8b26d40d8b59b886eb" +dependencies = [ + "async-func", + "clonelicious", + "color-output", + "file-operation", + "futures", + "http-compress", + "http-type", + "hyperlane-log", + "hyperlane-time", + "lombok-macros", + "once_cell", + "recoverable-spawn", + "recoverable-thread-pool", + "serde", + "serde_json", + "server-manager", + "simd-json", + "std-macro-extensions", + "tokio", +] + +[[package]] +name = "hyperlane-log" +version = "1.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e4ac75392e2efe8ca225dd9dbb3a027b861ea20c483a7763ee736edabe10cca" +dependencies = [ + "file-operation", + "hyperlane-time", + "lombok-macros", + "once_cell", + "recoverable-spawn", +] + +[[package]] +name = "hyperlane-time" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65d56c50277b8523f6a77f5643a2cc17d58565a411fa1893b761ebaef785f4e" + +[[package]] +name = "hyperlane_techempower" +version = "0.0.1" +dependencies = [ + "hyperlane", + "rand 0.9.0", + "serde", + "sqlx", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +dependencies = [ + "equivalent", + "hashbrown 0.15.2", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] + +[[package]] +name = "libc" +version = "0.2.171" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" + +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + +[[package]] +name = "libsqlite3-sys" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" +dependencies = [ + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" + +[[package]] +name = "litemap" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" + +[[package]] +name = "lombok-macros" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe4fc0110b8bdb29b2423a2be59fa7b9b3e0e1b225553514895564420887bc5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "miniz_oxide" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy 0.8.23", +] + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", + "zerocopy 0.8.23", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.1", +] + +[[package]] +name = "recoverable-spawn" +version = "3.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5081593fb6a36af3e9ca8c4f23735f9d454a252cba0629509baa3947983846d" +dependencies = [ + "once_cell", + "tokio", +] + +[[package]] +name = "recoverable-thread-pool" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4190261c8a4823ceaf4b9cd68bf28deca98aa5697d2e1ec66e8053dac2a817fa" +dependencies = [ + "lombok-macros", + "recoverable-spawn", +] + +[[package]] +name = "redox_syscall" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +dependencies = [ + "bitflags", +] + +[[package]] +name = "ref-cast" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "rsa" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "signature", + "spki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustix" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-xml-rs" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb3aa78ecda1ebc9ec9847d5d3aba7d618823446a049ba2491940506da6e2782" +dependencies = [ + "log", + "serde", + "thiserror 1.0.69", + "xml-rs", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "server-manager" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5144bc130554928fb304af2e7590742db173a40f82672613dc293f7567e8730e" +dependencies = [ + "tokio", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-json" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2bcf6c6e164e81bc7a5d49fc6988b3d515d9e8c07457d7b74ffb9324b9cd40" +dependencies = [ + "getrandom 0.2.15", + "halfbrown", + "ref-cast", + "serde", + "serde_json", + "simdutf8", + "value-trait", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +dependencies = [ + "serde", +] + +[[package]] +name = "socket2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "sqlx" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f" +dependencies = [ + "sqlx-core", + "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", +] + +[[package]] +name = "sqlx-core" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0" +dependencies = [ + "bytes", + "crc", + "crossbeam-queue", + "either", + "event-listener", + "futures-core", + "futures-intrusive", + "futures-io", + "futures-util", + "hashbrown 0.15.2", + "hashlink", + "indexmap", + "log", + "memchr", + "once_cell", + "percent-encoding", + "serde", + "serde_json", + "sha2", + "smallvec", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "tracing", + "url", +] + +[[package]] +name = "sqlx-macros" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310" +dependencies = [ + "proc-macro2", + "quote", + "sqlx-core", + "sqlx-macros-core", + "syn", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad" +dependencies = [ + "dotenvy", + "either", + "heck", + "hex", + "once_cell", + "proc-macro2", + "quote", + "serde", + "serde_json", + "sha2", + "sqlx-core", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", + "syn", + "tempfile", + "tokio", + "url", +] + +[[package]] +name = "sqlx-mysql" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233" +dependencies = [ + "atoi", + "base64", + "bitflags", + "byteorder", + "bytes", + "crc", + "digest", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "percent-encoding", + "rand 0.8.5", + "rsa", + "serde", + "sha1", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror 2.0.12", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613" +dependencies = [ + "atoi", + "base64", + "bitflags", + "byteorder", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-util", + "hex", + "hkdf", + "hmac", + "home", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "rand 0.8.5", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror 2.0.12", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540" +dependencies = [ + "atoi", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "serde_urlencoded", + "sqlx-core", + "tracing", + "url", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "std-macro-extensions" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b44c771c1591df90e3b49f618362dc1c431a8df6a7a6cc69dbe00757b158522" + +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tempfile" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488960f40a3fd53d72c2a29a58722561dee8afdd175bd88e3db4677d7b2ba600" +dependencies = [ + "fastrand", + "getrandom 0.3.1", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.44.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-stream" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", +] + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicode-bidi" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "value-trait" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9170e001f458781e92711d2ad666110f153e4e50bfd5cbd02db6547625714187" +dependencies = [ + "float-cmp", + "halfbrown", + "itoa", + "ryu", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "whoami" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" +dependencies = [ + "redox_syscall", + "wasite", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "xml-rs" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" +dependencies = [ + "zerocopy-derive 0.8.23", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 137fc5ea695..529cf3628b2 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -1,8 +1,17 @@ +use std::{time::Duration, u64}; + use crate::*; #[inline] pub async fn get_db_connection() -> DbPoolConnection { - let db_pool: DbPoolConnection = DB.read().await.clone().unwrap(); + if let Some(db_pool) = DB.read().await.clone() { + return db_pool; + }; + let db_pool: DbPoolConnection = connection_db().await; + { + let mut db_pool_lock: RwLockWriteGuard<'_, Option> = DB.write().await; + *db_pool_lock = Some(db_pool.clone()); + } db_pool } @@ -111,6 +120,8 @@ pub async fn connection_db() -> DbPoolConnection { }; let pool: DbPoolConnection = PgPoolOptions::new() .max_connections(1_000) + .max_lifetime(Some(Duration::from_secs(u64::MAX))) + .idle_timeout(None) .connect(db_url) .await .unwrap(); From 5da4ec20998c9e95c797ca8efc7f8cf855685953 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 13:44:28 +0800 Subject: [PATCH 055/128] feat: lock --- frameworks/Rust/hyperlane/src/db.rs | 4 +--- frameworks/Rust/hyperlane/src/main.rs | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 529cf3628b2..6490537286a 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -1,5 +1,3 @@ -use std::{time::Duration, u64}; - use crate::*; #[inline] @@ -120,7 +118,7 @@ pub async fn connection_db() -> DbPoolConnection { }; let pool: DbPoolConnection = PgPoolOptions::new() .max_connections(1_000) - .max_lifetime(Some(Duration::from_secs(u64::MAX))) + .max_lifetime(Some(Duration::from_secs(860_400))) .idle_timeout(None) .connect(db_url) .await diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 5e5c0d19660..9e3364d4556 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -31,7 +31,7 @@ pub(crate) use sqlx::{ postgres::{PgPoolOptions, PgRow}, Pool, Postgres, Row, }; -pub(crate) use std::{fmt, sync::Arc}; +pub(crate) use std::{fmt, sync::Arc, time::Duration}; pub(crate) use utils::*; #[tokio::main] From 908c350afc194ab5a64143792bcb4636390f557a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 13:46:55 +0800 Subject: [PATCH 056/128] feat: lock --- frameworks/Rust/hyperlane/src/db.rs | 5 +++-- frameworks/Rust/hyperlane/src/main.rs | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 6490537286a..b6cdeb70052 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -117,8 +117,9 @@ pub async fn connection_db() -> DbPoolConnection { ), }; let pool: DbPoolConnection = PgPoolOptions::new() - .max_connections(1_000) - .max_lifetime(Some(Duration::from_secs(860_400))) + .min_connections(1_000) + .min_connections(1_000_000) + .max_lifetime(None) .idle_timeout(None) .connect(db_url) .await diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 9e3364d4556..5e5c0d19660 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -31,7 +31,7 @@ pub(crate) use sqlx::{ postgres::{PgPoolOptions, PgRow}, Pool, Postgres, Row, }; -pub(crate) use std::{fmt, sync::Arc, time::Duration}; +pub(crate) use std::{fmt, sync::Arc}; pub(crate) use utils::*; #[tokio::main] From a870482aa2f373573439f2a772899c838db89335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 13:56:44 +0800 Subject: [PATCH 057/128] feat: db pool --- frameworks/Rust/hyperlane/src/db.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index b6cdeb70052..8529b4be2d1 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -117,8 +117,7 @@ pub async fn connection_db() -> DbPoolConnection { ), }; let pool: DbPoolConnection = PgPoolOptions::new() - .min_connections(1_000) - .min_connections(1_000_000) + .min_connections(get_thread_count() as u32) .max_lifetime(None) .idle_timeout(None) .connect(db_url) From 7f6484c8f4181742a2529896d4543f1cdbaa20b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 13:58:47 +0800 Subject: [PATCH 058/128] feat: db pool --- frameworks/Rust/hyperlane/src/db.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 8529b4be2d1..e196afa0641 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -116,8 +116,9 @@ pub async fn connection_db() -> DbPoolConnection { DATABASE_NAME ), }; + let pool_size: u32 = (get_thread_count() << 2).min(100) as u32; let pool: DbPoolConnection = PgPoolOptions::new() - .min_connections(get_thread_count() as u32) + .min_connections(pool_size) .max_lifetime(None) .idle_timeout(None) .connect(db_url) From 23ea395b53fe06fffdfb5cb560cb19e2a84783b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 14:14:03 +0800 Subject: [PATCH 059/128] feat: lock --- frameworks/Rust/hyperlane/Cargo.lock | 2332 -------------------------- 1 file changed, 2332 deletions(-) delete mode 100644 frameworks/Rust/hyperlane/Cargo.lock diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock deleted file mode 100644 index 6a0b9a5ebb9..00000000000 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ /dev/null @@ -1,2332 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy 0.7.35", -] - -[[package]] -name = "alloc-no-stdlib" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" - -[[package]] -name = "alloc-stdlib" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" -dependencies = [ - "alloc-no-stdlib", -] - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - -[[package]] -name = "async-func" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8882ceb09bc57f9b7a52d48cffab866310aeeb6a5aa1c9420640e7689660c9ee" -dependencies = [ - "tokio", -] - -[[package]] -name = "atoi" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" -dependencies = [ - "num-traits", -] - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" - -[[package]] -name = "bitflags" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" -dependencies = [ - "serde", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "brotli" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli-decompressor" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", -] - -[[package]] -name = "bumpalo" -version = "3.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "clonelicious" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c61986b9f0347d401ef41468e7aadba2ab6dfc2547df1862f2563250fbfa8d3" - -[[package]] -name = "color-output" -version = "6.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c85488dab2761e7883ac16c88819eefb468973b57591ef3c2baa743c35004ff" -dependencies = [ - "hyperlane-time", -] - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crc" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" -dependencies = [ - "serde", -] - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "etcetera" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" -dependencies = [ - "cfg-if", - "home", - "windows-sys 0.48.0", -] - -[[package]] -name = "event-listener" -version = "5.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "file-operation" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaba2fa080e689c4ec9a0666c5b7eb074182fdba13a34e97b19b56ac2a855556" -dependencies = [ - "tokio", -] - -[[package]] -name = "flate2" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "float-cmp" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8" -dependencies = [ - "num-traits", -] - -[[package]] -name = "flume" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" -dependencies = [ - "futures-core", - "futures-sink", - "spin", -] - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-intrusive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" -dependencies = [ - "futures-core", - "lock_api", - "parking_lot", -] - -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.13.3+wasi-0.2.2", - "windows-targets 0.52.6", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "halfbrown" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f" -dependencies = [ - "hashbrown 0.14.5", - "serde", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash", -] - -[[package]] -name = "hashlink" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" -dependencies = [ - "hashbrown 0.15.2", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - -[[package]] -name = "home" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "http-compress" -version = "2.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98b1cde57d40ec354eb0d1f7fea31e5d621e2bfbc9ec087f6d06944b5ac1ca3a" -dependencies = [ - "brotli", - "flate2", - "http-constant", -] - -[[package]] -name = "http-constant" -version = "1.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b282f8cb8ff76d9ad521f4e159143bfe2639a03e7d91871f740b716f28c608" - -[[package]] -name = "http-type" -version = "3.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac0f534e18616d3a80a032fed278879bfd663d071282377ce66c55ebd7eef09" -dependencies = [ - "hex", - "http-compress", - "http-constant", - "lombok-macros", - "serde", - "serde-xml-rs", - "serde_json", - "serde_urlencoded", - "tokio", - "url", -] - -[[package]] -name = "hyperlane" -version = "4.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678154dd86505451acd8d9a3faea8edbc20e61f1e2024d8b26d40d8b59b886eb" -dependencies = [ - "async-func", - "clonelicious", - "color-output", - "file-operation", - "futures", - "http-compress", - "http-type", - "hyperlane-log", - "hyperlane-time", - "lombok-macros", - "once_cell", - "recoverable-spawn", - "recoverable-thread-pool", - "serde", - "serde_json", - "server-manager", - "simd-json", - "std-macro-extensions", - "tokio", -] - -[[package]] -name = "hyperlane-log" -version = "1.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e4ac75392e2efe8ca225dd9dbb3a027b861ea20c483a7763ee736edabe10cca" -dependencies = [ - "file-operation", - "hyperlane-time", - "lombok-macros", - "once_cell", - "recoverable-spawn", -] - -[[package]] -name = "hyperlane-time" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a65d56c50277b8523f6a77f5643a2cc17d58565a411fa1893b761ebaef785f4e" - -[[package]] -name = "hyperlane_techempower" -version = "0.0.1" -dependencies = [ - "hyperlane", - "rand 0.9.0", - "serde", - "sqlx", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" -dependencies = [ - "equivalent", - "hashbrown 0.15.2", -] - -[[package]] -name = "itoa" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - -[[package]] -name = "js-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] - -[[package]] -name = "libc" -version = "0.2.171" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" - -[[package]] -name = "libm" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" - -[[package]] -name = "libsqlite3-sys" -version = "0.30.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" -dependencies = [ - "pkg-config", - "vcpkg", -] - -[[package]] -name = "linux-raw-sys" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" - -[[package]] -name = "litemap" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" - -[[package]] -name = "lombok-macros" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe4fc0110b8bdb29b2423a2be59fa7b9b3e0e1b225553514895564420887bc5" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "miniz_oxide" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", -] - -[[package]] -name = "num-bigint-dig" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" -dependencies = [ - "byteorder", - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.5", - "smallvec", - "zeroize", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" - -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der", - "pkcs8", - "spki", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy 0.8.23", -] - -[[package]] -name = "proc-macro2" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", - "zerocopy 0.8.23", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.15", -] - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.1", -] - -[[package]] -name = "recoverable-spawn" -version = "3.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5081593fb6a36af3e9ca8c4f23735f9d454a252cba0629509baa3947983846d" -dependencies = [ - "once_cell", - "tokio", -] - -[[package]] -name = "recoverable-thread-pool" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4190261c8a4823ceaf4b9cd68bf28deca98aa5697d2e1ec66e8053dac2a817fa" -dependencies = [ - "lombok-macros", - "recoverable-spawn", -] - -[[package]] -name = "redox_syscall" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" -dependencies = [ - "bitflags", -] - -[[package]] -name = "ref-cast" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "rsa" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" -dependencies = [ - "const-oid", - "digest", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8", - "rand_core 0.6.4", - "signature", - "spki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "serde" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-xml-rs" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3aa78ecda1ebc9ec9847d5d3aba7d618823446a049ba2491940506da6e2782" -dependencies = [ - "log", - "serde", - "thiserror 1.0.69", - "xml-rs", -] - -[[package]] -name = "serde_derive" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.140" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "server-manager" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5144bc130554928fb304af2e7590742db173a40f82672613dc293f7567e8730e" -dependencies = [ - "tokio", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core 0.6.4", -] - -[[package]] -name = "simd-json" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2bcf6c6e164e81bc7a5d49fc6988b3d515d9e8c07457d7b74ffb9324b9cd40" -dependencies = [ - "getrandom 0.2.15", - "halfbrown", - "ref-cast", - "serde", - "serde_json", - "simdutf8", - "value-trait", -] - -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" -dependencies = [ - "serde", -] - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "sqlx" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f" -dependencies = [ - "sqlx-core", - "sqlx-macros", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", -] - -[[package]] -name = "sqlx-core" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0" -dependencies = [ - "bytes", - "crc", - "crossbeam-queue", - "either", - "event-listener", - "futures-core", - "futures-intrusive", - "futures-io", - "futures-util", - "hashbrown 0.15.2", - "hashlink", - "indexmap", - "log", - "memchr", - "once_cell", - "percent-encoding", - "serde", - "serde_json", - "sha2", - "smallvec", - "thiserror 2.0.12", - "tokio", - "tokio-stream", - "tracing", - "url", -] - -[[package]] -name = "sqlx-macros" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310" -dependencies = [ - "proc-macro2", - "quote", - "sqlx-core", - "sqlx-macros-core", - "syn", -] - -[[package]] -name = "sqlx-macros-core" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad" -dependencies = [ - "dotenvy", - "either", - "heck", - "hex", - "once_cell", - "proc-macro2", - "quote", - "serde", - "serde_json", - "sha2", - "sqlx-core", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", - "syn", - "tempfile", - "tokio", - "url", -] - -[[package]] -name = "sqlx-mysql" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233" -dependencies = [ - "atoi", - "base64", - "bitflags", - "byteorder", - "bytes", - "crc", - "digest", - "dotenvy", - "either", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "generic-array", - "hex", - "hkdf", - "hmac", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "percent-encoding", - "rand 0.8.5", - "rsa", - "serde", - "sha1", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror 2.0.12", - "tracing", - "whoami", -] - -[[package]] -name = "sqlx-postgres" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613" -dependencies = [ - "atoi", - "base64", - "bitflags", - "byteorder", - "crc", - "dotenvy", - "etcetera", - "futures-channel", - "futures-core", - "futures-util", - "hex", - "hkdf", - "hmac", - "home", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "rand 0.8.5", - "serde", - "serde_json", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror 2.0.12", - "tracing", - "whoami", -] - -[[package]] -name = "sqlx-sqlite" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540" -dependencies = [ - "atoi", - "flume", - "futures-channel", - "futures-core", - "futures-executor", - "futures-intrusive", - "futures-util", - "libsqlite3-sys", - "log", - "percent-encoding", - "serde", - "serde_urlencoded", - "sqlx-core", - "tracing", - "url", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "std-macro-extensions" -version = "0.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b44c771c1591df90e3b49f618362dc1c431a8df6a7a6cc69dbe00757b158522" - -[[package]] -name = "stringprep" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" -dependencies = [ - "unicode-bidi", - "unicode-normalization", - "unicode-properties", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "2.0.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488960f40a3fd53d72c2a29a58722561dee8afdd175bd88e3db4677d7b2ba600" -dependencies = [ - "fastrand", - "getrandom 0.3.1", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" -dependencies = [ - "thiserror-impl 2.0.12", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.44.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-macros" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tokio-stream" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - -[[package]] -name = "unicode-bidi" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" - -[[package]] -name = "unicode-ident" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" - -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-properties" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "value-trait" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9170e001f458781e92711d2ad666110f153e4e50bfd5cbd02db6547625714187" -dependencies = [ - "float-cmp", - "halfbrown", - "itoa", - "ryu", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasi" -version = "0.13.3+wasi-0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" -dependencies = [ - "wit-bindgen-rt", -] - -[[package]] -name = "wasite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" - -[[package]] -name = "wasm-bindgen" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "whoami" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" -dependencies = [ - "redox_syscall", - "wasite", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "wit-bindgen-rt" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "xml-rs" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" -dependencies = [ - "zerocopy-derive 0.8.23", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] From f3de990dd3eab107548a8362e2147265f45b4c5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 18:23:52 +0800 Subject: [PATCH 060/128] feat: lock --- frameworks/Rust/hyperlane/Cargo.lock | 2332 ++++++++++++++++++++++++ frameworks/Rust/hyperlane/src/main.rs | 2 +- frameworks/Rust/hyperlane/src/route.rs | 2 +- 3 files changed, 2334 insertions(+), 2 deletions(-) create mode 100644 frameworks/Rust/hyperlane/Cargo.lock diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock new file mode 100644 index 00000000000..6a0b9a5ebb9 --- /dev/null +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -0,0 +1,2332 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy 0.7.35", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "async-func" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8882ceb09bc57f9b7a52d48cffab866310aeeb6a5aa1c9420640e7689660c9ee" +dependencies = [ + "tokio", +] + +[[package]] +name = "atoi" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" +dependencies = [ + "num-traits", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +dependencies = [ + "serde", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "brotli" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bumpalo" +version = "3.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clonelicious" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c61986b9f0347d401ef41468e7aadba2ab6dfc2547df1862f2563250fbfa8d3" + +[[package]] +name = "color-output" +version = "6.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c85488dab2761e7883ac16c88819eefb468973b57591ef3c2baa743c35004ff" +dependencies = [ + "hyperlane-time", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +dependencies = [ + "serde", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if", + "home", + "windows-sys 0.48.0", +] + +[[package]] +name = "event-listener" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "file-operation" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaba2fa080e689c4ec9a0666c5b7eb074182fdba13a34e97b19b56ac2a855556" +dependencies = [ + "tokio", +] + +[[package]] +name = "flate2" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "float-cmp" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8" +dependencies = [ + "num-traits", +] + +[[package]] +name = "flume" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" +dependencies = [ + "futures-core", + "futures-sink", + "spin", +] + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-intrusive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" +dependencies = [ + "futures-core", + "lock_api", + "parking_lot", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "halfbrown" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f" +dependencies = [ + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashlink" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" +dependencies = [ + "hashbrown 0.15.2", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "home" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "http-compress" +version = "2.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98b1cde57d40ec354eb0d1f7fea31e5d621e2bfbc9ec087f6d06944b5ac1ca3a" +dependencies = [ + "brotli", + "flate2", + "http-constant", +] + +[[package]] +name = "http-constant" +version = "1.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b282f8cb8ff76d9ad521f4e159143bfe2639a03e7d91871f740b716f28c608" + +[[package]] +name = "http-type" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ac0f534e18616d3a80a032fed278879bfd663d071282377ce66c55ebd7eef09" +dependencies = [ + "hex", + "http-compress", + "http-constant", + "lombok-macros", + "serde", + "serde-xml-rs", + "serde_json", + "serde_urlencoded", + "tokio", + "url", +] + +[[package]] +name = "hyperlane" +version = "4.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678154dd86505451acd8d9a3faea8edbc20e61f1e2024d8b26d40d8b59b886eb" +dependencies = [ + "async-func", + "clonelicious", + "color-output", + "file-operation", + "futures", + "http-compress", + "http-type", + "hyperlane-log", + "hyperlane-time", + "lombok-macros", + "once_cell", + "recoverable-spawn", + "recoverable-thread-pool", + "serde", + "serde_json", + "server-manager", + "simd-json", + "std-macro-extensions", + "tokio", +] + +[[package]] +name = "hyperlane-log" +version = "1.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e4ac75392e2efe8ca225dd9dbb3a027b861ea20c483a7763ee736edabe10cca" +dependencies = [ + "file-operation", + "hyperlane-time", + "lombok-macros", + "once_cell", + "recoverable-spawn", +] + +[[package]] +name = "hyperlane-time" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65d56c50277b8523f6a77f5643a2cc17d58565a411fa1893b761ebaef785f4e" + +[[package]] +name = "hyperlane_techempower" +version = "0.0.1" +dependencies = [ + "hyperlane", + "rand 0.9.0", + "serde", + "sqlx", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +dependencies = [ + "equivalent", + "hashbrown 0.15.2", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] + +[[package]] +name = "libc" +version = "0.2.171" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" + +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + +[[package]] +name = "libsqlite3-sys" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" +dependencies = [ + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" + +[[package]] +name = "litemap" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" + +[[package]] +name = "lombok-macros" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe4fc0110b8bdb29b2423a2be59fa7b9b3e0e1b225553514895564420887bc5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "miniz_oxide" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy 0.8.23", +] + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", + "zerocopy 0.8.23", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.1", +] + +[[package]] +name = "recoverable-spawn" +version = "3.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5081593fb6a36af3e9ca8c4f23735f9d454a252cba0629509baa3947983846d" +dependencies = [ + "once_cell", + "tokio", +] + +[[package]] +name = "recoverable-thread-pool" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4190261c8a4823ceaf4b9cd68bf28deca98aa5697d2e1ec66e8053dac2a817fa" +dependencies = [ + "lombok-macros", + "recoverable-spawn", +] + +[[package]] +name = "redox_syscall" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +dependencies = [ + "bitflags", +] + +[[package]] +name = "ref-cast" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "rsa" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "signature", + "spki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustix" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-xml-rs" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb3aa78ecda1ebc9ec9847d5d3aba7d618823446a049ba2491940506da6e2782" +dependencies = [ + "log", + "serde", + "thiserror 1.0.69", + "xml-rs", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "server-manager" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5144bc130554928fb304af2e7590742db173a40f82672613dc293f7567e8730e" +dependencies = [ + "tokio", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-json" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2bcf6c6e164e81bc7a5d49fc6988b3d515d9e8c07457d7b74ffb9324b9cd40" +dependencies = [ + "getrandom 0.2.15", + "halfbrown", + "ref-cast", + "serde", + "serde_json", + "simdutf8", + "value-trait", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +dependencies = [ + "serde", +] + +[[package]] +name = "socket2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "sqlx" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f" +dependencies = [ + "sqlx-core", + "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", +] + +[[package]] +name = "sqlx-core" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0" +dependencies = [ + "bytes", + "crc", + "crossbeam-queue", + "either", + "event-listener", + "futures-core", + "futures-intrusive", + "futures-io", + "futures-util", + "hashbrown 0.15.2", + "hashlink", + "indexmap", + "log", + "memchr", + "once_cell", + "percent-encoding", + "serde", + "serde_json", + "sha2", + "smallvec", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "tracing", + "url", +] + +[[package]] +name = "sqlx-macros" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310" +dependencies = [ + "proc-macro2", + "quote", + "sqlx-core", + "sqlx-macros-core", + "syn", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad" +dependencies = [ + "dotenvy", + "either", + "heck", + "hex", + "once_cell", + "proc-macro2", + "quote", + "serde", + "serde_json", + "sha2", + "sqlx-core", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", + "syn", + "tempfile", + "tokio", + "url", +] + +[[package]] +name = "sqlx-mysql" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233" +dependencies = [ + "atoi", + "base64", + "bitflags", + "byteorder", + "bytes", + "crc", + "digest", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "percent-encoding", + "rand 0.8.5", + "rsa", + "serde", + "sha1", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror 2.0.12", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613" +dependencies = [ + "atoi", + "base64", + "bitflags", + "byteorder", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-util", + "hex", + "hkdf", + "hmac", + "home", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "rand 0.8.5", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror 2.0.12", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540" +dependencies = [ + "atoi", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "serde_urlencoded", + "sqlx-core", + "tracing", + "url", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "std-macro-extensions" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b44c771c1591df90e3b49f618362dc1c431a8df6a7a6cc69dbe00757b158522" + +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tempfile" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488960f40a3fd53d72c2a29a58722561dee8afdd175bd88e3db4677d7b2ba600" +dependencies = [ + "fastrand", + "getrandom 0.3.1", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.44.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-stream" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", +] + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicode-bidi" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "value-trait" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9170e001f458781e92711d2ad666110f153e4e50bfd5cbd02db6547625714187" +dependencies = [ + "float-cmp", + "halfbrown", + "itoa", + "ryu", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "whoami" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" +dependencies = [ + "redox_syscall", + "wasite", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "xml-rs" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" +dependencies = [ + "zerocopy-derive 0.8.23", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 5e5c0d19660..077763cdbf7 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -16,7 +16,7 @@ pub(crate) use hyperlane::{ serde_json::json, tokio::{ spawn, - sync::{RwLock, RwLockWriteGuard}, + sync::{RwLock, RwLockReadGuard, RwLockWriteGuard}, }, *, }; diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index c34ea5420a4..e52db693195 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -97,7 +97,7 @@ pub async fn cached_queries(controller_data: ControllerData) { .min(ROW_LIMIT as Queries) .max(1); let mut res: Vec = Vec::with_capacity(count as usize); - let cache: tokio::sync::RwLockReadGuard<'_, Vec> = CACHE.read().await; + let cache: RwLockReadGuard<'_, Vec> = CACHE.read().await; for i in 0..count { res.push(cache[i as usize].clone()); } From e0ea4358741a8af5eea9b5b8a5a7526b1e6d369c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 20:51:48 +0800 Subject: [PATCH 061/128] feat: db --- frameworks/Rust/hyperlane/src/db.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index e196afa0641..e979d72d890 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -53,7 +53,7 @@ pub async fn insert_records() { .await .unwrap(); let count: i64 = row.get(0); - let limit: i64 = ROW_LIMIT as i64; + let limit: i64 = RANDOM_MAX as i64; if count >= limit { return; } @@ -140,15 +140,18 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec) { let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); let id: i32 = row.id; id_list.push(id); - value_list.push_str(&format!("WHEN {} THEN {} ", id, new_random_number)); + value_list.push_str(&format!( + "WHEN ?::INTEGER {} THEN {} ?::INTEGER ", + id, new_random_number + )); if i > 0 { - id_in_clause.push_str(", "); + id_in_clause.push_str("?::INTEGER,"); } id_in_clause.push_str(&id.to_string()); query_res_list.push(QueryRow::new(id, new_random_number)); } query.push_str(&value_list); - query.push_str(&format!("END WHERE id IN ({})", id_in_clause)); + query.push_str(&format!("END WHERE id IN ({}?::INTEGER)", id_in_clause)); (query, query_res_list) } @@ -175,11 +178,10 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow { TABLE_NAME_WORLD, random_id ); if let Ok(rows) = sqlx::query(&sql).fetch_one(db_pool).await { - let id: i32 = rows.get(KEY_ID); let random_number: i32 = rows.get(KEY_RANDOM_NUMBER); - return QueryRow::new(id, random_number); + return QueryRow::new(random_id, random_number); } - QueryRow::new(1, 1) + return QueryRow::new(random_id, 1); } #[inline] From b0d5b569c0e7c9490633d511482830da96ccdb66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 21:17:19 +0800 Subject: [PATCH 062/128] feat: db --- frameworks/Rust/hyperlane/src/db.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index e979d72d890..3a4d8c8b8f8 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -135,7 +135,7 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec) { let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME_WORLD); let mut id_list: Vec = Vec::with_capacity(limit as usize); let mut value_list: String = String::new(); - let mut id_in_clause: String = String::new(); + let mut id_in_clause: String = String::from("?::INTEGER"); for (i, row) in rows.iter().enumerate() { let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); let id: i32 = row.id; @@ -145,13 +145,12 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec) { id, new_random_number )); if i > 0 { - id_in_clause.push_str("?::INTEGER,"); + id_in_clause.push_str(",?::INTEGER"); } - id_in_clause.push_str(&id.to_string()); query_res_list.push(QueryRow::new(id, new_random_number)); } query.push_str(&value_list); - query.push_str(&format!("END WHERE id IN ({}?::INTEGER)", id_in_clause)); + query.push_str(&format!("END WHERE id IN ({})", id_in_clause)); (query, query_res_list) } From fc640d62950ff7864596715979caa649070e5f1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 21:36:35 +0800 Subject: [PATCH 063/128] feat: db --- frameworks/Rust/hyperlane/src/db.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 3a4d8c8b8f8..8f15c2f86bc 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -132,26 +132,28 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec) { let db_pool: DbPoolConnection = get_db_connection().await; let mut query_res_list: Vec = Vec::with_capacity(limit as usize); let rows: Vec = get_some_row_id(limit, &db_pool).await; - let mut query: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME_WORLD); + let mut sql: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME_WORLD); let mut id_list: Vec = Vec::with_capacity(limit as usize); let mut value_list: String = String::new(); - let mut id_in_clause: String = String::from("?::INTEGER"); + let mut id_in_clause: String = format!("{}::INTEGER", rows[0].id); + let last_idx: usize = rows.len() - 1; for (i, row) in rows.iter().enumerate() { let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); let id: i32 = row.id; id_list.push(id); value_list.push_str(&format!( - "WHEN ?::INTEGER {} THEN {} ?::INTEGER ", + "WHEN {}::INTEGER THEN {}::INTEGER ", id, new_random_number )); - if i > 0 { - id_in_clause.push_str(",?::INTEGER"); + if i < last_idx { + id_in_clause.push_str(&format!(",{}::INTEGER", id.to_string())); } query_res_list.push(QueryRow::new(id, new_random_number)); } - query.push_str(&value_list); - query.push_str(&format!("END WHERE id IN ({})", id_in_clause)); - (query, query_res_list) + sql.push_str(&value_list); + sql.push_str(&format!("END WHERE id IN ({})", id_in_clause)); + print_success!(sql); + (sql, query_res_list) } #[inline] From 15bb467ad8506322279a0ac6a156d674b651c8b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 21:40:32 +0800 Subject: [PATCH 064/128] feat: db --- frameworks/Rust/hyperlane/src/db.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 8f15c2f86bc..4e71ab6bd13 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -152,7 +152,6 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec) { } sql.push_str(&value_list); sql.push_str(&format!("END WHERE id IN ({})", id_in_clause)); - print_success!(sql); (sql, query_res_list) } From 895ef9789b64f2a1f1656259822ba385e65a9f14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 21:52:01 +0800 Subject: [PATCH 065/128] feat: db --- frameworks/Rust/hyperlane/src/db.rs | 32 ++++++++++++--------------- frameworks/Rust/hyperlane/src/main.rs | 4 ++-- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 4e71ab6bd13..faa2752bce3 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -17,7 +17,7 @@ pub async fn get_db_connection() -> DbPoolConnection { #[cfg(feature = "dev")] pub async fn create_batabase() { let db_pool: DbPoolConnection = get_db_connection().await; - let _ = sqlx::query(&format!("CREATE DATABASE {};", DATABASE_NAME)) + let _ = query(&format!("CREATE DATABASE {};", DATABASE_NAME)) .execute(&db_pool) .await; } @@ -26,7 +26,7 @@ pub async fn create_batabase() { #[cfg(feature = "dev")] pub async fn create_table() { let db_pool: DbPoolConnection = get_db_connection().await; - let _ = sqlx::query(&format!( + let _ = query(&format!( "CREATE TABLE IF NOT EXISTS {} ( id SERIAL PRIMARY KEY, randomNumber INT NOT NULL );", @@ -34,7 +34,7 @@ pub async fn create_table() { )) .execute(&db_pool) .await; - let _ = sqlx::query(&format!( + let _ = query(&format!( "CREATE TABLE IF NOT EXISTS {} ( id SERIAL PRIMARY KEY, message VARCHAR NOT NULL );", @@ -45,10 +45,9 @@ pub async fn create_table() { } #[inline] -#[cfg(feature = "dev")] pub async fn insert_records() { let db_pool: DbPoolConnection = get_db_connection().await; - let row: PgRow = sqlx::query(&format!("SELECT COUNT(*) FROM {}", TABLE_NAME_WORLD)) + let row: PgRow = query(&format!("SELECT COUNT(*) FROM {}", TABLE_NAME_WORLD)) .fetch_one(&db_pool) .await .unwrap(); @@ -58,29 +57,29 @@ pub async fn insert_records() { return; } let missing_count: i64 = limit - count; - let mut rng: rand::prelude::ThreadRng = rand::rng(); + let mut rng: ThreadRng = rng(); let mut values: Vec = Vec::new(); for _ in 0..missing_count { let random_number: i32 = rng.random_range(1..=RANDOM_MAX); values.push(format!("(DEFAULT, {})", random_number)); } - let query: String = format!( + let sql: String = format!( "INSERT INTO {} (id, randomNumber) VALUES {}", TABLE_NAME_WORLD, values.join(",") ); - let _ = sqlx::query(&query).execute(&db_pool).await; + let _ = query(&sql).execute(&db_pool).await; let mut values: Vec = Vec::new(); for _ in 0..missing_count { let random_number: String = rng.random_range(1..=RANDOM_MAX).to_string(); values.push(format!("(DEFAULT, {})", random_number)); } - let query: String = format!( + let sql: String = format!( "INSERT INTO {} (id, message) VALUES {}", TABLE_NAME_FORTUNE, values.join(",") ); - let _ = sqlx::query(&query).execute(&db_pool).await; + let _ = query(&sql).execute(&db_pool).await; } #[inline] @@ -91,7 +90,7 @@ pub async fn init_cache() { "SELECT id, randomNumber FROM {} LIMIT {}", TABLE_NAME_WORLD, RANDOM_MAX ); - if let Ok(rows) = sqlx::query(&sql).fetch_all(&db_pool).await { + if let Ok(rows) = query(&sql).fetch_all(&db_pool).await { for row in rows { let id: i32 = row.get(KEY_ID); let random_number: i32 = row.get(KEY_RANDOM_NUMBER); @@ -165,8 +164,8 @@ pub async fn init_db() { { create_batabase().await; create_table().await; - insert_records().await; } + insert_records().await; init_cache().await; } @@ -177,7 +176,7 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow { "SELECT id, randomNumber FROM {} WHERE id = {}", TABLE_NAME_WORLD, random_id ); - if let Ok(rows) = sqlx::query(&sql).fetch_one(db_pool).await { + if let Ok(rows) = query(&sql).fetch_one(db_pool).await { let random_number: i32 = rows.get(KEY_RANDOM_NUMBER); return QueryRow::new(random_id, random_number); } @@ -189,7 +188,7 @@ pub async fn update_world_rows(limit: Queries) -> Vec { let db_pool: DbPoolConnection = get_db_connection().await; let (sql, data) = get_update_data(limit).await; spawn(async move { - let _ = sqlx::query(&sql).execute(&db_pool).await; + let _ = query(&sql).execute(&db_pool).await; }); data } @@ -198,10 +197,7 @@ pub async fn update_world_rows(limit: Queries) -> Vec { pub async fn all_world_row() -> Vec { let db_pool: DbPoolConnection = get_db_connection().await; let sql: String = format!("SELECT id, message FROM {}", TABLE_NAME_FORTUNE); - let res: Vec = sqlx::query(&sql) - .fetch_all(&db_pool) - .await - .unwrap_or_default(); + let res: Vec = query(&sql).fetch_all(&db_pool).await.unwrap_or_default(); return res; } diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 077763cdbf7..a26f5634bbd 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -22,14 +22,14 @@ pub(crate) use hyperlane::{ }; pub(crate) use lazy::*; pub(crate) use r#type::*; -pub(crate) use rand::Rng; +pub(crate) use rand::{prelude::*, rng, Rng}; pub(crate) use request_middleware::*; pub(crate) use response_middleware::*; pub(crate) use route::*; pub(crate) use server::*; pub(crate) use sqlx::{ postgres::{PgPoolOptions, PgRow}, - Pool, Postgres, Row, + *, }; pub(crate) use std::{fmt, sync::Arc}; pub(crate) use utils::*; From 84409134f0c76de275c04e5e653c931de33f97f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 21:59:33 +0800 Subject: [PATCH 066/128] feat: db --- frameworks/Rust/hyperlane/src/db.rs | 8 +++++--- frameworks/Rust/hyperlane/src/main.rs | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index faa2752bce3..324593657ed 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -45,6 +45,7 @@ pub async fn create_table() { } #[inline] +#[cfg(feature = "dev")] pub async fn insert_records() { let db_pool: DbPoolConnection = get_db_connection().await; let row: PgRow = query(&format!("SELECT COUNT(*) FROM {}", TABLE_NAME_WORLD)) @@ -137,7 +138,7 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec) { let mut id_in_clause: String = format!("{}::INTEGER", rows[0].id); let last_idx: usize = rows.len() - 1; for (i, row) in rows.iter().enumerate() { - let new_random_number: i32 = rand::rng().random_range(1..RANDOM_MAX); + let new_random_number: i32 = rng().random_range(1..RANDOM_MAX); let id: i32 = row.id; id_list.push(id); value_list.push_str(&format!( @@ -164,14 +165,15 @@ pub async fn init_db() { { create_batabase().await; create_table().await; + insert_records().await; } - insert_records().await; init_cache().await; } #[inline] pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow { - let random_id: i32 = rand::rng().random_range(1..=RANDOM_MAX); + let random_id: i32 = rng().random_range(1..=RANDOM_MAX); + print_success!(random_id); let sql: String = format!( "SELECT id, randomNumber FROM {} WHERE id = {}", TABLE_NAME_WORLD, random_id diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index a26f5634bbd..dd6eb31d442 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -22,7 +22,7 @@ pub(crate) use hyperlane::{ }; pub(crate) use lazy::*; pub(crate) use r#type::*; -pub(crate) use rand::{prelude::*, rng, Rng}; +pub(crate) use rand::{rng, Rng}; pub(crate) use request_middleware::*; pub(crate) use response_middleware::*; pub(crate) use route::*; From b349b3c7d73affa56b0aa37260453cc9cfe2c667 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 22:09:23 +0800 Subject: [PATCH 067/128] feat: db --- frameworks/Rust/hyperlane/src/db.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 324593657ed..56820002384 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -135,18 +135,15 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec) { let mut sql: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME_WORLD); let mut id_list: Vec = Vec::with_capacity(limit as usize); let mut value_list: String = String::new(); - let mut id_in_clause: String = format!("{}::INTEGER", rows[0].id); + let mut id_in_clause: String = format!("{}", rows[0].id); let last_idx: usize = rows.len() - 1; for (i, row) in rows.iter().enumerate() { let new_random_number: i32 = rng().random_range(1..RANDOM_MAX); let id: i32 = row.id; id_list.push(id); - value_list.push_str(&format!( - "WHEN {}::INTEGER THEN {}::INTEGER ", - id, new_random_number - )); + value_list.push_str(&format!("WHEN {} THEN {} ", id, new_random_number)); if i < last_idx { - id_in_clause.push_str(&format!(",{}::INTEGER", id.to_string())); + id_in_clause.push_str(&format!(",{}", id.to_string())); } query_res_list.push(QueryRow::new(id, new_random_number)); } @@ -173,7 +170,6 @@ pub async fn init_db() { #[inline] pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow { let random_id: i32 = rng().random_range(1..=RANDOM_MAX); - print_success!(random_id); let sql: String = format!( "SELECT id, randomNumber FROM {} WHERE id = {}", TABLE_NAME_WORLD, random_id From b15771ba110323b4cace9fed799a91f3b06db247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 22:18:57 +0800 Subject: [PATCH 068/128] feat: db --- frameworks/Rust/hyperlane/src/db.rs | 4 +--- frameworks/Rust/hyperlane/src/main.rs | 5 +---- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 56820002384..2ef767490c6 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -185,9 +185,7 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow { pub async fn update_world_rows(limit: Queries) -> Vec { let db_pool: DbPoolConnection = get_db_connection().await; let (sql, data) = get_update_data(limit).await; - spawn(async move { - let _ = query(&sql).execute(&db_pool).await; - }); + let _ = query(&sql).execute(&db_pool).await; data } diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index dd6eb31d442..d6c37aefb13 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -14,10 +14,7 @@ pub(crate) use hyperlane::{ once_cell::sync::Lazy, serde::*, serde_json::json, - tokio::{ - spawn, - sync::{RwLock, RwLockReadGuard, RwLockWriteGuard}, - }, + tokio::sync::{RwLock, RwLockReadGuard, RwLockWriteGuard}, *, }; pub(crate) use lazy::*; From 674f5162ea999a14a5e86d302554054b33b14c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 22:38:12 +0800 Subject: [PATCH 069/128] feat: rand --- frameworks/Rust/hyperlane/Cargo.lock | 54 +++++++------------------- frameworks/Rust/hyperlane/Cargo.toml | 2 +- frameworks/Rust/hyperlane/src/db.rs | 14 ++++--- frameworks/Rust/hyperlane/src/main.rs | 2 +- frameworks/Rust/hyperlane/src/utils.rs | 9 +++++ 5 files changed, 34 insertions(+), 47 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index 6a0b9a5ebb9..39217d137bb 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -705,7 +705,7 @@ name = "hyperlane_techempower" version = "0.0.1" dependencies = [ "hyperlane", - "rand 0.9.0", + "nanorand", "serde", "sqlx", ] @@ -981,6 +981,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "nanorand" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" + [[package]] name = "num-bigint-dig" version = "0.8.4" @@ -993,7 +999,7 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "rand 0.8.5", + "rand", "smallvec", "zeroize", ] @@ -1160,19 +1166,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", - "zerocopy 0.8.23", + "rand_chacha", + "rand_core", ] [[package]] @@ -1182,17 +1177,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.3", + "rand_core", ] [[package]] @@ -1204,15 +1189,6 @@ dependencies = [ "getrandom 0.2.15", ] -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.1", -] - [[package]] name = "recoverable-spawn" version = "3.4.3" @@ -1275,7 +1251,7 @@ dependencies = [ "num-traits", "pkcs1", "pkcs8", - "rand_core 0.6.4", + "rand_core", "signature", "spki", "subtle", @@ -1416,7 +1392,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest", - "rand_core 0.6.4", + "rand_core", ] [[package]] @@ -1601,7 +1577,7 @@ dependencies = [ "memchr", "once_cell", "percent-encoding", - "rand 0.8.5", + "rand", "rsa", "serde", "sha1", @@ -1639,7 +1615,7 @@ dependencies = [ "md-5", "memchr", "once_cell", - "rand 0.8.5", + "rand", "serde", "serde_json", "sha2", diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 8b909a01df4..1b27e029116 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -19,7 +19,7 @@ exclude = [ [dependencies] hyperlane = "4.36.1" -rand = "0.9.0" +nanorand = "0.7.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 2ef767490c6..79a16a49068 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -58,10 +58,9 @@ pub async fn insert_records() { return; } let missing_count: i64 = limit - count; - let mut rng: ThreadRng = rng(); let mut values: Vec = Vec::new(); for _ in 0..missing_count { - let random_number: i32 = rng.random_range(1..=RANDOM_MAX); + let random_number: i32 = get_random_id(); values.push(format!("(DEFAULT, {})", random_number)); } let sql: String = format!( @@ -72,7 +71,7 @@ pub async fn insert_records() { let _ = query(&sql).execute(&db_pool).await; let mut values: Vec = Vec::new(); for _ in 0..missing_count { - let random_number: String = rng.random_range(1..=RANDOM_MAX).to_string(); + let random_number: i32 = get_random_id(); values.push(format!("(DEFAULT, {})", random_number)); } let sql: String = format!( @@ -138,7 +137,7 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec) { let mut id_in_clause: String = format!("{}", rows[0].id); let last_idx: usize = rows.len() - 1; for (i, row) in rows.iter().enumerate() { - let new_random_number: i32 = rng().random_range(1..RANDOM_MAX); + let new_random_number: i32 = get_random_id(); let id: i32 = row.id; id_list.push(id); value_list.push_str(&format!("WHEN {} THEN {} ", id, new_random_number)); @@ -148,7 +147,10 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec) { query_res_list.push(QueryRow::new(id, new_random_number)); } sql.push_str(&value_list); - sql.push_str(&format!("END WHERE id IN ({})", id_in_clause)); + sql.push_str(&format!( + "ELSE randomNumber END WHERE id IN ({})", + id_in_clause + )); (sql, query_res_list) } @@ -169,7 +171,7 @@ pub async fn init_db() { #[inline] pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow { - let random_id: i32 = rng().random_range(1..=RANDOM_MAX); + let random_id: i32 = get_random_id(); let sql: String = format!( "SELECT id, randomNumber FROM {} WHERE id = {}", TABLE_NAME_WORLD, random_id diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index d6c37aefb13..2ae68b0098b 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -18,8 +18,8 @@ pub(crate) use hyperlane::{ *, }; pub(crate) use lazy::*; +pub(crate) use nanorand::{Rng, WyRand}; pub(crate) use r#type::*; -pub(crate) use rand::{rng, Rng}; pub(crate) use request_middleware::*; pub(crate) use response_middleware::*; pub(crate) use route::*; diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index 8c9c080f9f2..577585c50b8 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -1,3 +1,5 @@ +use crate::*; + #[inline] pub fn escape_html(input: &str) -> String { let mut result: String = String::new(); @@ -13,3 +15,10 @@ pub fn escape_html(input: &str) -> String { } result } + +#[inline] +pub fn get_random_id() -> i32 { + let mut rand: WyRand = WyRand::new(); + let random_id: i32 = (rand.generate::() % 10_000 + 1) as i32; + random_id +} From 394c2ade95431dcd2ff24e4e55ba6873ddf25ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 23:16:03 +0800 Subject: [PATCH 070/128] feat: rand --- frameworks/Rust/hyperlane/src/db.rs | 23 ++++++++++++++--------- frameworks/Rust/hyperlane/src/type.rs | 10 +++++----- frameworks/Rust/hyperlane/src/utils.rs | 4 ++-- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 79a16a49068..53e11d9ebcd 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -130,21 +130,21 @@ pub async fn connection_db() -> DbPoolConnection { pub async fn get_update_data(limit: Queries) -> (String, Vec) { let db_pool: DbPoolConnection = get_db_connection().await; let mut query_res_list: Vec = Vec::with_capacity(limit as usize); - let rows: Vec = get_some_row_id(limit, &db_pool).await; + let rows: Vec = get_some_row_id(limit as Queries, &db_pool).await; let mut sql: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME_WORLD); let mut id_list: Vec = Vec::with_capacity(limit as usize); let mut value_list: String = String::new(); let mut id_in_clause: String = format!("{}", rows[0].id); let last_idx: usize = rows.len() - 1; for (i, row) in rows.iter().enumerate() { - let new_random_number: i32 = get_random_id(); + let new_random_number: Queries = get_random_id(); let id: i32 = row.id; id_list.push(id); value_list.push_str(&format!("WHEN {} THEN {} ", id, new_random_number)); if i < last_idx { id_in_clause.push_str(&format!(",{}", id.to_string())); } - query_res_list.push(QueryRow::new(id, new_random_number)); + query_res_list.push(QueryRow::new(id, new_random_number as i32)); } sql.push_str(&value_list); sql.push_str(&format!( @@ -171,16 +171,21 @@ pub async fn init_db() { #[inline] pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow { - let random_id: i32 = get_random_id(); + let random_id: Queries = get_random_id(); + query_world_row(db_pool, random_id).await +} + +#[inline] +pub async fn query_world_row(db_pool: &DbPoolConnection, id: Queries) -> QueryRow { let sql: String = format!( "SELECT id, randomNumber FROM {} WHERE id = {}", - TABLE_NAME_WORLD, random_id + TABLE_NAME_WORLD, id ); if let Ok(rows) = query(&sql).fetch_one(db_pool).await { let random_number: i32 = rows.get(KEY_RANDOM_NUMBER); - return QueryRow::new(random_id, random_number); + return QueryRow::new(id as i32, random_number); } - return QueryRow::new(random_id, 1); + return QueryRow::new(id as i32, 1); } #[inline] @@ -202,8 +207,8 @@ pub async fn all_world_row() -> Vec { #[inline] pub async fn get_some_row_id(limit: Queries, db_pool: &DbPoolConnection) -> Vec { let mut res: Vec = Vec::with_capacity(limit as usize); - for _ in 0..limit { - let tem: QueryRow = random_world_row(db_pool).await; + for id in 0..limit { + let tem: QueryRow = query_world_row(db_pool, id).await; res.push(tem); } res diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index dcc2d756c4e..3fb320ba049 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -6,13 +6,13 @@ pub type Queries = i32; #[allow(bad_style)] #[derive(Serialize, Default, Clone)] pub struct QueryRow { - pub id: i32, - pub randomNumber: i32, + pub id: Queries, + pub randomNumber: Queries, } impl QueryRow { #[inline] - pub fn new(id: i32, random_number: i32) -> Self { + pub fn new(id: Queries, random_number: Queries) -> Self { Self { id, randomNumber: random_number, @@ -22,13 +22,13 @@ impl QueryRow { #[derive(Serialize)] pub struct Fortunes { - pub id: i32, + pub id: Queries, pub message: String, } impl Fortunes { #[inline] - pub fn new(id: i32, message: String) -> Self { + pub fn new(id: Queries, message: String) -> Self { Self { id, message } } } diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index 577585c50b8..c58d69beea1 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -17,8 +17,8 @@ pub fn escape_html(input: &str) -> String { } #[inline] -pub fn get_random_id() -> i32 { +pub fn get_random_id() -> Queries { let mut rand: WyRand = WyRand::new(); - let random_id: i32 = (rand.generate::() % 10_000 + 1) as i32; + let random_id: Queries = rand.generate::() % (RANDOM_MAX as Queries + 1); random_id } From 84336e6136cf0c6be793f1dd097a808645efe73e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 23:21:16 +0800 Subject: [PATCH 071/128] feat: rand --- frameworks/Rust/hyperlane/src/db.rs | 3 ++- frameworks/Rust/hyperlane/src/utils.rs | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 53e11d9ebcd..863520bd155 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -207,7 +207,8 @@ pub async fn all_world_row() -> Vec { #[inline] pub async fn get_some_row_id(limit: Queries, db_pool: &DbPoolConnection) -> Vec { let mut res: Vec = Vec::with_capacity(limit as usize); - for id in 0..limit { + let id_list: Vec = get_random_id_list(limit); + for id in id_list { let tem: QueryRow = query_world_row(db_pool, id).await; res.push(tem); } diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index c58d69beea1..f3f28b5f73d 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -22,3 +22,16 @@ pub fn get_random_id() -> Queries { let random_id: Queries = rand.generate::() % (RANDOM_MAX as Queries + 1); random_id } + +#[inline] +pub fn get_random_id_list(limit: Queries) -> Vec { + let mut id_list: Vec = (1..=limit).collect(); + let mut rng: WyRand = WyRand::new(); + let len: usize = id_list.len(); + for i in (1..len).rev() { + let j = rng.generate_range(0..=i as u32) as usize; + id_list.swap(i, j); + } + id_list.truncate(limit as usize); + id_list +} From 287235214ba9156738281360f6a8bc6448c829e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 23:30:02 +0800 Subject: [PATCH 072/128] feat: rand --- frameworks/Rust/hyperlane/src/utils.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index f3f28b5f73d..a6f1515dc38 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -19,17 +19,17 @@ pub fn escape_html(input: &str) -> String { #[inline] pub fn get_random_id() -> Queries { let mut rand: WyRand = WyRand::new(); - let random_id: Queries = rand.generate::() % (RANDOM_MAX as Queries + 1); - random_id + let random_id: u32 = rand.generate::() % RANDOM_MAX as u32 + 1; + random_id as Queries } #[inline] pub fn get_random_id_list(limit: Queries) -> Vec { let mut id_list: Vec = (1..=limit).collect(); - let mut rng: WyRand = WyRand::new(); + let mut rand: WyRand = WyRand::new(); let len: usize = id_list.len(); for i in (1..len).rev() { - let j = rng.generate_range(0..=i as u32) as usize; + let j: usize = (rand.generate::() % RANDOM_MAX as u32 + 1) as usize; id_list.swap(i, j); } id_list.truncate(limit as usize); From 2f0398b98d877df0b15b09e130c44edf57227d1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 23:38:44 +0800 Subject: [PATCH 073/128] feat: rand --- frameworks/Rust/hyperlane/src/server.rs | 6 +++--- frameworks/Rust/hyperlane/src/utils.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 91dc1aeea08..0268c3bbbd5 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -4,11 +4,11 @@ use crate::*; pub async fn run_server() { let mut server: Server = Server::new(); server.host("0.0.0.0").await; - server.port(8080).await; + server.port(8088).await; server.log_dir("./logs").await; server.log_interval_millis(1_000_000_000).await; - server.disable_inner_log().await; - server.disable_inner_print().await; + // server.disable_inner_log().await; + // server.disable_inner_print().await; server.route("/json", json).await; server.route("/plaintext", plaintext).await; server.route("/db", db).await; diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index a6f1515dc38..40903d562a7 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -29,7 +29,7 @@ pub fn get_random_id_list(limit: Queries) -> Vec { let mut rand: WyRand = WyRand::new(); let len: usize = id_list.len(); for i in (1..len).rev() { - let j: usize = (rand.generate::() % RANDOM_MAX as u32 + 1) as usize; + let j: usize = (rand.generate::() as usize) % (i + 1); id_list.swap(i, j); } id_list.truncate(limit as usize); From 3f0cc7e299555f9d96f7d4d8168aa7477b0da12c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 23:39:52 +0800 Subject: [PATCH 074/128] feat: port --- frameworks/Rust/hyperlane/src/server.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 0268c3bbbd5..91dc1aeea08 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -4,11 +4,11 @@ use crate::*; pub async fn run_server() { let mut server: Server = Server::new(); server.host("0.0.0.0").await; - server.port(8088).await; + server.port(8080).await; server.log_dir("./logs").await; server.log_interval_millis(1_000_000_000).await; - // server.disable_inner_log().await; - // server.disable_inner_print().await; + server.disable_inner_log().await; + server.disable_inner_print().await; server.route("/json", json).await; server.route("/plaintext", plaintext).await; server.route("/db", db).await; From 4c9c41e29de15913c09a357569494f94a5112c43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 23:46:34 +0800 Subject: [PATCH 075/128] feat: port --- frameworks/Rust/hyperlane/src/db.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 863520bd155..a5c417f6702 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -115,7 +115,7 @@ pub async fn connection_db() -> DbPoolConnection { DATABASE_NAME ), }; - let pool_size: u32 = (get_thread_count() << 2).min(100) as u32; + let pool_size: u32 = (get_thread_count() >> 2).max(1).min(100) as u32; let pool: DbPoolConnection = PgPoolOptions::new() .min_connections(pool_size) .max_lifetime(None) From ae191b8a5c7ae25fab48dba5cb409bd0073ff340 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 16 Mar 2025 23:49:29 +0800 Subject: [PATCH 076/128] feat: port --- frameworks/Rust/hyperlane/src/db.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index a5c417f6702..e64e0a9be8c 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -115,9 +115,9 @@ pub async fn connection_db() -> DbPoolConnection { DATABASE_NAME ), }; - let pool_size: u32 = (get_thread_count() >> 2).max(1).min(100) as u32; + let pool_size: u32 = (get_thread_count() >> 2).max(10).min(100) as u32; let pool: DbPoolConnection = PgPoolOptions::new() - .min_connections(pool_size) + .max_connections(pool_size) .max_lifetime(None) .idle_timeout(None) .connect(db_url) From 0dcafc4e43fba4915a9a479f5577435e3d9449cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Mon, 17 Mar 2025 07:46:00 +0800 Subject: [PATCH 077/128] feat: db --- frameworks/Rust/hyperlane/src/db.rs | 12 ++++++------ frameworks/Rust/hyperlane/src/lazy.rs | 1 + frameworks/Rust/hyperlane/src/utils.rs | 17 ++--------------- 3 files changed, 9 insertions(+), 21 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index e64e0a9be8c..10f1187ba5c 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -60,7 +60,7 @@ pub async fn insert_records() { let missing_count: i64 = limit - count; let mut values: Vec = Vec::new(); for _ in 0..missing_count { - let random_number: i32 = get_random_id(); + let random_number: i32 = get_random_id().await; values.push(format!("(DEFAULT, {})", random_number)); } let sql: String = format!( @@ -71,7 +71,7 @@ pub async fn insert_records() { let _ = query(&sql).execute(&db_pool).await; let mut values: Vec = Vec::new(); for _ in 0..missing_count { - let random_number: i32 = get_random_id(); + let random_number: i32 = get_random_id().await; values.push(format!("(DEFAULT, {})", random_number)); } let sql: String = format!( @@ -137,7 +137,7 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec) { let mut id_in_clause: String = format!("{}", rows[0].id); let last_idx: usize = rows.len() - 1; for (i, row) in rows.iter().enumerate() { - let new_random_number: Queries = get_random_id(); + let new_random_number: Queries = get_random_id().await; let id: i32 = row.id; id_list.push(id); value_list.push_str(&format!("WHEN {} THEN {} ", id, new_random_number)); @@ -171,7 +171,7 @@ pub async fn init_db() { #[inline] pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow { - let random_id: Queries = get_random_id(); + let random_id: Queries = get_random_id().await; query_world_row(db_pool, random_id).await } @@ -207,8 +207,8 @@ pub async fn all_world_row() -> Vec { #[inline] pub async fn get_some_row_id(limit: Queries, db_pool: &DbPoolConnection) -> Vec { let mut res: Vec = Vec::with_capacity(limit as usize); - let id_list: Vec = get_random_id_list(limit); - for id in id_list { + for _ in 0..limit { + let id: i32 = get_random_id().await; let tem: QueryRow = query_world_row(db_pool, id).await; res.push(tem); } diff --git a/frameworks/Rust/hyperlane/src/lazy.rs b/frameworks/Rust/hyperlane/src/lazy.rs index 6826b018008..b80ef48bfec 100644 --- a/frameworks/Rust/hyperlane/src/lazy.rs +++ b/frameworks/Rust/hyperlane/src/lazy.rs @@ -3,3 +3,4 @@ use crate::*; pub static DB: Lazy>> = Lazy::new(|| Arc::new(RwLock::new(None))); pub static CACHE: Lazy>> = Lazy::new(|| arc_rwlock(vec![])); +pub static RAND: Lazy> = Lazy::new(|| arc_rwlock(WyRand::new())); diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index 40903d562a7..4d0692240ae 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -17,21 +17,8 @@ pub fn escape_html(input: &str) -> String { } #[inline] -pub fn get_random_id() -> Queries { - let mut rand: WyRand = WyRand::new(); +pub async fn get_random_id() -> Queries { + let mut rand: RwLockWriteGuard<'_, WyRand> = RAND.write().await; let random_id: u32 = rand.generate::() % RANDOM_MAX as u32 + 1; random_id as Queries } - -#[inline] -pub fn get_random_id_list(limit: Queries) -> Vec { - let mut id_list: Vec = (1..=limit).collect(); - let mut rand: WyRand = WyRand::new(); - let len: usize = id_list.len(); - for i in (1..len).rev() { - let j: usize = (rand.generate::() as usize) % (i + 1); - id_list.swap(i, j); - } - id_list.truncate(limit as usize); - id_list -} From cc5b089e16ab5c8860ec418530e5ae98775bcdb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Mon, 17 Mar 2025 08:04:50 +0800 Subject: [PATCH 078/128] feat: db --- frameworks/Rust/hyperlane/Cargo.lock | 54 ++++++++++++++++------- frameworks/Rust/hyperlane/Cargo.toml | 2 +- frameworks/Rust/hyperlane/src/constant.rs | 1 + frameworks/Rust/hyperlane/src/db.rs | 24 +++++++--- frameworks/Rust/hyperlane/src/lazy.rs | 1 - frameworks/Rust/hyperlane/src/main.rs | 2 +- frameworks/Rust/hyperlane/src/utils.rs | 8 ++-- 7 files changed, 64 insertions(+), 28 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index 39217d137bb..6a0b9a5ebb9 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -705,7 +705,7 @@ name = "hyperlane_techempower" version = "0.0.1" dependencies = [ "hyperlane", - "nanorand", + "rand 0.9.0", "serde", "sqlx", ] @@ -981,12 +981,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "nanorand" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" - [[package]] name = "num-bigint-dig" version = "0.8.4" @@ -999,7 +993,7 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "rand", + "rand 0.8.5", "smallvec", "zeroize", ] @@ -1166,8 +1160,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", + "zerocopy 0.8.23", ] [[package]] @@ -1177,7 +1182,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", ] [[package]] @@ -1189,6 +1204,15 @@ dependencies = [ "getrandom 0.2.15", ] +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.1", +] + [[package]] name = "recoverable-spawn" version = "3.4.3" @@ -1251,7 +1275,7 @@ dependencies = [ "num-traits", "pkcs1", "pkcs8", - "rand_core", + "rand_core 0.6.4", "signature", "spki", "subtle", @@ -1392,7 +1416,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -1577,7 +1601,7 @@ dependencies = [ "memchr", "once_cell", "percent-encoding", - "rand", + "rand 0.8.5", "rsa", "serde", "sha1", @@ -1615,7 +1639,7 @@ dependencies = [ "md-5", "memchr", "once_cell", - "rand", + "rand 0.8.5", "serde", "serde_json", "sha2", diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 1b27e029116..8b909a01df4 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -19,7 +19,7 @@ exclude = [ [dependencies] hyperlane = "4.36.1" -nanorand = "0.7.0" +rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } diff --git a/frameworks/Rust/hyperlane/src/constant.rs b/frameworks/Rust/hyperlane/src/constant.rs index 54ee847daf0..e22ac57c0b0 100644 --- a/frameworks/Rust/hyperlane/src/constant.rs +++ b/frameworks/Rust/hyperlane/src/constant.rs @@ -9,6 +9,7 @@ pub static TABLE_NAME_WORLD: &str = "World"; pub static TABLE_NAME_FORTUNE: &str = "Fortune"; pub static ROW_LIMIT: i32 = 500; pub static RANDOM_MAX: i32 = 10_000; +pub static RANDOM_MAX_ADD_ONE: u32 = 10_001; pub static KEY_ID: &str = "id"; pub static KEY_RANDOM_NUMBER: &str = "randomnumber"; pub static KEY_MESSAGE: &str = "message"; diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 10f1187ba5c..b31ce86c013 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -60,7 +60,7 @@ pub async fn insert_records() { let missing_count: i64 = limit - count; let mut values: Vec = Vec::new(); for _ in 0..missing_count { - let random_number: i32 = get_random_id().await; + let random_number: i32 = get_random_id(); values.push(format!("(DEFAULT, {})", random_number)); } let sql: String = format!( @@ -71,7 +71,7 @@ pub async fn insert_records() { let _ = query(&sql).execute(&db_pool).await; let mut values: Vec = Vec::new(); for _ in 0..missing_count { - let random_number: i32 = get_random_id().await; + let random_number: i32 = get_random_id(); values.push(format!("(DEFAULT, {})", random_number)); } let sql: String = format!( @@ -116,9 +116,19 @@ pub async fn connection_db() -> DbPoolConnection { ), }; let pool_size: u32 = (get_thread_count() >> 2).max(10).min(100) as u32; + let max_pool_size: u32 = option_env!("POSTGRES_MAX_POOL_SIZE") + .unwrap_or(&pool_size.to_string()) + .parse::() + .unwrap_or(pool_size); + let min_pool_size: u32 = option_env!("POSTGRES_MIN_POOL_SIZE") + .unwrap_or(&pool_size.to_string()) + .parse::() + .unwrap_or(pool_size); let pool: DbPoolConnection = PgPoolOptions::new() - .max_connections(pool_size) + .max_connections(max_pool_size) + .min_connections(min_pool_size) .max_lifetime(None) + .test_before_acquire(false) .idle_timeout(None) .connect(db_url) .await @@ -137,7 +147,7 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec) { let mut id_in_clause: String = format!("{}", rows[0].id); let last_idx: usize = rows.len() - 1; for (i, row) in rows.iter().enumerate() { - let new_random_number: Queries = get_random_id().await; + let new_random_number: Queries = get_random_id(); let id: i32 = row.id; id_list.push(id); value_list.push_str(&format!("WHEN {} THEN {} ", id, new_random_number)); @@ -171,14 +181,14 @@ pub async fn init_db() { #[inline] pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow { - let random_id: Queries = get_random_id().await; + let random_id: Queries = get_random_id(); query_world_row(db_pool, random_id).await } #[inline] pub async fn query_world_row(db_pool: &DbPoolConnection, id: Queries) -> QueryRow { let sql: String = format!( - "SELECT id, randomNumber FROM {} WHERE id = {}", + "SELECT id, randomNumber FROM {} WHERE id = {} LIMIT 1", TABLE_NAME_WORLD, id ); if let Ok(rows) = query(&sql).fetch_one(db_pool).await { @@ -208,7 +218,7 @@ pub async fn all_world_row() -> Vec { pub async fn get_some_row_id(limit: Queries, db_pool: &DbPoolConnection) -> Vec { let mut res: Vec = Vec::with_capacity(limit as usize); for _ in 0..limit { - let id: i32 = get_random_id().await; + let id: i32 = get_random_id(); let tem: QueryRow = query_world_row(db_pool, id).await; res.push(tem); } diff --git a/frameworks/Rust/hyperlane/src/lazy.rs b/frameworks/Rust/hyperlane/src/lazy.rs index b80ef48bfec..6826b018008 100644 --- a/frameworks/Rust/hyperlane/src/lazy.rs +++ b/frameworks/Rust/hyperlane/src/lazy.rs @@ -3,4 +3,3 @@ use crate::*; pub static DB: Lazy>> = Lazy::new(|| Arc::new(RwLock::new(None))); pub static CACHE: Lazy>> = Lazy::new(|| arc_rwlock(vec![])); -pub static RAND: Lazy> = Lazy::new(|| arc_rwlock(WyRand::new())); diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 2ae68b0098b..ef4a7838faa 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -18,8 +18,8 @@ pub(crate) use hyperlane::{ *, }; pub(crate) use lazy::*; -pub(crate) use nanorand::{Rng, WyRand}; pub(crate) use r#type::*; +pub(crate) use rand::{rngs::SmallRng, Rng, SeedableRng}; pub(crate) use request_middleware::*; pub(crate) use response_middleware::*; pub(crate) use route::*; diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index 4d0692240ae..9552fe79074 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -1,3 +1,5 @@ +use rand::rng; + use crate::*; #[inline] @@ -17,8 +19,8 @@ pub fn escape_html(input: &str) -> String { } #[inline] -pub async fn get_random_id() -> Queries { - let mut rand: RwLockWriteGuard<'_, WyRand> = RAND.write().await; - let random_id: u32 = rand.generate::() % RANDOM_MAX as u32 + 1; +pub fn get_random_id() -> Queries { + let mut rng: SmallRng = SmallRng::from_rng(&mut rng()); + let random_id: u32 = rng.random_range(1..RANDOM_MAX_ADD_ONE); random_id as Queries } From 62341588d8830d8edb3a0a6de943cdcdecc384d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Mon, 17 Mar 2025 08:23:39 +0800 Subject: [PATCH 079/128] feat: db --- frameworks/Rust/hyperlane/src/db.rs | 53 +++++++++++++++++------------ 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index b31ce86c013..d1d51e8ee11 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -137,31 +137,35 @@ pub async fn connection_db() -> DbPoolConnection { } #[inline] -pub async fn get_update_data(limit: Queries) -> (String, Vec) { +pub async fn get_update_data( + limit: Queries, +) -> (String, Vec, Vec, Vec) { let db_pool: DbPoolConnection = get_db_connection().await; let mut query_res_list: Vec = Vec::with_capacity(limit as usize); - let rows: Vec = get_some_row_id(limit as Queries, &db_pool).await; - let mut sql: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME_WORLD); - let mut id_list: Vec = Vec::with_capacity(limit as usize); - let mut value_list: String = String::new(); - let mut id_in_clause: String = format!("{}", rows[0].id); - let last_idx: usize = rows.len() - 1; + let rows: Vec = get_some_row_id(limit, &db_pool).await; + let mut sql = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME_WORLD); + let mut id_list: Vec = Vec::with_capacity(rows.len()); + let mut value_list: Vec = Vec::with_capacity(rows.len() * 2); + let mut random_numbers: Vec = Vec::with_capacity(rows.len()); for (i, row) in rows.iter().enumerate() { - let new_random_number: Queries = get_random_id(); - let id: i32 = row.id; - id_list.push(id); - value_list.push_str(&format!("WHEN {} THEN {} ", id, new_random_number)); - if i < last_idx { - id_in_clause.push_str(&format!(",{}", id.to_string())); - } - query_res_list.push(QueryRow::new(id, new_random_number as i32)); + let new_random_number: i32 = get_random_id() as i32; + id_list.push(row.id); + random_numbers.push(new_random_number); + value_list.push(format!("WHEN ${} THEN ${}", i * 2 + 1, i * 2 + 2)); + query_res_list.push(QueryRow::new(row.id, new_random_number)); } - sql.push_str(&value_list); + sql.push_str(&value_list.join(" ")); + let id_params: String = id_list + .iter() + .enumerate() + .map(|(i, _)| format!("${}", (rows.len() * 2 + 1) + i)) + .collect::>() + .join(","); sql.push_str(&format!( - "ELSE randomNumber END WHERE id IN ({})", - id_in_clause + " ELSE randomNumber END WHERE id IN ({})", + id_params )); - (sql, query_res_list) + (sql, query_res_list, id_list, random_numbers) } #[inline] @@ -201,8 +205,15 @@ pub async fn query_world_row(db_pool: &DbPoolConnection, id: Queries) -> QueryRo #[inline] pub async fn update_world_rows(limit: Queries) -> Vec { let db_pool: DbPoolConnection = get_db_connection().await; - let (sql, data) = get_update_data(limit).await; - let _ = query(&sql).execute(&db_pool).await; + let (sql, data, id_list, random_numbers) = get_update_data(limit).await; + let mut query_builder: query::Query<'_, Postgres, postgres::PgArguments> = query(&sql); + for (id, random_number) in id_list.iter().zip(random_numbers.iter()) { + query_builder = query_builder.bind(id).bind(random_number); + } + for id in &id_list { + query_builder = query_builder.bind(id); + } + let _ = query_builder.execute(&db_pool).await; data } From 8cf74b0e9485fb66ce460d0af99ff84399fafb80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Mon, 17 Mar 2025 12:04:44 +0800 Subject: [PATCH 080/128] feat: lock --- frameworks/Rust/hyperlane/.gitignore | 3 + frameworks/Rust/hyperlane/Cargo.lock | 2332 -------------------------- 2 files changed, 3 insertions(+), 2332 deletions(-) create mode 100644 frameworks/Rust/hyperlane/.gitignore delete mode 100644 frameworks/Rust/hyperlane/Cargo.lock diff --git a/frameworks/Rust/hyperlane/.gitignore b/frameworks/Rust/hyperlane/.gitignore new file mode 100644 index 00000000000..fbb0636b360 --- /dev/null +++ b/frameworks/Rust/hyperlane/.gitignore @@ -0,0 +1,3 @@ +/target +/logs +# Cargo.lock \ No newline at end of file diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock deleted file mode 100644 index 6a0b9a5ebb9..00000000000 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ /dev/null @@ -1,2332 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy 0.7.35", -] - -[[package]] -name = "alloc-no-stdlib" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" - -[[package]] -name = "alloc-stdlib" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" -dependencies = [ - "alloc-no-stdlib", -] - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - -[[package]] -name = "async-func" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8882ceb09bc57f9b7a52d48cffab866310aeeb6a5aa1c9420640e7689660c9ee" -dependencies = [ - "tokio", -] - -[[package]] -name = "atoi" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" -dependencies = [ - "num-traits", -] - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" - -[[package]] -name = "bitflags" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" -dependencies = [ - "serde", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "brotli" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli-decompressor" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", -] - -[[package]] -name = "bumpalo" -version = "3.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "clonelicious" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c61986b9f0347d401ef41468e7aadba2ab6dfc2547df1862f2563250fbfa8d3" - -[[package]] -name = "color-output" -version = "6.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c85488dab2761e7883ac16c88819eefb468973b57591ef3c2baa743c35004ff" -dependencies = [ - "hyperlane-time", -] - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crc" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" -dependencies = [ - "serde", -] - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "etcetera" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" -dependencies = [ - "cfg-if", - "home", - "windows-sys 0.48.0", -] - -[[package]] -name = "event-listener" -version = "5.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "file-operation" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaba2fa080e689c4ec9a0666c5b7eb074182fdba13a34e97b19b56ac2a855556" -dependencies = [ - "tokio", -] - -[[package]] -name = "flate2" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "float-cmp" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8" -dependencies = [ - "num-traits", -] - -[[package]] -name = "flume" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" -dependencies = [ - "futures-core", - "futures-sink", - "spin", -] - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-intrusive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" -dependencies = [ - "futures-core", - "lock_api", - "parking_lot", -] - -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.13.3+wasi-0.2.2", - "windows-targets 0.52.6", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "halfbrown" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f" -dependencies = [ - "hashbrown 0.14.5", - "serde", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash", -] - -[[package]] -name = "hashlink" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" -dependencies = [ - "hashbrown 0.15.2", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - -[[package]] -name = "home" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "http-compress" -version = "2.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98b1cde57d40ec354eb0d1f7fea31e5d621e2bfbc9ec087f6d06944b5ac1ca3a" -dependencies = [ - "brotli", - "flate2", - "http-constant", -] - -[[package]] -name = "http-constant" -version = "1.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b282f8cb8ff76d9ad521f4e159143bfe2639a03e7d91871f740b716f28c608" - -[[package]] -name = "http-type" -version = "3.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac0f534e18616d3a80a032fed278879bfd663d071282377ce66c55ebd7eef09" -dependencies = [ - "hex", - "http-compress", - "http-constant", - "lombok-macros", - "serde", - "serde-xml-rs", - "serde_json", - "serde_urlencoded", - "tokio", - "url", -] - -[[package]] -name = "hyperlane" -version = "4.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678154dd86505451acd8d9a3faea8edbc20e61f1e2024d8b26d40d8b59b886eb" -dependencies = [ - "async-func", - "clonelicious", - "color-output", - "file-operation", - "futures", - "http-compress", - "http-type", - "hyperlane-log", - "hyperlane-time", - "lombok-macros", - "once_cell", - "recoverable-spawn", - "recoverable-thread-pool", - "serde", - "serde_json", - "server-manager", - "simd-json", - "std-macro-extensions", - "tokio", -] - -[[package]] -name = "hyperlane-log" -version = "1.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e4ac75392e2efe8ca225dd9dbb3a027b861ea20c483a7763ee736edabe10cca" -dependencies = [ - "file-operation", - "hyperlane-time", - "lombok-macros", - "once_cell", - "recoverable-spawn", -] - -[[package]] -name = "hyperlane-time" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a65d56c50277b8523f6a77f5643a2cc17d58565a411fa1893b761ebaef785f4e" - -[[package]] -name = "hyperlane_techempower" -version = "0.0.1" -dependencies = [ - "hyperlane", - "rand 0.9.0", - "serde", - "sqlx", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" -dependencies = [ - "equivalent", - "hashbrown 0.15.2", -] - -[[package]] -name = "itoa" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - -[[package]] -name = "js-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] - -[[package]] -name = "libc" -version = "0.2.171" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" - -[[package]] -name = "libm" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" - -[[package]] -name = "libsqlite3-sys" -version = "0.30.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" -dependencies = [ - "pkg-config", - "vcpkg", -] - -[[package]] -name = "linux-raw-sys" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" - -[[package]] -name = "litemap" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" - -[[package]] -name = "lombok-macros" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe4fc0110b8bdb29b2423a2be59fa7b9b3e0e1b225553514895564420887bc5" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "miniz_oxide" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", -] - -[[package]] -name = "num-bigint-dig" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" -dependencies = [ - "byteorder", - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.5", - "smallvec", - "zeroize", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" - -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der", - "pkcs8", - "spki", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy 0.8.23", -] - -[[package]] -name = "proc-macro2" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", - "zerocopy 0.8.23", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.15", -] - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.1", -] - -[[package]] -name = "recoverable-spawn" -version = "3.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5081593fb6a36af3e9ca8c4f23735f9d454a252cba0629509baa3947983846d" -dependencies = [ - "once_cell", - "tokio", -] - -[[package]] -name = "recoverable-thread-pool" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4190261c8a4823ceaf4b9cd68bf28deca98aa5697d2e1ec66e8053dac2a817fa" -dependencies = [ - "lombok-macros", - "recoverable-spawn", -] - -[[package]] -name = "redox_syscall" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" -dependencies = [ - "bitflags", -] - -[[package]] -name = "ref-cast" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "rsa" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" -dependencies = [ - "const-oid", - "digest", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8", - "rand_core 0.6.4", - "signature", - "spki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "serde" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-xml-rs" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3aa78ecda1ebc9ec9847d5d3aba7d618823446a049ba2491940506da6e2782" -dependencies = [ - "log", - "serde", - "thiserror 1.0.69", - "xml-rs", -] - -[[package]] -name = "serde_derive" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.140" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "server-manager" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5144bc130554928fb304af2e7590742db173a40f82672613dc293f7567e8730e" -dependencies = [ - "tokio", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core 0.6.4", -] - -[[package]] -name = "simd-json" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2bcf6c6e164e81bc7a5d49fc6988b3d515d9e8c07457d7b74ffb9324b9cd40" -dependencies = [ - "getrandom 0.2.15", - "halfbrown", - "ref-cast", - "serde", - "serde_json", - "simdutf8", - "value-trait", -] - -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" -dependencies = [ - "serde", -] - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "sqlx" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f" -dependencies = [ - "sqlx-core", - "sqlx-macros", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", -] - -[[package]] -name = "sqlx-core" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0" -dependencies = [ - "bytes", - "crc", - "crossbeam-queue", - "either", - "event-listener", - "futures-core", - "futures-intrusive", - "futures-io", - "futures-util", - "hashbrown 0.15.2", - "hashlink", - "indexmap", - "log", - "memchr", - "once_cell", - "percent-encoding", - "serde", - "serde_json", - "sha2", - "smallvec", - "thiserror 2.0.12", - "tokio", - "tokio-stream", - "tracing", - "url", -] - -[[package]] -name = "sqlx-macros" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310" -dependencies = [ - "proc-macro2", - "quote", - "sqlx-core", - "sqlx-macros-core", - "syn", -] - -[[package]] -name = "sqlx-macros-core" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad" -dependencies = [ - "dotenvy", - "either", - "heck", - "hex", - "once_cell", - "proc-macro2", - "quote", - "serde", - "serde_json", - "sha2", - "sqlx-core", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", - "syn", - "tempfile", - "tokio", - "url", -] - -[[package]] -name = "sqlx-mysql" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233" -dependencies = [ - "atoi", - "base64", - "bitflags", - "byteorder", - "bytes", - "crc", - "digest", - "dotenvy", - "either", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "generic-array", - "hex", - "hkdf", - "hmac", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "percent-encoding", - "rand 0.8.5", - "rsa", - "serde", - "sha1", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror 2.0.12", - "tracing", - "whoami", -] - -[[package]] -name = "sqlx-postgres" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613" -dependencies = [ - "atoi", - "base64", - "bitflags", - "byteorder", - "crc", - "dotenvy", - "etcetera", - "futures-channel", - "futures-core", - "futures-util", - "hex", - "hkdf", - "hmac", - "home", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "rand 0.8.5", - "serde", - "serde_json", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror 2.0.12", - "tracing", - "whoami", -] - -[[package]] -name = "sqlx-sqlite" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540" -dependencies = [ - "atoi", - "flume", - "futures-channel", - "futures-core", - "futures-executor", - "futures-intrusive", - "futures-util", - "libsqlite3-sys", - "log", - "percent-encoding", - "serde", - "serde_urlencoded", - "sqlx-core", - "tracing", - "url", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "std-macro-extensions" -version = "0.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b44c771c1591df90e3b49f618362dc1c431a8df6a7a6cc69dbe00757b158522" - -[[package]] -name = "stringprep" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" -dependencies = [ - "unicode-bidi", - "unicode-normalization", - "unicode-properties", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "2.0.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488960f40a3fd53d72c2a29a58722561dee8afdd175bd88e3db4677d7b2ba600" -dependencies = [ - "fastrand", - "getrandom 0.3.1", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" -dependencies = [ - "thiserror-impl 2.0.12", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.44.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-macros" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tokio-stream" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - -[[package]] -name = "unicode-bidi" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" - -[[package]] -name = "unicode-ident" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" - -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-properties" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "value-trait" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9170e001f458781e92711d2ad666110f153e4e50bfd5cbd02db6547625714187" -dependencies = [ - "float-cmp", - "halfbrown", - "itoa", - "ryu", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasi" -version = "0.13.3+wasi-0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" -dependencies = [ - "wit-bindgen-rt", -] - -[[package]] -name = "wasite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" - -[[package]] -name = "wasm-bindgen" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "whoami" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" -dependencies = [ - "redox_syscall", - "wasite", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "wit-bindgen-rt" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "xml-rs" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" -dependencies = [ - "zerocopy-derive 0.8.23", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] From 0abbc6bccb3a6b9ee236703274e24cfb076207e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Mon, 17 Mar 2025 12:05:11 +0800 Subject: [PATCH 081/128] feat: lock --- frameworks/Rust/hyperlane/.gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/.gitignore b/frameworks/Rust/hyperlane/.gitignore index fbb0636b360..af8e65c2e7a 100644 --- a/frameworks/Rust/hyperlane/.gitignore +++ b/frameworks/Rust/hyperlane/.gitignore @@ -1,3 +1,3 @@ /target /logs -# Cargo.lock \ No newline at end of file +Cargo.lock \ No newline at end of file From ad24c549c4036f3dc2252060b8f2dff1c5647c1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Fri, 21 Mar 2025 07:31:39 +0800 Subject: [PATCH 082/128] feat: v4.41.0 --- frameworks/Rust/hyperlane/Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 8b909a01df4..dc47e21541e 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "hyperlane_techempower" version = "0.0.1" -edition = "2021" +edition = "2024" authors = ["ltpp-universe "] license = "MIT" description = """Hyperlane is a lightweight and high-performance Rust HTTP server library designed to simplify network service development. It supports HTTP request parsing, response building, and TCP communication, making it ideal for building modern web services. Additionally, it provides support for request and response middleware, WebSocket, and Server-Sent Events (SSE), enabling flexible and efficient real-time communication.""" @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.36.1" +hyperlane = "4.41.0" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } From 854be9eb8f875c5162e9347ee85f8279fd2d3e3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Fri, 21 Mar 2025 09:32:45 +0800 Subject: [PATCH 083/128] feat: v4.42.0 --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index dc47e21541e..7bddf8cdafd 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.41.0" +hyperlane = "4.42.0" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } From adf4c8681e1b71e5f09da13042a079f5448b6b9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Fri, 21 Mar 2025 20:57:39 +0800 Subject: [PATCH 084/128] Merge remote-tracking branch 'upstream/master' --- frameworks/Rust/hyperlane/Cargo.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index a949cfe28df..7bddf8cdafd 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -22,7 +22,6 @@ hyperlane = "4.42.0" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } -sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } [profile.dev] incremental = false From d96191bc20c3a5fdbca27d0713750e8feb130e85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Fri, 21 Mar 2025 22:03:23 +0800 Subject: [PATCH 085/128] Merge remote-tracking branch 'upstream/master' --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 7bddf8cdafd..7ca0bbe6f4e 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.42.0" +hyperlane = "4.42.1" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } From a4026c21d7eb79ef487946ee6c1caa20df9548dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Fri, 21 Mar 2025 22:59:52 +0800 Subject: [PATCH 086/128] feat: inline --- frameworks/Rust/hyperlane/hyperlane.dockerfile | 2 +- frameworks/Rust/hyperlane/src/db.rs | 4 ++-- frameworks/Rust/hyperlane/src/main.rs | 4 ++-- frameworks/Rust/hyperlane/src/server.rs | 4 ++-- frameworks/Rust/hyperlane/src/type.rs | 6 +++++- frameworks/Rust/hyperlane/src/utils.rs | 2 -- frameworks/Rust/hyperlane/templates/fortune.hbs | 5 ----- 7 files changed, 12 insertions(+), 15 deletions(-) delete mode 100644 frameworks/Rust/hyperlane/templates/fortune.hbs diff --git a/frameworks/Rust/hyperlane/hyperlane.dockerfile b/frameworks/Rust/hyperlane/hyperlane.dockerfile index 480553c8c7a..c9e6f71e9cb 100644 --- a/frameworks/Rust/hyperlane/hyperlane.dockerfile +++ b/frameworks/Rust/hyperlane/hyperlane.dockerfile @@ -6,7 +6,7 @@ ADD ./ /hyperlane_techempower WORKDIR /hyperlane_techempower RUN cargo clean -RUN RUSTFLAGS="-C target-cpu=native" cargo build --release +RUN RUSTFLAGS="-C target-cpu=native -C link-arg=-fuse-ld=lld" cargo build --release EXPOSE 8080 diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index d1d51e8ee11..96e0bcbdf24 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -15,7 +15,7 @@ pub async fn get_db_connection() -> DbPoolConnection { #[inline] #[cfg(feature = "dev")] -pub async fn create_batabase() { +pub async fn create_database() { let db_pool: DbPoolConnection = get_db_connection().await; let _ = query(&format!("CREATE DATABASE {};", DATABASE_NAME)) .execute(&db_pool) @@ -176,7 +176,7 @@ pub async fn init_db() { } #[cfg(feature = "dev")] { - create_batabase().await; + create_database().await; create_table().await; insert_records().await; } diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index ef4a7838faa..78b975793e5 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -18,8 +18,7 @@ pub(crate) use hyperlane::{ *, }; pub(crate) use lazy::*; -pub(crate) use r#type::*; -pub(crate) use rand::{rngs::SmallRng, Rng, SeedableRng}; +pub(crate) use rand::{Rng, SeedableRng, rng, rngs::SmallRng}; pub(crate) use request_middleware::*; pub(crate) use response_middleware::*; pub(crate) use route::*; @@ -29,6 +28,7 @@ pub(crate) use sqlx::{ *, }; pub(crate) use std::{fmt, sync::Arc}; +pub(crate) use r#type::*; pub(crate) use utils::*; #[tokio::main] diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 91dc1aeea08..568fb066446 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -9,13 +9,13 @@ pub async fn run_server() { server.log_interval_millis(1_000_000_000).await; server.disable_inner_log().await; server.disable_inner_print().await; - server.route("/json", json).await; server.route("/plaintext", plaintext).await; + server.route("/json", json).await; + server.route("/cached-quer", cached_queries).await; server.route("/db", db).await; server.route("/query", queries).await; server.route("/fortunes", fortunes).await; server.route("/upda", updates).await; - server.route("/cached-quer", cached_queries).await; server.request_middleware(request).await; server.response_middleware(response).await; server.listen().await; diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 3fb320ba049..9ec11ff4342 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -44,9 +44,13 @@ impl FortunesTemplate { } impl fmt::Display for FortunesTemplate { + #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let fortunes: &Vec = &self.0; - let _ = write!(f, "Fortunes"); + let _ = write!( + f, + "Fortunes
idmessage
" + ); for tem in fortunes.iter() { let row: String = format!( "", diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index 9552fe79074..16e8cdd8839 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -1,5 +1,3 @@ -use rand::rng; - use crate::*; #[inline] diff --git a/frameworks/Rust/hyperlane/templates/fortune.hbs b/frameworks/Rust/hyperlane/templates/fortune.hbs deleted file mode 100644 index b9e25a52a8e..00000000000 --- a/frameworks/Rust/hyperlane/templates/fortune.hbs +++ /dev/null @@ -1,5 +0,0 @@ -Fortunes
idmessage
{}{}
- {{~# each fortunes ~}} - - {{~/each ~}} -
idmessage
{{id}}{{message}}
From c9e324376e75ed350558f507d65cc8369433375e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Fri, 21 Mar 2025 23:14:41 +0800 Subject: [PATCH 087/128] feat: dockerfile --- frameworks/Rust/hyperlane/hyperlane.dockerfile | 2 ++ frameworks/Rust/hyperlane/src/db.rs | 18 ++++++------------ frameworks/Rust/hyperlane/src/lazy.rs | 5 ++--- frameworks/Rust/hyperlane/src/main.rs | 10 ++-------- frameworks/Rust/hyperlane/src/route.rs | 2 +- 5 files changed, 13 insertions(+), 24 deletions(-) diff --git a/frameworks/Rust/hyperlane/hyperlane.dockerfile b/frameworks/Rust/hyperlane/hyperlane.dockerfile index c9e6f71e9cb..d9bd815fd04 100644 --- a/frameworks/Rust/hyperlane/hyperlane.dockerfile +++ b/frameworks/Rust/hyperlane/hyperlane.dockerfile @@ -1,5 +1,7 @@ FROM rust:1.85 +RUN apt-get update -yqq && apt-get install -yqq cmake g++ binutils lld + ENV POSTGRES_URL=postgres://benchmarkdbuser:benchmarkdbpass@tfb-database:5432/hello_world ADD ./ /hyperlane_techempower diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 96e0bcbdf24..9f4db9f0f5c 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -2,14 +2,12 @@ use crate::*; #[inline] pub async fn get_db_connection() -> DbPoolConnection { - if let Some(db_pool) = DB.read().await.clone() { - return db_pool; + if let Some(db_pool) = DB.get() { + return db_pool.clone(); }; let db_pool: DbPoolConnection = connection_db().await; - { - let mut db_pool_lock: RwLockWriteGuard<'_, Option> = DB.write().await; - *db_pool_lock = Some(db_pool.clone()); - } + DB.set(db_pool.clone()) + .expect("Failed to initialize DB_POOL"); db_pool } @@ -97,8 +95,7 @@ pub async fn init_cache() { res.push(QueryRow::new(id, random_number)); } } - let mut cache: RwLockWriteGuard<'_, Vec> = CACHE.write().await; - *cache = res; + let _ = CACHE.set(res); } #[inline] @@ -170,10 +167,7 @@ pub async fn get_update_data( #[inline] pub async fn init_db() { - { - let mut db_pool_lock: RwLockWriteGuard<'_, Option> = DB.write().await; - *db_pool_lock = Some(connection_db().await); - } + get_db_connection().await; #[cfg(feature = "dev")] { create_database().await; diff --git a/frameworks/Rust/hyperlane/src/lazy.rs b/frameworks/Rust/hyperlane/src/lazy.rs index 6826b018008..6e95d5019b0 100644 --- a/frameworks/Rust/hyperlane/src/lazy.rs +++ b/frameworks/Rust/hyperlane/src/lazy.rs @@ -1,5 +1,4 @@ use crate::*; -pub static DB: Lazy>> = - Lazy::new(|| Arc::new(RwLock::new(None))); -pub static CACHE: Lazy>> = Lazy::new(|| arc_rwlock(vec![])); +pub static DB: OnceCell = OnceCell::new(); +pub static CACHE: OnceCell> = OnceCell::new(); diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 78b975793e5..72253debec0 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -10,13 +10,7 @@ pub(crate) mod utils; pub(crate) use constant::*; pub(crate) use db::*; -pub(crate) use hyperlane::{ - once_cell::sync::Lazy, - serde::*, - serde_json::json, - tokio::sync::{RwLock, RwLockReadGuard, RwLockWriteGuard}, - *, -}; +pub(crate) use hyperlane::{once_cell::sync::OnceCell, serde::*, serde_json::json, *}; pub(crate) use lazy::*; pub(crate) use rand::{Rng, SeedableRng, rng, rngs::SmallRng}; pub(crate) use request_middleware::*; @@ -27,7 +21,7 @@ pub(crate) use sqlx::{ postgres::{PgPoolOptions, PgRow}, *, }; -pub(crate) use std::{fmt, sync::Arc}; +pub(crate) use std::fmt; pub(crate) use r#type::*; pub(crate) use utils::*; diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index e52db693195..c3c7cbcb855 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -97,7 +97,7 @@ pub async fn cached_queries(controller_data: ControllerData) { .min(ROW_LIMIT as Queries) .max(1); let mut res: Vec = Vec::with_capacity(count as usize); - let cache: RwLockReadGuard<'_, Vec> = CACHE.read().await; + let cache: Vec = CACHE.get().cloned().unwrap_or_default(); for i in 0..count { res.push(cache[i as usize].clone()); } From 1f2fee5e20b2dc0170856edbd36a56e83f9578ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 23 Mar 2025 16:08:11 +0800 Subject: [PATCH 088/128] feat: v4.52.1 --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- frameworks/Rust/hyperlane/src/server.rs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 7ca0bbe6f4e..27bb8059d95 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.42.1" +hyperlane = "4.52.1" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 568fb066446..35aa1362230 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -2,10 +2,12 @@ use crate::*; #[inline] pub async fn run_server() { - let mut server: Server = Server::new(); + let server: Server = Server::new(); server.host("0.0.0.0").await; server.port(8080).await; server.log_dir("./logs").await; + server.http_line_buffer_size(512).await; + server.websocket_buffer_size(512).await; server.log_interval_millis(1_000_000_000).await; server.disable_inner_log().await; server.disable_inner_print().await; From f5b3ae78a2e6796fdaeba668e83f0ffb51eee2e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 23 Mar 2025 17:11:37 +0800 Subject: [PATCH 089/128] feat: remove key --- frameworks/Rust/hyperlane/Cargo.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 0cd9df7d00c..27bb8059d95 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -2,7 +2,6 @@ name = "hyperlane_techempower" version = "0.0.1" edition = "2024" -edition = "2024" authors = ["ltpp-universe "] license = "MIT" description = """Hyperlane is a lightweight and high-performance Rust HTTP server library designed to simplify network service development. It supports HTTP request parsing, response building, and TCP communication, making it ideal for building modern web services. Additionally, it provides support for request and response middleware, WebSocket, and Server-Sent Events (SSE), enabling flexible and efficient real-time communication.""" From 9e0cda584114dded8dc156749daebc951673665f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 23 Mar 2025 20:02:17 +0800 Subject: [PATCH 090/128] remove: log --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- frameworks/Rust/hyperlane/src/server.rs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 27bb8059d95..b2afce63b72 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.52.1" +hyperlane = "4.53.0" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 35aa1362230..2c96e747411 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -5,12 +5,12 @@ pub async fn run_server() { let server: Server = Server::new(); server.host("0.0.0.0").await; server.port(8080).await; - server.log_dir("./logs").await; + server.disable_log().await; + server.disable_inner_log().await; + server.disable_inner_print().await; server.http_line_buffer_size(512).await; server.websocket_buffer_size(512).await; server.log_interval_millis(1_000_000_000).await; - server.disable_inner_log().await; - server.disable_inner_print().await; server.route("/plaintext", plaintext).await; server.route("/json", json).await; server.route("/cached-quer", cached_queries).await; From 07ad0ee255076d4b802b149802e5c019d4219d64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 23 Mar 2025 20:24:32 +0800 Subject: [PATCH 091/128] remove: log --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index b2afce63b72..d8619ced246 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.53.0" +hyperlane = "4.54.0" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } From 31ba915142332f1500fd5c3215dac1a8caedae97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 23 Mar 2025 21:58:22 +0800 Subject: [PATCH 092/128] feat: async --- frameworks/Rust/hyperlane/src/db.rs | 27 +++++------------ frameworks/Rust/hyperlane/src/main.rs | 1 + .../Rust/hyperlane/src/request_middleware.rs | 1 - .../Rust/hyperlane/src/response_middleware.rs | 1 - frameworks/Rust/hyperlane/src/route.rs | 29 ++++++++----------- frameworks/Rust/hyperlane/src/server.rs | 1 - frameworks/Rust/hyperlane/src/type.rs | 4 --- frameworks/Rust/hyperlane/src/utils.rs | 2 -- 8 files changed, 20 insertions(+), 46 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 9f4db9f0f5c..d41eeba9736 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -1,6 +1,5 @@ use crate::*; -#[inline] pub async fn get_db_connection() -> DbPoolConnection { if let Some(db_pool) = DB.get() { return db_pool.clone(); @@ -11,7 +10,6 @@ pub async fn get_db_connection() -> DbPoolConnection { db_pool } -#[inline] #[cfg(feature = "dev")] pub async fn create_database() { let db_pool: DbPoolConnection = get_db_connection().await; @@ -20,7 +18,6 @@ pub async fn create_database() { .await; } -#[inline] #[cfg(feature = "dev")] pub async fn create_table() { let db_pool: DbPoolConnection = get_db_connection().await; @@ -42,7 +39,6 @@ pub async fn create_table() { .await; } -#[inline] #[cfg(feature = "dev")] pub async fn insert_records() { let db_pool: DbPoolConnection = get_db_connection().await; @@ -80,7 +76,6 @@ pub async fn insert_records() { let _ = query(&sql).execute(&db_pool).await; } -#[inline] pub async fn init_cache() { let mut res: Vec = Vec::with_capacity(RANDOM_MAX as usize); let db_pool: DbPoolConnection = get_db_connection().await; @@ -98,7 +93,6 @@ pub async fn init_cache() { let _ = CACHE.set(res); } -#[inline] pub async fn connection_db() -> DbPoolConnection { let db_url: &str = match option_env!("POSTGRES_URL") { Some(it) => it, @@ -133,7 +127,6 @@ pub async fn connection_db() -> DbPoolConnection { pool } -#[inline] pub async fn get_update_data( limit: Queries, ) -> (String, Vec, Vec, Vec) { @@ -165,7 +158,6 @@ pub async fn get_update_data( (sql, query_res_list, id_list, random_numbers) } -#[inline] pub async fn init_db() { get_db_connection().await; #[cfg(feature = "dev")] @@ -177,13 +169,11 @@ pub async fn init_db() { init_cache().await; } -#[inline] pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow { let random_id: Queries = get_random_id(); query_world_row(db_pool, random_id).await } -#[inline] pub async fn query_world_row(db_pool: &DbPoolConnection, id: Queries) -> QueryRow { let sql: String = format!( "SELECT id, randomNumber FROM {} WHERE id = {} LIMIT 1", @@ -196,7 +186,6 @@ pub async fn query_world_row(db_pool: &DbPoolConnection, id: Queries) -> QueryRo return QueryRow::new(id as i32, 1); } -#[inline] pub async fn update_world_rows(limit: Queries) -> Vec { let db_pool: DbPoolConnection = get_db_connection().await; let (sql, data, id_list, random_numbers) = get_update_data(limit).await; @@ -211,7 +200,6 @@ pub async fn update_world_rows(limit: Queries) -> Vec { data } -#[inline] pub async fn all_world_row() -> Vec { let db_pool: DbPoolConnection = get_db_connection().await; let sql: String = format!("SELECT id, message FROM {}", TABLE_NAME_FORTUNE); @@ -219,13 +207,12 @@ pub async fn all_world_row() -> Vec { return res; } -#[inline] pub async fn get_some_row_id(limit: Queries, db_pool: &DbPoolConnection) -> Vec { - let mut res: Vec = Vec::with_capacity(limit as usize); - for _ in 0..limit { - let id: i32 = get_random_id(); - let tem: QueryRow = query_world_row(db_pool, id).await; - res.push(tem); - } - res + let futures: Vec<_> = (0..limit) + .map(|_| async { + let id: i32 = get_random_id(); + query_world_row(db_pool, id).await + }) + .collect(); + join_all(futures).await } diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 72253debec0..dc67b068e26 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -10,6 +10,7 @@ pub(crate) mod utils; pub(crate) use constant::*; pub(crate) use db::*; +pub(crate) use futures::future::join_all; pub(crate) use hyperlane::{once_cell::sync::OnceCell, serde::*, serde_json::json, *}; pub(crate) use lazy::*; pub(crate) use rand::{Rng, SeedableRng, rng, rngs::SmallRng}; diff --git a/frameworks/Rust/hyperlane/src/request_middleware.rs b/frameworks/Rust/hyperlane/src/request_middleware.rs index fe810b0a1d5..4696f51e867 100644 --- a/frameworks/Rust/hyperlane/src/request_middleware.rs +++ b/frameworks/Rust/hyperlane/src/request_middleware.rs @@ -1,6 +1,5 @@ use crate::*; -#[inline] pub async fn request(controller_data: ControllerData) { let _ = controller_data .set_response_header(CONNECTION, CONNECTION_KEEP_ALIVE) diff --git a/frameworks/Rust/hyperlane/src/response_middleware.rs b/frameworks/Rust/hyperlane/src/response_middleware.rs index dcf3b096b10..81fb0c368e9 100644 --- a/frameworks/Rust/hyperlane/src/response_middleware.rs +++ b/frameworks/Rust/hyperlane/src/response_middleware.rs @@ -1,6 +1,5 @@ use crate::*; -#[inline] pub async fn response(controller_data: ControllerData) { let _ = controller_data.send().await; } diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index c3c7cbcb855..81094acc8e3 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -1,6 +1,5 @@ use crate::*; -#[inline] pub async fn json(controller_data: ControllerData) { let json: serde_json::Value = json!({ "message": RESPONSEDATA @@ -10,7 +9,6 @@ pub async fn json(controller_data: ControllerData) { .await; } -#[inline] pub async fn plaintext(controller_data: ControllerData) { let _ = controller_data .set_response_header(CONTENT_TYPE, TEXT_PLAIN) @@ -19,7 +17,6 @@ pub async fn plaintext(controller_data: ControllerData) { .await; } -#[inline] pub async fn db(controller_data: ControllerData) { let db_connection: DbPoolConnection = get_db_connection().await; let query_row: QueryRow = random_world_row(&db_connection).await; @@ -28,7 +25,6 @@ pub async fn db(controller_data: ControllerData) { .await; } -#[inline] pub async fn queries(controller_data: ControllerData) { let queries: Queries = controller_data .get_request_query("q") @@ -37,18 +33,17 @@ pub async fn queries(controller_data: ControllerData) { .unwrap_or_default() .min(ROW_LIMIT as Queries) .max(1); - let mut data: Vec = Vec::with_capacity(queries as usize); let db_pool: DbPoolConnection = get_db_connection().await; - for _ in 0..queries { - let row: QueryRow = random_world_row(&db_pool).await; - data.push(row); - } + for _ in 0..queries {} + let futures: Vec<_> = (0..queries) + .map(|_| async { random_world_row(&db_pool).await }) + .collect(); + let data = join_all(futures).await; let _ = controller_data .set_response_body(serde_json::to_string(&data).unwrap_or_default()) .await; } -#[inline] pub async fn fortunes(controller_data: ControllerData) { let all_rows: Vec = all_world_row().await; let mut fortunes_list: Vec = all_rows @@ -72,7 +67,6 @@ pub async fn fortunes(controller_data: ControllerData) { .await; } -#[inline] pub async fn updates(controller_data: ControllerData) { let queries: Queries = controller_data .get_request_query("q") @@ -87,7 +81,6 @@ pub async fn updates(controller_data: ControllerData) { .await; } -#[inline] pub async fn cached_queries(controller_data: ControllerData) { let count: Queries = controller_data .get_request_query("c") @@ -96,11 +89,13 @@ pub async fn cached_queries(controller_data: ControllerData) { .unwrap_or_default() .min(ROW_LIMIT as Queries) .max(1); - let mut res: Vec = Vec::with_capacity(count as usize); - let cache: Vec = CACHE.get().cloned().unwrap_or_default(); - for i in 0..count { - res.push(cache[i as usize].clone()); - } + let res: Vec = CACHE + .get() + .unwrap_or(&Vec::new()) + .iter() + .take(count as usize) + .cloned() + .collect(); let _ = controller_data .set_response_body(serde_json::to_string(&res).unwrap_or_default()) .await; diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 2c96e747411..9480b372c6a 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -1,6 +1,5 @@ use crate::*; -#[inline] pub async fn run_server() { let server: Server = Server::new(); server.host("0.0.0.0").await; diff --git a/frameworks/Rust/hyperlane/src/type.rs b/frameworks/Rust/hyperlane/src/type.rs index 9ec11ff4342..b5e47ecd6cd 100644 --- a/frameworks/Rust/hyperlane/src/type.rs +++ b/frameworks/Rust/hyperlane/src/type.rs @@ -11,7 +11,6 @@ pub struct QueryRow { } impl QueryRow { - #[inline] pub fn new(id: Queries, random_number: Queries) -> Self { Self { id, @@ -27,7 +26,6 @@ pub struct Fortunes { } impl Fortunes { - #[inline] pub fn new(id: Queries, message: String) -> Self { Self { id, message } } @@ -37,14 +35,12 @@ impl Fortunes { pub struct FortunesTemplate(pub Vec); impl FortunesTemplate { - #[inline] pub fn new(list: Vec) -> Self { Self(list) } } impl fmt::Display for FortunesTemplate { - #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let fortunes: &Vec = &self.0; let _ = write!( diff --git a/frameworks/Rust/hyperlane/src/utils.rs b/frameworks/Rust/hyperlane/src/utils.rs index 16e8cdd8839..2f67531f50e 100644 --- a/frameworks/Rust/hyperlane/src/utils.rs +++ b/frameworks/Rust/hyperlane/src/utils.rs @@ -1,6 +1,5 @@ use crate::*; -#[inline] pub fn escape_html(input: &str) -> String { let mut result: String = String::new(); for ch in input.chars() { @@ -16,7 +15,6 @@ pub fn escape_html(input: &str) -> String { result } -#[inline] pub fn get_random_id() -> Queries { let mut rng: SmallRng = SmallRng::from_rng(&mut rng()); let random_id: u32 = rng.random_range(1..RANDOM_MAX_ADD_ONE); From 73740f60b69d955e650ae89538f6c5d88ce0fc72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 23 Mar 2025 22:02:06 +0800 Subject: [PATCH 093/128] remove: empty loop --- frameworks/Rust/hyperlane/src/route.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 81094acc8e3..696215823aa 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -34,11 +34,7 @@ pub async fn queries(controller_data: ControllerData) { .min(ROW_LIMIT as Queries) .max(1); let db_pool: DbPoolConnection = get_db_connection().await; - for _ in 0..queries {} - let futures: Vec<_> = (0..queries) - .map(|_| async { random_world_row(&db_pool).await }) - .collect(); - let data = join_all(futures).await; + let data: Vec = get_some_row_id(queries, &db_pool).await; let _ = controller_data .set_response_body(serde_json::to_string(&data).unwrap_or_default()) .await; From e6f7f35214f4ca19b51ea64fc41a5bfc752ab367 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 23 Mar 2025 22:08:48 +0800 Subject: [PATCH 094/128] feat: utf8 --- frameworks/Rust/hyperlane/src/request_middleware.rs | 2 +- frameworks/Rust/hyperlane/src/route.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/request_middleware.rs b/frameworks/Rust/hyperlane/src/request_middleware.rs index 4696f51e867..2973a128512 100644 --- a/frameworks/Rust/hyperlane/src/request_middleware.rs +++ b/frameworks/Rust/hyperlane/src/request_middleware.rs @@ -4,7 +4,7 @@ pub async fn request(controller_data: ControllerData) { let _ = controller_data .set_response_header(CONNECTION, CONNECTION_KEEP_ALIVE) .await - .set_response_header(CONTENT_TYPE, APPLICATION_JSON) + .set_response_header(CONTENT_TYPE, content_type_charset(APPLICATION_JSON, UTF8)) .await .set_response_header(SERVER, HYPERLANE) .await diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 696215823aa..cfd421d40ae 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -11,7 +11,7 @@ pub async fn json(controller_data: ControllerData) { pub async fn plaintext(controller_data: ControllerData) { let _ = controller_data - .set_response_header(CONTENT_TYPE, TEXT_PLAIN) + .set_response_header(CONTENT_TYPE, content_type_charset(TEXT_PLAIN, UTF8)) .await .set_response_body(RESPONSEDATA) .await; From b9f6e004e7b0d946f70a222a998ba1420b31332c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 23 Mar 2025 22:18:21 +0800 Subject: [PATCH 095/128] change: pool_size --- frameworks/Rust/hyperlane/src/db.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index d41eeba9736..09d2edd97a2 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -106,7 +106,7 @@ pub async fn connection_db() -> DbPoolConnection { DATABASE_NAME ), }; - let pool_size: u32 = (get_thread_count() >> 2).max(10).min(100) as u32; + let pool_size: u32 = (get_thread_count() << 2).max(10).min(100) as u32; let max_pool_size: u32 = option_env!("POSTGRES_MAX_POOL_SIZE") .unwrap_or(&pool_size.to_string()) .parse::() From 8f9ee7ad2ccd3cb34d3262cb3db9017dd3a95820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 23 Mar 2025 22:35:24 +0800 Subject: [PATCH 096/128] remove: utf8 --- frameworks/Rust/hyperlane/src/constant.rs | 3 ++- frameworks/Rust/hyperlane/src/main.rs | 7 ++++++- frameworks/Rust/hyperlane/src/request_middleware.rs | 2 +- frameworks/Rust/hyperlane/src/route.rs | 8 ++++---- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/constant.rs b/frameworks/Rust/hyperlane/src/constant.rs index e22ac57c0b0..3c09d6f416a 100644 --- a/frameworks/Rust/hyperlane/src/constant.rs +++ b/frameworks/Rust/hyperlane/src/constant.rs @@ -1,4 +1,5 @@ -pub static RESPONSEDATA: &str = "Hello, World!"; +pub static RESPONSEDATA_STR: &str = "Hello, World!"; +pub static RESPONSEDATA_BIN: &[u8] = b"Hello, World!"; pub static DATABASE_TYPE: &str = "postgres"; pub static DATABASE_HOST: &str = "tfb-database"; pub static DATABASE_USER_NAME: &str = "benchmarkdbuser"; diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index dc67b068e26..e240a6aa862 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -11,7 +11,12 @@ pub(crate) mod utils; pub(crate) use constant::*; pub(crate) use db::*; pub(crate) use futures::future::join_all; -pub(crate) use hyperlane::{once_cell::sync::OnceCell, serde::*, serde_json::json, *}; +pub(crate) use hyperlane::{ + once_cell::sync::OnceCell, + serde::*, + serde_json::{Value, json}, + *, +}; pub(crate) use lazy::*; pub(crate) use rand::{Rng, SeedableRng, rng, rngs::SmallRng}; pub(crate) use request_middleware::*; diff --git a/frameworks/Rust/hyperlane/src/request_middleware.rs b/frameworks/Rust/hyperlane/src/request_middleware.rs index 2973a128512..4696f51e867 100644 --- a/frameworks/Rust/hyperlane/src/request_middleware.rs +++ b/frameworks/Rust/hyperlane/src/request_middleware.rs @@ -4,7 +4,7 @@ pub async fn request(controller_data: ControllerData) { let _ = controller_data .set_response_header(CONNECTION, CONNECTION_KEEP_ALIVE) .await - .set_response_header(CONTENT_TYPE, content_type_charset(APPLICATION_JSON, UTF8)) + .set_response_header(CONTENT_TYPE, APPLICATION_JSON) .await .set_response_header(SERVER, HYPERLANE) .await diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index cfd421d40ae..22f8f24af23 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -1,8 +1,8 @@ use crate::*; pub async fn json(controller_data: ControllerData) { - let json: serde_json::Value = json!({ - "message": RESPONSEDATA + let json: Value = json!({ + "message": RESPONSEDATA_STR }); let _ = controller_data .set_response_body(serde_json::to_string(&json).unwrap_or_default()) @@ -11,9 +11,9 @@ pub async fn json(controller_data: ControllerData) { pub async fn plaintext(controller_data: ControllerData) { let _ = controller_data - .set_response_header(CONTENT_TYPE, content_type_charset(TEXT_PLAIN, UTF8)) + .set_response_header(CONTENT_TYPE, TEXT_PLAIN) .await - .set_response_body(RESPONSEDATA) + .set_response_body(RESPONSEDATA_BIN) .await; } From 519aa5bbc665d91a31f5b0f4d5906732f3f35ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Mon, 24 Mar 2025 23:10:14 +0800 Subject: [PATCH 097/128] feat: log --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- frameworks/Rust/hyperlane/src/server.rs | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index d8619ced246..411d2c00067 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.54.0" +hyperlane = "4.55.0" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 9480b372c6a..1730e1b0ef7 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -9,7 +9,6 @@ pub async fn run_server() { server.disable_inner_print().await; server.http_line_buffer_size(512).await; server.websocket_buffer_size(512).await; - server.log_interval_millis(1_000_000_000).await; server.route("/plaintext", plaintext).await; server.route("/json", json).await; server.route("/cached-quer", cached_queries).await; From 258d2feb6797e874958b9c52b04cea5faf36cfaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Mon, 24 Mar 2025 23:28:02 +0800 Subject: [PATCH 098/128] feat: log --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 411d2c00067..178e5438158 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.55.0" +hyperlane = "4.56.0" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } From bee43f369efec19e99bb8afc3fee46b4f8935b77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Mon, 24 Mar 2025 23:56:38 +0800 Subject: [PATCH 099/128] feat: v3.14.1 --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 178e5438158..ff050f6e959 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.56.0" +hyperlane = "4.56.1" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } From 0384364bb3a1efd29bd2262d4f9e879e7b69dc43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Tue, 25 Mar 2025 13:44:06 +0800 Subject: [PATCH 100/128] feat: 4.56.3 --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index ff050f6e959..da9c8166dd6 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.56.1" +hyperlane = "4.56.3" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } From 23924c34ab63d597f8b66f00f18ae9f1bccaa55f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Tue, 25 Mar 2025 23:06:20 +0800 Subject: [PATCH 101/128] feat: 4.56.4 --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index da9c8166dd6..b05e344c62a 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.56.3" +hyperlane = "4.56.4" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } From dc9042fe2a490a45cf967064598811a882e3c439 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Wed, 26 Mar 2025 22:42:24 +0800 Subject: [PATCH 102/128] feat: 4.56.5 --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index b05e344c62a..7a4b0327fea 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.56.4" +hyperlane = "4.56.5" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } From d5844cd48c8a17811b893abeb3de2a24c23b3f03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Fri, 28 Mar 2025 08:48:09 +0800 Subject: [PATCH 103/128] feat: rename --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- .../Rust/hyperlane/src/request_middleware.rs | 4 +-- .../Rust/hyperlane/src/response_middleware.rs | 4 +-- frameworks/Rust/hyperlane/src/route.rs | 35 +++++++++---------- 4 files changed, 22 insertions(+), 23 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 7a4b0327fea..afdd5164a3f 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.56.5" +hyperlane = "4.57.0" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } diff --git a/frameworks/Rust/hyperlane/src/request_middleware.rs b/frameworks/Rust/hyperlane/src/request_middleware.rs index 4696f51e867..8b658d6207e 100644 --- a/frameworks/Rust/hyperlane/src/request_middleware.rs +++ b/frameworks/Rust/hyperlane/src/request_middleware.rs @@ -1,7 +1,7 @@ use crate::*; -pub async fn request(controller_data: ControllerData) { - let _ = controller_data +pub async fn request(ctx: Context) { + let _ = ctx .set_response_header(CONNECTION, CONNECTION_KEEP_ALIVE) .await .set_response_header(CONTENT_TYPE, APPLICATION_JSON) diff --git a/frameworks/Rust/hyperlane/src/response_middleware.rs b/frameworks/Rust/hyperlane/src/response_middleware.rs index 81fb0c368e9..85e8f422ebf 100644 --- a/frameworks/Rust/hyperlane/src/response_middleware.rs +++ b/frameworks/Rust/hyperlane/src/response_middleware.rs @@ -1,5 +1,5 @@ use crate::*; -pub async fn response(controller_data: ControllerData) { - let _ = controller_data.send().await; +pub async fn response(ctx: Context) { + let _ = ctx.send().await; } diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 22f8f24af23..cc6a184e6a7 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -1,32 +1,32 @@ use crate::*; -pub async fn json(controller_data: ControllerData) { +pub async fn json(ctx: Context) { let json: Value = json!({ "message": RESPONSEDATA_STR }); - let _ = controller_data + let _ = ctx .set_response_body(serde_json::to_string(&json).unwrap_or_default()) .await; } -pub async fn plaintext(controller_data: ControllerData) { - let _ = controller_data +pub async fn plaintext(ctx: Context) { + let _ = ctx .set_response_header(CONTENT_TYPE, TEXT_PLAIN) .await .set_response_body(RESPONSEDATA_BIN) .await; } -pub async fn db(controller_data: ControllerData) { +pub async fn db(ctx: Context) { let db_connection: DbPoolConnection = get_db_connection().await; let query_row: QueryRow = random_world_row(&db_connection).await; - let _ = controller_data + let _ = ctx .set_response_body(serde_json::to_string(&query_row).unwrap_or_default()) .await; } -pub async fn queries(controller_data: ControllerData) { - let queries: Queries = controller_data +pub async fn queries(ctx: Context) { + let queries: Queries = ctx .get_request_query("q") .await .and_then(|queries| queries.parse::().ok()) @@ -35,12 +35,12 @@ pub async fn queries(controller_data: ControllerData) { .max(1); let db_pool: DbPoolConnection = get_db_connection().await; let data: Vec = get_some_row_id(queries, &db_pool).await; - let _ = controller_data + let _ = ctx .set_response_body(serde_json::to_string(&data).unwrap_or_default()) .await; } -pub async fn fortunes(controller_data: ControllerData) { +pub async fn fortunes(ctx: Context) { let all_rows: Vec = all_world_row().await; let mut fortunes_list: Vec = all_rows .iter() @@ -56,15 +56,14 @@ pub async fn fortunes(controller_data: ControllerData) { )); fortunes_list.sort_by(|it, next| it.message.cmp(&next.message)); let res: String = FortunesTemplate::new(fortunes_list).to_string(); - controller_data - .set_response_header(CONTENT_TYPE, content_type_charset(TEXT_HTML, UTF8)) + ctx.set_response_header(CONTENT_TYPE, content_type_charset(TEXT_HTML, UTF8)) .await .set_response_body(res) .await; } -pub async fn updates(controller_data: ControllerData) { - let queries: Queries = controller_data +pub async fn updates(ctx: Context) { + let queries: Queries = ctx .get_request_query("q") .await .and_then(|queries| queries.parse::().ok()) @@ -72,13 +71,13 @@ pub async fn updates(controller_data: ControllerData) { .min(ROW_LIMIT as Queries) .max(1); let res: Vec = update_world_rows(queries).await; - let _ = controller_data + let _ = ctx .set_response_body(serde_json::to_string(&res).unwrap_or_default()) .await; } -pub async fn cached_queries(controller_data: ControllerData) { - let count: Queries = controller_data +pub async fn cached_queries(ctx: Context) { + let count: Queries = ctx .get_request_query("c") .await .and_then(|queries| queries.parse::().ok()) @@ -92,7 +91,7 @@ pub async fn cached_queries(controller_data: ControllerData) { .take(count as usize) .cloned() .collect(); - let _ = controller_data + let _ = ctx .set_response_body(serde_json::to_string(&res).unwrap_or_default()) .await; } From c3a79087c2a83a87550154d0b7b94e94e97bad95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 29 Mar 2025 10:49:48 +0800 Subject: [PATCH 104/128] Merge branch 'master' of github.com:TechEmpower/FrameworkBenchmarks --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- frameworks/Rust/hyperlane/src/db.rs | 2 +- frameworks/Rust/hyperlane/src/server.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index afdd5164a3f..76fb78d91fb 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.57.0" +hyperlane = "4.59.0" rand = "0.9.0" serde = "1.0.219" sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 09d2edd97a2..628b3afd5d1 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -133,7 +133,7 @@ pub async fn get_update_data( let db_pool: DbPoolConnection = get_db_connection().await; let mut query_res_list: Vec = Vec::with_capacity(limit as usize); let rows: Vec = get_some_row_id(limit, &db_pool).await; - let mut sql = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME_WORLD); + let mut sql: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME_WORLD); let mut id_list: Vec = Vec::with_capacity(rows.len()); let mut value_list: Vec = Vec::with_capacity(rows.len() * 2); let mut random_numbers: Vec = Vec::with_capacity(rows.len()); diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 1730e1b0ef7..7ed61066e0a 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -18,5 +18,5 @@ pub async fn run_server() { server.route("/upda", updates).await; server.request_middleware(request).await; server.response_middleware(response).await; - server.listen().await; + server.listen().await.unwrap(); } From c81ee64db14782b4ee812aebcd7795af3edf4e79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 29 Mar 2025 18:23:18 +0800 Subject: [PATCH 105/128] feat: speed --- frameworks/Rust/hyperlane/src/db.rs | 27 +++++++++++++++++++-------- frameworks/Rust/hyperlane/src/main.rs | 5 +++-- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 628b3afd5d1..db7432e6640 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -176,7 +176,7 @@ pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow { pub async fn query_world_row(db_pool: &DbPoolConnection, id: Queries) -> QueryRow { let sql: String = format!( - "SELECT id, randomNumber FROM {} WHERE id = {} LIMIT 1", + "SELECT id, randomNumber FROM {} WHERE id = {}", TABLE_NAME_WORLD, id ); if let Ok(rows) = query(&sql).fetch_one(db_pool).await { @@ -208,11 +208,22 @@ pub async fn all_world_row() -> Vec { } pub async fn get_some_row_id(limit: Queries, db_pool: &DbPoolConnection) -> Vec { - let futures: Vec<_> = (0..limit) - .map(|_| async { - let id: i32 = get_random_id(); - query_world_row(db_pool, id).await - }) - .collect(); - join_all(futures).await + let semaphore: Arc = Arc::new(Semaphore::new(32)); + let mut tasks: Vec> = Vec::with_capacity(limit as usize); + for _ in 0..limit { + let _ = semaphore.clone().acquire_owned().await.map(|permit| { + let db_pool: DbPoolConnection = db_pool.clone(); + tasks.push(tokio::spawn(async move { + let id: i32 = get_random_id(); + let res: QueryRow = query_world_row(&db_pool, id).await; + drop(permit); + res + })); + }); + } + join_all(tasks) + .await + .into_iter() + .filter_map(Result::ok) + .collect() } diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index e240a6aa862..13d03ea470b 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -10,11 +10,12 @@ pub(crate) mod utils; pub(crate) use constant::*; pub(crate) use db::*; -pub(crate) use futures::future::join_all; pub(crate) use hyperlane::{ + futures::future::join_all, once_cell::sync::OnceCell, serde::*, serde_json::{Value, json}, + tokio::{sync::Semaphore, task::JoinHandle}, *, }; pub(crate) use lazy::*; @@ -27,7 +28,7 @@ pub(crate) use sqlx::{ postgres::{PgPoolOptions, PgRow}, *, }; -pub(crate) use std::fmt; +pub(crate) use std::{fmt, sync::Arc}; pub(crate) use r#type::*; pub(crate) use utils::*; From 19f5ae6a752ad706f36f9004585c7911d4a65bfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 29 Mar 2025 18:39:28 +0800 Subject: [PATCH 106/128] feat: speed --- frameworks/Rust/hyperlane/src/db.rs | 39 +++++++++++--------------- frameworks/Rust/hyperlane/src/lazy.rs | 4 +-- frameworks/Rust/hyperlane/src/main.rs | 6 ++-- frameworks/Rust/hyperlane/src/route.rs | 16 ++++------- 4 files changed, 26 insertions(+), 39 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index db7432e6640..7d0ade5c0b5 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -1,18 +1,12 @@ use crate::*; -pub async fn get_db_connection() -> DbPoolConnection { - if let Some(db_pool) = DB.get() { - return db_pool.clone(); - }; - let db_pool: DbPoolConnection = connection_db().await; - DB.set(db_pool.clone()) - .expect("Failed to initialize DB_POOL"); - db_pool +pub async fn get_db_connection() -> &'static DbPoolConnection { + &DB } #[cfg(feature = "dev")] pub async fn create_database() { - let db_pool: DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection().await; let _ = query(&format!("CREATE DATABASE {};", DATABASE_NAME)) .execute(&db_pool) .await; @@ -20,7 +14,7 @@ pub async fn create_database() { #[cfg(feature = "dev")] pub async fn create_table() { - let db_pool: DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection().await; let _ = query(&format!( "CREATE TABLE IF NOT EXISTS {} ( id SERIAL PRIMARY KEY, randomNumber INT NOT NULL @@ -41,7 +35,7 @@ pub async fn create_table() { #[cfg(feature = "dev")] pub async fn insert_records() { - let db_pool: DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection().await; let row: PgRow = query(&format!("SELECT COUNT(*) FROM {}", TABLE_NAME_WORLD)) .fetch_one(&db_pool) .await @@ -76,21 +70,21 @@ pub async fn insert_records() { let _ = query(&sql).execute(&db_pool).await; } -pub async fn init_cache() { +pub async fn init_cache() -> Vec { let mut res: Vec = Vec::with_capacity(RANDOM_MAX as usize); - let db_pool: DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection().await; let sql: String = format!( "SELECT id, randomNumber FROM {} LIMIT {}", TABLE_NAME_WORLD, RANDOM_MAX ); - if let Ok(rows) = query(&sql).fetch_all(&db_pool).await { + if let Ok(rows) = query(&sql).fetch_all(db_pool).await { for row in rows { let id: i32 = row.get(KEY_ID); let random_number: i32 = row.get(KEY_RANDOM_NUMBER); res.push(QueryRow::new(id, random_number)); } } - let _ = CACHE.set(res); + res } pub async fn connection_db() -> DbPoolConnection { @@ -130,9 +124,9 @@ pub async fn connection_db() -> DbPoolConnection { pub async fn get_update_data( limit: Queries, ) -> (String, Vec, Vec, Vec) { - let db_pool: DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection().await; let mut query_res_list: Vec = Vec::with_capacity(limit as usize); - let rows: Vec = get_some_row_id(limit, &db_pool).await; + let rows: Vec = get_some_row_id(limit, db_pool).await; let mut sql: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME_WORLD); let mut id_list: Vec = Vec::with_capacity(rows.len()); let mut value_list: Vec = Vec::with_capacity(rows.len() * 2); @@ -159,7 +153,6 @@ pub async fn get_update_data( } pub async fn init_db() { - get_db_connection().await; #[cfg(feature = "dev")] { create_database().await; @@ -187,7 +180,7 @@ pub async fn query_world_row(db_pool: &DbPoolConnection, id: Queries) -> QueryRo } pub async fn update_world_rows(limit: Queries) -> Vec { - let db_pool: DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection().await; let (sql, data, id_list, random_numbers) = get_update_data(limit).await; let mut query_builder: query::Query<'_, Postgres, postgres::PgArguments> = query(&sql); for (id, random_number) in id_list.iter().zip(random_numbers.iter()) { @@ -196,14 +189,14 @@ pub async fn update_world_rows(limit: Queries) -> Vec { for id in &id_list { query_builder = query_builder.bind(id); } - let _ = query_builder.execute(&db_pool).await; + let _ = query_builder.execute(db_pool).await; data } pub async fn all_world_row() -> Vec { - let db_pool: DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection().await; let sql: String = format!("SELECT id, message FROM {}", TABLE_NAME_FORTUNE); - let res: Vec = query(&sql).fetch_all(&db_pool).await.unwrap_or_default(); + let res: Vec = query(&sql).fetch_all(db_pool).await.unwrap_or_default(); return res; } @@ -213,7 +206,7 @@ pub async fn get_some_row_id(limit: Queries, db_pool: &DbPoolConnection) -> Vec< for _ in 0..limit { let _ = semaphore.clone().acquire_owned().await.map(|permit| { let db_pool: DbPoolConnection = db_pool.clone(); - tasks.push(tokio::spawn(async move { + tasks.push(spawn(async move { let id: i32 = get_random_id(); let res: QueryRow = query_world_row(&db_pool, id).await; drop(permit); diff --git a/frameworks/Rust/hyperlane/src/lazy.rs b/frameworks/Rust/hyperlane/src/lazy.rs index 6e95d5019b0..a792c04b13b 100644 --- a/frameworks/Rust/hyperlane/src/lazy.rs +++ b/frameworks/Rust/hyperlane/src/lazy.rs @@ -1,4 +1,4 @@ use crate::*; -pub static DB: OnceCell = OnceCell::new(); -pub static CACHE: OnceCell> = OnceCell::new(); +pub static DB: Lazy = Lazy::new(|| block_on(async { connection_db().await })); +pub static CACHE: Lazy> = Lazy::new(|| block_on(async { init_cache().await })); diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 13d03ea470b..7f3bd35a2d1 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -11,11 +11,11 @@ pub(crate) mod utils; pub(crate) use constant::*; pub(crate) use db::*; pub(crate) use hyperlane::{ - futures::future::join_all, - once_cell::sync::OnceCell, + futures::{executor::block_on, future::join_all}, + once_cell::sync::Lazy, serde::*, serde_json::{Value, json}, - tokio::{sync::Semaphore, task::JoinHandle}, + tokio::{spawn, sync::Semaphore, task::JoinHandle}, *, }; pub(crate) use lazy::*; diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index cc6a184e6a7..94902d51037 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -18,8 +18,8 @@ pub async fn plaintext(ctx: Context) { } pub async fn db(ctx: Context) { - let db_connection: DbPoolConnection = get_db_connection().await; - let query_row: QueryRow = random_world_row(&db_connection).await; + let db_connection: &DbPoolConnection = get_db_connection().await; + let query_row: QueryRow = random_world_row(db_connection).await; let _ = ctx .set_response_body(serde_json::to_string(&query_row).unwrap_or_default()) .await; @@ -33,8 +33,8 @@ pub async fn queries(ctx: Context) { .unwrap_or_default() .min(ROW_LIMIT as Queries) .max(1); - let db_pool: DbPoolConnection = get_db_connection().await; - let data: Vec = get_some_row_id(queries, &db_pool).await; + let db_pool: &DbPoolConnection = get_db_connection().await; + let data: Vec = get_some_row_id(queries, db_pool).await; let _ = ctx .set_response_body(serde_json::to_string(&data).unwrap_or_default()) .await; @@ -84,13 +84,7 @@ pub async fn cached_queries(ctx: Context) { .unwrap_or_default() .min(ROW_LIMIT as Queries) .max(1); - let res: Vec = CACHE - .get() - .unwrap_or(&Vec::new()) - .iter() - .take(count as usize) - .cloned() - .collect(); + let res: Vec = CACHE.iter().take(count as usize).cloned().collect(); let _ = ctx .set_response_body(serde_json::to_string(&res).unwrap_or_default()) .await; From f77a306daca781ebdb45471b7053feca83004228 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 29 Mar 2025 18:52:07 +0800 Subject: [PATCH 107/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 76fb78d91fb..8b8f51f3a82 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,10 +18,10 @@ exclude = [ ] [dependencies] -hyperlane = "4.59.0" -rand = "0.9.0" -serde = "1.0.219" -sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } +hyperlane = "=4.59.0" +rand = "=0.9.0" +serde = "=1.0.219" +sqlx = { version = "=0.8.3", features = ["runtime-tokio", "postgres"] } [profile.dev] incremental = false From f6a98ab1f4be45aeb5b177cafe9badc832a202ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 29 Mar 2025 20:48:21 +0800 Subject: [PATCH 108/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 8b8f51f3a82..9388d1a8e8c 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "=4.59.0" +hyperlane = "=4.59.1" rand = "=0.9.0" serde = "=1.0.219" sqlx = { version = "=0.8.3", features = ["runtime-tokio", "postgres"] } From ceb254c71f5f575aceab087431b21888f52cba2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sat, 29 Mar 2025 22:00:51 +0800 Subject: [PATCH 109/128] lock: toml --- frameworks/Rust/hyperlane/src/db.rs | 16 ++++++++-------- frameworks/Rust/hyperlane/src/route.rs | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 7d0ade5c0b5..531fcfa268c 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -1,12 +1,12 @@ use crate::*; -pub async fn get_db_connection() -> &'static DbPoolConnection { +pub fn get_db_connection() -> &'static DbPoolConnection { &DB } #[cfg(feature = "dev")] pub async fn create_database() { - let db_pool: &DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection(); let _ = query(&format!("CREATE DATABASE {};", DATABASE_NAME)) .execute(&db_pool) .await; @@ -14,7 +14,7 @@ pub async fn create_database() { #[cfg(feature = "dev")] pub async fn create_table() { - let db_pool: &DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection(); let _ = query(&format!( "CREATE TABLE IF NOT EXISTS {} ( id SERIAL PRIMARY KEY, randomNumber INT NOT NULL @@ -35,7 +35,7 @@ pub async fn create_table() { #[cfg(feature = "dev")] pub async fn insert_records() { - let db_pool: &DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection(); let row: PgRow = query(&format!("SELECT COUNT(*) FROM {}", TABLE_NAME_WORLD)) .fetch_one(&db_pool) .await @@ -72,7 +72,7 @@ pub async fn insert_records() { pub async fn init_cache() -> Vec { let mut res: Vec = Vec::with_capacity(RANDOM_MAX as usize); - let db_pool: &DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection(); let sql: String = format!( "SELECT id, randomNumber FROM {} LIMIT {}", TABLE_NAME_WORLD, RANDOM_MAX @@ -124,7 +124,7 @@ pub async fn connection_db() -> DbPoolConnection { pub async fn get_update_data( limit: Queries, ) -> (String, Vec, Vec, Vec) { - let db_pool: &DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection(); let mut query_res_list: Vec = Vec::with_capacity(limit as usize); let rows: Vec = get_some_row_id(limit, db_pool).await; let mut sql: String = format!("UPDATE {} SET randomNumber = CASE id ", TABLE_NAME_WORLD); @@ -180,7 +180,7 @@ pub async fn query_world_row(db_pool: &DbPoolConnection, id: Queries) -> QueryRo } pub async fn update_world_rows(limit: Queries) -> Vec { - let db_pool: &DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection(); let (sql, data, id_list, random_numbers) = get_update_data(limit).await; let mut query_builder: query::Query<'_, Postgres, postgres::PgArguments> = query(&sql); for (id, random_number) in id_list.iter().zip(random_numbers.iter()) { @@ -194,7 +194,7 @@ pub async fn update_world_rows(limit: Queries) -> Vec { } pub async fn all_world_row() -> Vec { - let db_pool: &DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection(); let sql: String = format!("SELECT id, message FROM {}", TABLE_NAME_FORTUNE); let res: Vec = query(&sql).fetch_all(db_pool).await.unwrap_or_default(); return res; diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs index 94902d51037..8ed6ec4e460 100644 --- a/frameworks/Rust/hyperlane/src/route.rs +++ b/frameworks/Rust/hyperlane/src/route.rs @@ -18,7 +18,7 @@ pub async fn plaintext(ctx: Context) { } pub async fn db(ctx: Context) { - let db_connection: &DbPoolConnection = get_db_connection().await; + let db_connection: &DbPoolConnection = get_db_connection(); let query_row: QueryRow = random_world_row(db_connection).await; let _ = ctx .set_response_body(serde_json::to_string(&query_row).unwrap_or_default()) @@ -33,7 +33,7 @@ pub async fn queries(ctx: Context) { .unwrap_or_default() .min(ROW_LIMIT as Queries) .max(1); - let db_pool: &DbPoolConnection = get_db_connection().await; + let db_pool: &DbPoolConnection = get_db_connection(); let data: Vec = get_some_row_id(queries, db_pool).await; let _ = ctx .set_response_body(serde_json::to_string(&data).unwrap_or_default()) From 482cc17056a71a1259080f80c37d747716e39823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 30 Mar 2025 08:57:56 +0800 Subject: [PATCH 110/128] lock: toml --- frameworks/Rust/hyperlane/src/db.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 531fcfa268c..2059281737a 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -159,7 +159,7 @@ pub async fn init_db() { create_table().await; insert_records().await; } - init_cache().await; + std::hint::black_box(init_cache().await); } pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow { From 48bd6e8dcacc06ff5e93cbd1621951ccc854cdd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 30 Mar 2025 09:04:17 +0800 Subject: [PATCH 111/128] lock: toml --- frameworks/Rust/hyperlane/src/db.rs | 2 +- frameworks/Rust/hyperlane/src/main.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index 2059281737a..d4842377b9b 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -159,7 +159,7 @@ pub async fn init_db() { create_table().await; insert_records().await; } - std::hint::black_box(init_cache().await); + black_box(init_cache().await); } pub async fn random_world_row(db_pool: &DbPoolConnection) -> QueryRow { diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index 7f3bd35a2d1..a37ecfcf4b3 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -28,7 +28,7 @@ pub(crate) use sqlx::{ postgres::{PgPoolOptions, PgRow}, *, }; -pub(crate) use std::{fmt, sync::Arc}; +pub(crate) use std::{fmt, hint::black_box, sync::Arc}; pub(crate) use r#type::*; pub(crate) use utils::*; From a567e671c8826d3b0e53876d9793ce4aacd5019b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 30 Mar 2025 09:18:15 +0800 Subject: [PATCH 112/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.toml | 1 + frameworks/Rust/hyperlane/src/db.rs | 14 +++----------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 9388d1a8e8c..c6345c94836 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -19,6 +19,7 @@ exclude = [ [dependencies] hyperlane = "=4.59.1" +num_cpus = "=1.16.0" rand = "=0.9.0" serde = "=1.0.219" sqlx = { version = "=0.8.3", features = ["runtime-tokio", "postgres"] } diff --git a/frameworks/Rust/hyperlane/src/db.rs b/frameworks/Rust/hyperlane/src/db.rs index d4842377b9b..92d7253438d 100644 --- a/frameworks/Rust/hyperlane/src/db.rs +++ b/frameworks/Rust/hyperlane/src/db.rs @@ -100,18 +100,10 @@ pub async fn connection_db() -> DbPoolConnection { DATABASE_NAME ), }; - let pool_size: u32 = (get_thread_count() << 2).max(10).min(100) as u32; - let max_pool_size: u32 = option_env!("POSTGRES_MAX_POOL_SIZE") - .unwrap_or(&pool_size.to_string()) - .parse::() - .unwrap_or(pool_size); - let min_pool_size: u32 = option_env!("POSTGRES_MIN_POOL_SIZE") - .unwrap_or(&pool_size.to_string()) - .parse::() - .unwrap_or(pool_size); + let pool_size: u32 = num_cpus::get() as u32; let pool: DbPoolConnection = PgPoolOptions::new() - .max_connections(max_pool_size) - .min_connections(min_pool_size) + .max_connections(100) + .min_connections(pool_size) .max_lifetime(None) .test_before_acquire(false) .idle_timeout(None) From 6de8e40c04d3b132d265ae5e05adcd5c0dd0c607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 30 Mar 2025 16:03:12 +0800 Subject: [PATCH 113/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index c6345c94836..c763690f15d 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "=4.59.1" +hyperlane = "=4.60.0" num_cpus = "=1.16.0" rand = "=0.9.0" serde = "=1.0.219" From 6b6aba50829da30ff58ae8021eda0bf189f361be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Mon, 31 Mar 2025 20:28:45 +0800 Subject: [PATCH 114/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index c763690f15d..1fdb7ce7831 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "=4.60.0" +hyperlane = "=4.61.0" num_cpus = "=1.16.0" rand = "=0.9.0" serde = "=1.0.219" From 2c558cc8985ce2103926c8b23442216097a8f9e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Wed, 2 Apr 2025 07:59:18 +0800 Subject: [PATCH 115/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 1fdb7ce7831..c4a5a433d80 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "=4.61.0" +hyperlane = "=4.61.1" num_cpus = "=1.16.0" rand = "=0.9.0" serde = "=1.0.219" From ff0e59d9c1bdd81711672a262f5224a231bdb548 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Wed, 2 Apr 2025 22:06:14 +0800 Subject: [PATCH 116/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index c4a5a433d80..0b95a983e0d 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "=4.61.1" +hyperlane = "=4.61.2" num_cpus = "=1.16.0" rand = "=0.9.0" serde = "=1.0.219" From eb4e3377cb2139c8e6b0e347c58c44ab250b4a11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Thu, 3 Apr 2025 09:26:10 +0800 Subject: [PATCH 117/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 0b95a983e0d..d0f00a9de66 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "=4.61.2" +hyperlane = "=4.62.0" num_cpus = "=1.16.0" rand = "=0.9.0" serde = "=1.0.219" From efcb34dcfc2dde7ca23134f1c162a733a22a8fc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Thu, 3 Apr 2025 23:42:20 +0800 Subject: [PATCH 118/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- frameworks/Rust/hyperlane/src/server.rs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index d0f00a9de66..269e9043116 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "=4.62.0" +hyperlane = "=4.64.0" num_cpus = "=1.16.0" rand = "=0.9.0" serde = "=1.0.219" diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 7ed61066e0a..7c5da96275d 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -4,6 +4,8 @@ pub async fn run_server() { let server: Server = Server::new(); server.host("0.0.0.0").await; server.port(8080).await; + server.disable_linger().await; + server.disable_nodelay().await; server.disable_log().await; server.disable_inner_log().await; server.disable_inner_print().await; From d364aac594600daf91dd20c14cb6a0407d3acc0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Fri, 4 Apr 2025 09:20:25 +0800 Subject: [PATCH 119/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 269e9043116..66cbc75cbb8 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "=4.64.0" +hyperlane = "=4.65.0" num_cpus = "=1.16.0" rand = "=0.9.0" serde = "=1.0.219" From fe200ce30fe1a526fcec0b25ec2aef8742815fcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Fri, 4 Apr 2025 19:34:16 +0800 Subject: [PATCH 120/128] feat: runtime --- frameworks/Rust/hyperlane/src/main.rs | 6 ++---- frameworks/Rust/hyperlane/src/server.rs | 23 ++++++++++++++++++++++- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/frameworks/Rust/hyperlane/src/main.rs b/frameworks/Rust/hyperlane/src/main.rs index a37ecfcf4b3..0b7ce0a26de 100644 --- a/frameworks/Rust/hyperlane/src/main.rs +++ b/frameworks/Rust/hyperlane/src/main.rs @@ -32,8 +32,6 @@ pub(crate) use std::{fmt, hint::black_box, sync::Arc}; pub(crate) use r#type::*; pub(crate) use utils::*; -#[tokio::main] -async fn main() { - init_db().await; - run_server().await; +fn main() { + run_server(); } diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 7c5da96275d..d075a5d94e2 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -1,6 +1,18 @@ use crate::*; +use tokio::runtime::{Builder, Runtime}; -pub async fn run_server() { +fn runtime() -> Runtime { + Builder::new_multi_thread() + .worker_threads(get_thread_count()) + .thread_stack_size(1024) + .max_blocking_threads(5120) + .max_io_events_per_tick(5120) + .enable_all() + .build() + .unwrap() +} + +async fn init_server() { let server: Server = Server::new(); server.host("0.0.0.0").await; server.port(8080).await; @@ -22,3 +34,12 @@ pub async fn run_server() { server.response_middleware(response).await; server.listen().await.unwrap(); } + +async fn init() { + init_db().await; + init_server().await; +} + +pub fn run_server() { + runtime().block_on(init()); +} From 636f4e9418e152d17f9a7dbd14260c4b000c1915 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Fri, 4 Apr 2025 20:46:14 +0800 Subject: [PATCH 121/128] feat: runtime --- frameworks/Rust/hyperlane/src/server.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index d075a5d94e2..99c2e374f7d 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -4,7 +4,7 @@ use tokio::runtime::{Builder, Runtime}; fn runtime() -> Runtime { Builder::new_multi_thread() .worker_threads(get_thread_count()) - .thread_stack_size(1024) + .thread_stack_size(0x1000) .max_blocking_threads(5120) .max_io_events_per_tick(5120) .enable_all() From 2b3c2d6205f473ea3eb8392813d97e1399f7160b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Fri, 4 Apr 2025 21:16:24 +0800 Subject: [PATCH 122/128] feat: runtime --- frameworks/Rust/hyperlane/src/server.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs index 99c2e374f7d..72883143580 100644 --- a/frameworks/Rust/hyperlane/src/server.rs +++ b/frameworks/Rust/hyperlane/src/server.rs @@ -4,7 +4,7 @@ use tokio::runtime::{Builder, Runtime}; fn runtime() -> Runtime { Builder::new_multi_thread() .worker_threads(get_thread_count()) - .thread_stack_size(0x1000) + .thread_stack_size(2097152) .max_blocking_threads(5120) .max_io_events_per_tick(5120) .enable_all() From c51c4b922ee051163ce747c08a5ae37ea234d539 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 6 Apr 2025 11:22:19 +0800 Subject: [PATCH 123/128] lock: toml --- frameworks/Rust/hyperlane/.gitignore | 3 +- frameworks/Rust/hyperlane/Cargo.lock | 2381 ++++++++++++++++++++++++++ frameworks/Rust/hyperlane/Cargo.toml | 10 +- 3 files changed, 2387 insertions(+), 7 deletions(-) create mode 100644 frameworks/Rust/hyperlane/Cargo.lock diff --git a/frameworks/Rust/hyperlane/.gitignore b/frameworks/Rust/hyperlane/.gitignore index af8e65c2e7a..c0ed7d09f10 100644 --- a/frameworks/Rust/hyperlane/.gitignore +++ b/frameworks/Rust/hyperlane/.gitignore @@ -1,3 +1,2 @@ /target -/logs -Cargo.lock \ No newline at end of file +/logs \ No newline at end of file diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock new file mode 100644 index 00000000000..eee47a36441 --- /dev/null +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -0,0 +1,2381 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "getrandom 0.2.15", + "once_cell", + "version_check", + "zerocopy 0.7.35", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "async-func" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61cf3fe5910b9139e5f8b4bdb4a0923d5aaae21fb45cb64e22d4b43ac70da5ad" +dependencies = [ + "tokio", +] + +[[package]] +name = "atoi" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" +dependencies = [ + "num-traits", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +dependencies = [ + "serde", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "brotli" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bumpalo" +version = "3.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clonelicious" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc3dfae702af156917c65f4ccc70687088331f0b694e5e687453e4d68a16b496" + +[[package]] +name = "color-output" +version = "6.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5427d1c209887c8f2e528a64e0849a517fd14fe74d54904af57cb9446cf20b4" +dependencies = [ + "hyperlane-time", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +dependencies = [ + "serde", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if", + "home", + "windows-sys 0.48.0", +] + +[[package]] +name = "event-listener" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "file-operation" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66e0c123d53cd593ab9a38d5078c8483e890259dfec47bd453dfc09e6c052aca" +dependencies = [ + "tokio", +] + +[[package]] +name = "flate2" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "float-cmp" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8" +dependencies = [ + "num-traits", +] + +[[package]] +name = "flume" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" +dependencies = [ + "futures-core", + "futures-sink", + "spin", +] + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-intrusive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" +dependencies = [ + "futures-core", + "lock_api", + "parking_lot", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "halfbrown" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2c385c6df70fd180bbb673d93039dbd2cd34e41d782600bdf6e1ca7bce39aa" +dependencies = [ + "hashbrown 0.15.2", + "serde", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "hashlink" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" +dependencies = [ + "hashbrown 0.15.2", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "home" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "http-compress" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def62accac840ecbddc4170585171192f4b0cf879fb4dc4e454699f476feff12" +dependencies = [ + "brotli", + "flate2", + "twox-hash", +] + +[[package]] +name = "http-constant" +version = "1.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711a0d020705f9eca6b58b4f23b6e815ecdafb6a8deeadd8ee6f49164b24e0c9" + +[[package]] +name = "http-type" +version = "3.61.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa58e4a32c839ccb2aba4cc0bbd5e2a8baa3699dc709f8e419ab342c01ffaafd" +dependencies = [ + "ahash", + "dashmap", + "futures", + "hex", + "http-compress", + "http-constant", + "lombok-macros", + "num_cpus", + "once_cell", + "serde", + "serde-xml-rs", + "serde_json", + "serde_urlencoded", + "simd-json", + "std-macro-extensions", + "tokio", + "twox-hash", + "url", + "urlencoding", +] + +[[package]] +name = "hyperlane" +version = "4.67.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8956c17a0b4a4bdd4227b66fdc4fb8a1a8ab6e3ea215b6fb46f88dadf9fb2996" +dependencies = [ + "async-func", + "clonelicious", + "color-output", + "file-operation", + "http-type", + "hyperlane-log", + "hyperlane-time", + "recoverable-spawn", + "recoverable-thread-pool", + "server-manager", +] + +[[package]] +name = "hyperlane-log" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15882faec87a44fc4285b5b5f0324c3b853dbc3cd2cfd4942ada9ba05828e0ee" +dependencies = [ + "file-operation", + "hyperlane-time", + "lombok-macros", + "tokio", +] + +[[package]] +name = "hyperlane-time" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4737d903a4e4ed8c82c13d4878faebc117e06bd3386d7002bad4347558209de" + +[[package]] +name = "hyperlane_techempower" +version = "0.0.1" +dependencies = [ + "hyperlane", + "num_cpus", + "rand 0.9.0", + "serde", + "sqlx", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +dependencies = [ + "equivalent", + "hashbrown 0.15.2", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] + +[[package]] +name = "libc" +version = "0.2.171" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" + +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + +[[package]] +name = "libsqlite3-sys" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" +dependencies = [ + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" + +[[package]] +name = "litemap" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "lombok-macros" +version = "1.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff7e8bfea5ff4ba05d8e287c4459438454d86face7b93552b43c51790481a42" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "miniz_oxide" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy 0.8.24", +] + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", + "zerocopy 0.8.24", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.2", +] + +[[package]] +name = "recoverable-spawn" +version = "3.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcc61deaa201c349799f432212c2fdbd81f0587ba6cd10eed29c86cf207fe477" +dependencies = [ + "once_cell", + "tokio", +] + +[[package]] +name = "recoverable-thread-pool" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edb0896f8322a96307d443bc472bbac0f80f2df18ce6967e5d0952c0e11203ff" +dependencies = [ + "lombok-macros", + "recoverable-spawn", + "tokio", +] + +[[package]] +name = "redox_syscall" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +dependencies = [ + "bitflags", +] + +[[package]] +name = "ref-cast" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "rsa" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "signature", + "spki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustix" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-xml-rs" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb3aa78ecda1ebc9ec9847d5d3aba7d618823446a049ba2491940506da6e2782" +dependencies = [ + "log", + "serde", + "thiserror 1.0.69", + "xml-rs", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "server-manager" +version = "3.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59a91c52599e0a322858a971d3111ceed3cbb265eb90469473f10cba416b791e" +dependencies = [ + "tokio", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-json" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10b5602e4f1f7d358956f94cac1eff59220f34cf9e26d49f5fde5acef851cbed" +dependencies = [ + "getrandom 0.3.2", + "halfbrown", + "ref-cast", + "serde", + "serde_json", + "simdutf8", + "value-trait", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +dependencies = [ + "serde", +] + +[[package]] +name = "socket2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "sqlx" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f" +dependencies = [ + "sqlx-core", + "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", +] + +[[package]] +name = "sqlx-core" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0" +dependencies = [ + "bytes", + "crc", + "crossbeam-queue", + "either", + "event-listener", + "futures-core", + "futures-intrusive", + "futures-io", + "futures-util", + "hashbrown 0.15.2", + "hashlink", + "indexmap", + "log", + "memchr", + "once_cell", + "percent-encoding", + "serde", + "serde_json", + "sha2", + "smallvec", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "tracing", + "url", +] + +[[package]] +name = "sqlx-macros" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310" +dependencies = [ + "proc-macro2", + "quote", + "sqlx-core", + "sqlx-macros-core", + "syn", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad" +dependencies = [ + "dotenvy", + "either", + "heck", + "hex", + "once_cell", + "proc-macro2", + "quote", + "serde", + "serde_json", + "sha2", + "sqlx-core", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", + "syn", + "tempfile", + "tokio", + "url", +] + +[[package]] +name = "sqlx-mysql" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233" +dependencies = [ + "atoi", + "base64", + "bitflags", + "byteorder", + "bytes", + "crc", + "digest", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "percent-encoding", + "rand 0.8.5", + "rsa", + "serde", + "sha1", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror 2.0.12", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613" +dependencies = [ + "atoi", + "base64", + "bitflags", + "byteorder", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-util", + "hex", + "hkdf", + "hmac", + "home", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "rand 0.8.5", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror 2.0.12", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540" +dependencies = [ + "atoi", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "serde_urlencoded", + "sqlx-core", + "tracing", + "url", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "std-macro-extensions" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18041dd0553c6b667fdb69c22643e977473d070c88d1a220ec4c2536e6c9eb6d" + +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tempfile" +version = "3.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" +dependencies = [ + "fastrand", + "getrandom 0.3.2", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-stream" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", +] + +[[package]] +name = "twox-hash" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7b17f197b3050ba473acf9181f7b1d3b66d1cf7356c6cc57886662276e65908" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicode-bidi" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "value-trait" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0508fce11ad19e0aab49ce20b6bec7f8f82902ded31df1c9fc61b90f0eb396b8" +dependencies = [ + "float-cmp", + "halfbrown", + "itoa", + "ryu", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "whoami" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6994d13118ab492c3c80c1f81928718159254c53c472bf9ce36f8dae4add02a7" +dependencies = [ + "redox_syscall", + "wasite", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "xml-rs" +version = "0.8.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" +dependencies = [ + "zerocopy-derive 0.8.24", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 66cbc75cbb8..8c45965084c 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,11 +18,11 @@ exclude = [ ] [dependencies] -hyperlane = "=4.65.0" -num_cpus = "=1.16.0" -rand = "=0.9.0" -serde = "=1.0.219" -sqlx = { version = "=0.8.3", features = ["runtime-tokio", "postgres"] } +hyperlane = "4.67.0" +num_cpus = "1.16.0" +rand = "0.9.0" +serde = "1.0.219" +sqlx = { version = "0.8.3", features = ["runtime-tokio", "postgres"] } [profile.dev] incremental = false From 16d8137fbe99d3155ee32cc68dd14d4fc0e0bdd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 6 Apr 2025 20:19:16 +0800 Subject: [PATCH 124/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.lock | 8 ++++---- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index eee47a36441..02b955c01a5 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -655,9 +655,9 @@ checksum = "711a0d020705f9eca6b58b4f23b6e815ecdafb6a8deeadd8ee6f49164b24e0c9" [[package]] name = "http-type" -version = "3.61.1" +version = "3.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa58e4a32c839ccb2aba4cc0bbd5e2a8baa3699dc709f8e419ab342c01ffaafd" +checksum = "6ebd70871ed728abc4ec31ec2044bb2d31382a371586a780ce2647049bc10d64" dependencies = [ "ahash", "dashmap", @@ -682,9 +682,9 @@ dependencies = [ [[package]] name = "hyperlane" -version = "4.67.0" +version = "4.73.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8956c17a0b4a4bdd4227b66fdc4fb8a1a8ab6e3ea215b6fb46f88dadf9fb2996" +checksum = "d8420e88bd802d1a9bbca1a26c29aae3a96d94b55bd14f260a647f0a4a577f7b" dependencies = [ "async-func", "clonelicious", diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 8c45965084c..39e5d4c05cb 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.67.0" +hyperlane = "4.73.0" num_cpus = "1.16.0" rand = "0.9.0" serde = "1.0.219" From 9d35c7f92ba6de712e9113e3ae0e6d0bc32a1d58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 6 Apr 2025 20:31:36 +0800 Subject: [PATCH 125/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.lock | 4 ++-- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index 02b955c01a5..21ecb290aa5 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -682,9 +682,9 @@ dependencies = [ [[package]] name = "hyperlane" -version = "4.73.0" +version = "4.74.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8420e88bd802d1a9bbca1a26c29aae3a96d94b55bd14f260a647f0a4a577f7b" +checksum = "e1a00c953c165e339ccc09e8b14dbb2f483a8df6b14347c1617d70138448a4e5" dependencies = [ "async-func", "clonelicious", diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 39e5d4c05cb..51c7d3dbaf2 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.73.0" +hyperlane = "4.74.0" num_cpus = "1.16.0" rand = "0.9.0" serde = "1.0.219" From fd7338d5a220f0547121d8ec046557ab5bf604b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 6 Apr 2025 20:54:44 +0800 Subject: [PATCH 126/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.lock | 4 ++-- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index 21ecb290aa5..865c5b5faa6 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -682,9 +682,9 @@ dependencies = [ [[package]] name = "hyperlane" -version = "4.74.0" +version = "4.75.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1a00c953c165e339ccc09e8b14dbb2f483a8df6b14347c1617d70138448a4e5" +checksum = "3b546478b1160ba94edfe74a32ca1c4b54b718a7a475db3e04dc12dec6f0ae81" dependencies = [ "async-func", "clonelicious", diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 51c7d3dbaf2..b550e2906cc 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.74.0" +hyperlane = "4.75.0" num_cpus = "1.16.0" rand = "0.9.0" serde = "1.0.219" From 368cd4875f1d78354ce585d8692531acfbae3772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 6 Apr 2025 22:44:21 +0800 Subject: [PATCH 127/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.lock | 4 ++-- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index 865c5b5faa6..a3e9146c4d5 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -682,9 +682,9 @@ dependencies = [ [[package]] name = "hyperlane" -version = "4.75.0" +version = "4.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b546478b1160ba94edfe74a32ca1c4b54b718a7a475db3e04dc12dec6f0ae81" +checksum = "52c94b89b2a24858b366fe080f9ed705948700cefda49e567ee2acba1b96fb01" dependencies = [ "async-func", "clonelicious", diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index b550e2906cc..6fb9b417842 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.75.0" +hyperlane = "4.76.0" num_cpus = "1.16.0" rand = "0.9.0" serde = "1.0.219" From d4b422a3b710fa8ef751eca61f1e6854e952bf75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=A4=E9=9B=A8=E4=B8=9C?= Date: Sun, 6 Apr 2025 23:15:04 +0800 Subject: [PATCH 128/128] lock: toml --- frameworks/Rust/hyperlane/Cargo.lock | 4 ++-- frameworks/Rust/hyperlane/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock index a3e9146c4d5..7d463f2e48a 100644 --- a/frameworks/Rust/hyperlane/Cargo.lock +++ b/frameworks/Rust/hyperlane/Cargo.lock @@ -682,9 +682,9 @@ dependencies = [ [[package]] name = "hyperlane" -version = "4.76.0" +version = "4.77.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c94b89b2a24858b366fe080f9ed705948700cefda49e567ee2acba1b96fb01" +checksum = "30d05f78e4b2f883f81ace0a2569e78b565739643970157d9ff16b832ae1196e" dependencies = [ "async-func", "clonelicious", diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml index 6fb9b417842..c536f5a2ec6 100644 --- a/frameworks/Rust/hyperlane/Cargo.toml +++ b/frameworks/Rust/hyperlane/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ ] [dependencies] -hyperlane = "4.76.0" +hyperlane = "4.77.0" num_cpus = "1.16.0" rand = "0.9.0" serde = "1.0.219"