├── .gitignore ├── src ├── queries │ └── consulta.sql ├── main.rs └── backend.rs ├── README.md ├── Cargo.toml ├── .github ├── workflows │ └── rust.yml └── dependabot.yml ├── SECURITY.md └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target/ -------------------------------------------------------------------------------- /src/queries/consulta.sql: -------------------------------------------------------------------------------- 1 | SELECT users 2 | FROM information_schema.tables; -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | SUPORT: MYSQL, SQLITE, POSTGRESQL, SQL 2 | 3 | ![image](https://github.com/CodingMarin/Backend-Database-Multiples/assets/58664152/65a08a48-4ec7-4cb7-851d-fb5c12721496) 4 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | # RUST/Cargo.toml 2 | [package] 3 | name = "multi-database" 4 | version = "0.1.0" 5 | edition = "2021" 6 | 7 | # Dependencias del proyecto 8 | [dependencies] 9 | sqlx = { version = "0.7", features = ["mysql", "postgres", "sqlite"] } 10 | anyhow = "1.0" 11 | warp = "0.3" 12 | serde = "1.0" 13 | dotenv = "0.15.0" 14 | serde_json = "1.0" 15 | tokio = { version = "1", features = ["full"] } 16 | windows_x86_64_msvc = "0.48.5" 17 | -------------------------------------------------------------------------------- /.github/workflows/rust.yml: -------------------------------------------------------------------------------- 1 | name: Rust 2 | 3 | on: 4 | push: 5 | branches: [ "master" ] 6 | pull_request: 7 | branches: [ "master" ] 8 | 9 | env: 10 | CARGO_TERM_COLOR: always 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v4 19 | - name: Build 20 | run: cargo build --verbose 21 | - name: Run tests 22 | run: cargo test --verbose 23 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "" # See documentation for possible values 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "weekly" 12 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | Use this section to tell people about which versions of your project are 6 | currently being supported with security updates. 7 | 8 | | Version | Supported | 9 | | ------- | ------------------ | 10 | | 5.1.x | :white_check_mark: | 11 | | 5.0.x | :x: | 12 | | 4.0.x | :white_check_mark: | 13 | | < 4.0 | :x: | 14 | 15 | ## Reporting a Vulnerability 16 | 17 | Use this section to tell people how to report a vulnerability. 18 | 19 | Tell them where to go, how often they can expect to get an update on a 20 | reported vulnerability, what to expect if the vulnerability is accepted or 21 | declined, etc. 22 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use warp::Filter; 2 | mod backend; 3 | use dotenv::dotenv; 4 | use backend::handle_connect; 5 | 6 | #[tokio::main] 7 | async fn main() { 8 | dotenv().ok(); 9 | // Definir una ruta para manejar las solicitudes POST a '/connect' 10 | let connect_route = warp::path!("connect") 11 | .and(warp::post()) 12 | .and(warp::body::json()) 13 | .and_then(handle_connect); 14 | 15 | // Combinar todas las rutas 16 | let routes = connect_route.clone(); // <--- Agrega esto 17 | 18 | // Puerto en el que se ejecutará la aplicación 19 | let port = 3030; 20 | 21 | println!("Aplicación corriendo en http://127.0.0.1:{}", port); 22 | 23 | // Iniciar el servidor 24 | warp::serve(routes.clone()) 25 | .run(([127, 0, 0, 1], port)) 26 | .await; 27 | } 28 | -------------------------------------------------------------------------------- /src/backend.rs: -------------------------------------------------------------------------------- 1 | use anyhow::{anyhow, Result}; 2 | use serde::Deserialize; 3 | use sqlx::mysql::MySqlConnectOptions; 4 | use sqlx::postgres::PgConnectOptions; 5 | use sqlx::query_file; 6 | use sqlx::sqlite::SqliteConnectOptions; 7 | use sqlx::ConnectOptions; 8 | use std::fmt; 9 | use warp::reject::Rejection; 10 | 11 | #[derive(Debug, Deserialize)] 12 | pub struct DatabaseConnection { 13 | choice: u32, 14 | host: Option, 15 | username: Option, 16 | password: Option, 17 | database: Option, 18 | } 19 | 20 | #[derive(Debug)] 21 | struct MyError(anyhow::Error); 22 | 23 | impl fmt::Display for MyError { 24 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 25 | write!(f, "MyError: {}", self.0) 26 | } 27 | } 28 | 29 | impl warp::reject::Reject for MyError {} 30 | 31 | pub async fn handle_connect( 32 | db_connection: DatabaseConnection, 33 | ) -> Result { 34 | run_database_program(&db_connection).await 35 | } 36 | 37 | async fn run_database_program( 38 | db_connection: &DatabaseConnection, 39 | ) -> Result { 40 | match db_connection.choice { 41 | 1 => { 42 | let options = SqliteConnectOptions::new() 43 | .filename( 44 | db_connection 45 | .database 46 | .as_ref() 47 | .ok_or_else(|| MyError(anyhow!("Database name is required"))) 48 | .map_err(|e| warp::reject::custom::(e.into()))? 49 | .as_str(), 50 | ) 51 | .create_if_missing(true); 52 | 53 | connect_and_execute(options) 54 | .await 55 | .map_err(|e| warp::reject::custom(MyError(e))) 56 | } 57 | 2 => { 58 | let host = db_connection 59 | .host 60 | .as_ref() 61 | .ok_or_else(|| MyError(anyhow!("Host is required"))) 62 | .map_err(|e| warp::reject::custom::(e.into()))?; 63 | let username = db_connection 64 | .username 65 | .as_ref() 66 | .ok_or_else(|| MyError(anyhow!("Username is required"))) 67 | .map_err(|e| warp::reject::custom::(e.into()))?; 68 | let password = db_connection 69 | .password 70 | .as_ref() 71 | .ok_or_else(|| MyError(anyhow!("Password is required"))) 72 | .map_err(|e| warp::reject::custom::(e.into()))?; 73 | let database = db_connection 74 | .database 75 | .as_ref() 76 | .ok_or_else(|| MyError(anyhow!("Database name is required"))) 77 | .map_err(|e| warp::reject::custom::(e.into()))?; 78 | 79 | let options = MySqlConnectOptions::new() 80 | .host(host) 81 | .username(username) 82 | .password(password) 83 | .database(database); 84 | 85 | connect_and_execute(options) 86 | .await 87 | .map_err(|e| warp::reject::custom(MyError(e))) 88 | } 89 | 90 | 3 => { 91 | let host = db_connection 92 | .host 93 | .as_ref() 94 | .ok_or_else(|| MyError(anyhow!("Host is required"))) 95 | .map_err(|e| warp::reject::custom::(e.into()))?; 96 | let username = db_connection 97 | .username 98 | .as_ref() 99 | .ok_or_else(|| MyError(anyhow!("Username is required"))) 100 | .map_err(|e| warp::reject::custom::(e.into()))?; 101 | let password = db_connection 102 | .password 103 | .as_ref() 104 | .ok_or_else(|| MyError(anyhow!("Password is required"))) 105 | .map_err(|e| warp::reject::custom::(e.into()))?; 106 | let database = db_connection 107 | .database 108 | .as_ref() 109 | .ok_or_else(|| MyError(anyhow!("Database name is required"))) 110 | .map_err(|e| warp::reject::custom::(e.into()))?; 111 | 112 | let options = PgConnectOptions::new() 113 | .host(host) 114 | .username(username) 115 | .password(password) 116 | .database(database); 117 | 118 | connect_and_execute(options) 119 | .await 120 | .map_err(|e| warp::reject::custom(MyError(e))) 121 | } 122 | _ => Err(warp::reject::custom(MyError(anyhow!( 123 | "Invalid choice: {}", 124 | db_connection.choice 125 | )))), 126 | } 127 | } 128 | 129 | 130 | async fn connect_and_execute(options: O) -> Result 131 | where 132 | O: ConnectOptions, 133 | ::Connection: Sized, 134 | { 135 | let conn = options.connect().await?; 136 | 137 | // Aquí ejecutas una consulta en la base de datos, por ejemplo, SELECT table_name FROM information_schema.tables; 138 | let result = sqlx::query("SELECT user FROM information_schema.tables;") 139 | .execute(&'static conn) 140 | .await?; 141 | 142 | // Transforma los resultados en una cadena para devolverlos 143 | let result_string = result 144 | .into_iter() 145 | .map(|row| row.table_name.unwrap_or_default()) 146 | .collect::>() 147 | .join(", "); 148 | 149 | Ok(format!( 150 | "Operación realizada con éxito. Tablas encontradas: {}", 151 | result_string 152 | )) 153 | } 154 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "addr2line" 7 | version = "0.21.0" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" 10 | dependencies = [ 11 | "gimli", 12 | ] 13 | 14 | [[package]] 15 | name = "adler" 16 | version = "1.0.2" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 19 | 20 | [[package]] 21 | name = "ahash" 22 | version = "0.8.6" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" 25 | dependencies = [ 26 | "cfg-if", 27 | "getrandom", 28 | "once_cell", 29 | "version_check", 30 | "zerocopy", 31 | ] 32 | 33 | [[package]] 34 | name = "allocator-api2" 35 | version = "0.2.16" 36 | source = "registry+https://github.com/rust-lang/crates.io-index" 37 | checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" 38 | 39 | [[package]] 40 | name = "anyhow" 41 | version = "1.0.75" 42 | source = "registry+https://github.com/rust-lang/crates.io-index" 43 | checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" 44 | 45 | [[package]] 46 | name = "atoi" 47 | version = "2.0.0" 48 | source = "registry+https://github.com/rust-lang/crates.io-index" 49 | checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" 50 | dependencies = [ 51 | "num-traits", 52 | ] 53 | 54 | [[package]] 55 | name = "autocfg" 56 | version = "1.1.0" 57 | source = "registry+https://github.com/rust-lang/crates.io-index" 58 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 59 | 60 | [[package]] 61 | name = "backtrace" 62 | version = "0.3.69" 63 | source = "registry+https://github.com/rust-lang/crates.io-index" 64 | checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" 65 | dependencies = [ 66 | "addr2line", 67 | "cc", 68 | "cfg-if", 69 | "libc", 70 | "miniz_oxide", 71 | "object", 72 | "rustc-demangle", 73 | ] 74 | 75 | [[package]] 76 | name = "base64" 77 | version = "0.21.5" 78 | source = "registry+https://github.com/rust-lang/crates.io-index" 79 | checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" 80 | 81 | [[package]] 82 | name = "base64ct" 83 | version = "1.6.0" 84 | source = "registry+https://github.com/rust-lang/crates.io-index" 85 | checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" 86 | 87 | [[package]] 88 | name = "bitflags" 89 | version = "1.3.2" 90 | source = "registry+https://github.com/rust-lang/crates.io-index" 91 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 92 | 93 | [[package]] 94 | name = "bitflags" 95 | version = "2.4.1" 96 | source = "registry+https://github.com/rust-lang/crates.io-index" 97 | checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" 98 | dependencies = [ 99 | "serde", 100 | ] 101 | 102 | [[package]] 103 | name = "block-buffer" 104 | version = "0.10.4" 105 | source = "registry+https://github.com/rust-lang/crates.io-index" 106 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 107 | dependencies = [ 108 | "generic-array", 109 | ] 110 | 111 | [[package]] 112 | name = "byteorder" 113 | version = "1.5.0" 114 | source = "registry+https://github.com/rust-lang/crates.io-index" 115 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 116 | 117 | [[package]] 118 | name = "bytes" 119 | version = "1.5.0" 120 | source = "registry+https://github.com/rust-lang/crates.io-index" 121 | checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" 122 | 123 | [[package]] 124 | name = "cc" 125 | version = "1.0.83" 126 | source = "registry+https://github.com/rust-lang/crates.io-index" 127 | checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" 128 | dependencies = [ 129 | "libc", 130 | ] 131 | 132 | [[package]] 133 | name = "cfg-if" 134 | version = "1.0.0" 135 | source = "registry+https://github.com/rust-lang/crates.io-index" 136 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 137 | 138 | [[package]] 139 | name = "const-oid" 140 | version = "0.9.5" 141 | source = "registry+https://github.com/rust-lang/crates.io-index" 142 | checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" 143 | 144 | [[package]] 145 | name = "cpufeatures" 146 | version = "0.2.11" 147 | source = "registry+https://github.com/rust-lang/crates.io-index" 148 | checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" 149 | dependencies = [ 150 | "libc", 151 | ] 152 | 153 | [[package]] 154 | name = "crc" 155 | version = "3.0.1" 156 | source = "registry+https://github.com/rust-lang/crates.io-index" 157 | checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" 158 | dependencies = [ 159 | "crc-catalog", 160 | ] 161 | 162 | [[package]] 163 | name = "crc-catalog" 164 | version = "2.4.0" 165 | source = "registry+https://github.com/rust-lang/crates.io-index" 166 | checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" 167 | 168 | [[package]] 169 | name = "crossbeam-queue" 170 | version = "0.3.8" 171 | source = "registry+https://github.com/rust-lang/crates.io-index" 172 | checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" 173 | dependencies = [ 174 | "cfg-if", 175 | "crossbeam-utils", 176 | ] 177 | 178 | [[package]] 179 | name = "crossbeam-utils" 180 | version = "0.8.16" 181 | source = "registry+https://github.com/rust-lang/crates.io-index" 182 | checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" 183 | dependencies = [ 184 | "cfg-if", 185 | ] 186 | 187 | [[package]] 188 | name = "crypto-common" 189 | version = "0.1.6" 190 | source = "registry+https://github.com/rust-lang/crates.io-index" 191 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 192 | dependencies = [ 193 | "generic-array", 194 | "typenum", 195 | ] 196 | 197 | [[package]] 198 | name = "data-encoding" 199 | version = "2.4.0" 200 | source = "registry+https://github.com/rust-lang/crates.io-index" 201 | checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" 202 | 203 | [[package]] 204 | name = "der" 205 | version = "0.7.8" 206 | source = "registry+https://github.com/rust-lang/crates.io-index" 207 | checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" 208 | dependencies = [ 209 | "const-oid", 210 | "pem-rfc7468", 211 | "zeroize", 212 | ] 213 | 214 | [[package]] 215 | name = "digest" 216 | version = "0.10.7" 217 | source = "registry+https://github.com/rust-lang/crates.io-index" 218 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 219 | dependencies = [ 220 | "block-buffer", 221 | "const-oid", 222 | "crypto-common", 223 | "subtle", 224 | ] 225 | 226 | [[package]] 227 | name = "dotenv" 228 | version = "0.15.0" 229 | source = "registry+https://github.com/rust-lang/crates.io-index" 230 | checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" 231 | 232 | [[package]] 233 | name = "dotenvy" 234 | version = "0.15.7" 235 | source = "registry+https://github.com/rust-lang/crates.io-index" 236 | checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" 237 | 238 | [[package]] 239 | name = "either" 240 | version = "1.9.0" 241 | source = "registry+https://github.com/rust-lang/crates.io-index" 242 | checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" 243 | dependencies = [ 244 | "serde", 245 | ] 246 | 247 | [[package]] 248 | name = "encoding_rs" 249 | version = "0.8.33" 250 | source = "registry+https://github.com/rust-lang/crates.io-index" 251 | checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" 252 | dependencies = [ 253 | "cfg-if", 254 | ] 255 | 256 | [[package]] 257 | name = "equivalent" 258 | version = "1.0.1" 259 | source = "registry+https://github.com/rust-lang/crates.io-index" 260 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 261 | 262 | [[package]] 263 | name = "errno" 264 | version = "0.3.6" 265 | source = "registry+https://github.com/rust-lang/crates.io-index" 266 | checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e" 267 | dependencies = [ 268 | "libc", 269 | "windows-sys", 270 | ] 271 | 272 | [[package]] 273 | name = "etcetera" 274 | version = "0.8.0" 275 | source = "registry+https://github.com/rust-lang/crates.io-index" 276 | checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" 277 | dependencies = [ 278 | "cfg-if", 279 | "home", 280 | "windows-sys", 281 | ] 282 | 283 | [[package]] 284 | name = "event-listener" 285 | version = "2.5.3" 286 | source = "registry+https://github.com/rust-lang/crates.io-index" 287 | checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" 288 | 289 | [[package]] 290 | name = "fastrand" 291 | version = "2.0.1" 292 | source = "registry+https://github.com/rust-lang/crates.io-index" 293 | checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" 294 | 295 | [[package]] 296 | name = "finl_unicode" 297 | version = "1.2.0" 298 | source = "registry+https://github.com/rust-lang/crates.io-index" 299 | checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" 300 | 301 | [[package]] 302 | name = "flume" 303 | version = "0.11.0" 304 | source = "registry+https://github.com/rust-lang/crates.io-index" 305 | checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" 306 | dependencies = [ 307 | "futures-core", 308 | "futures-sink", 309 | "spin 0.9.8", 310 | ] 311 | 312 | [[package]] 313 | name = "fnv" 314 | version = "1.0.7" 315 | source = "registry+https://github.com/rust-lang/crates.io-index" 316 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 317 | 318 | [[package]] 319 | name = "form_urlencoded" 320 | version = "1.2.0" 321 | source = "registry+https://github.com/rust-lang/crates.io-index" 322 | checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" 323 | dependencies = [ 324 | "percent-encoding", 325 | ] 326 | 327 | [[package]] 328 | name = "futures-channel" 329 | version = "0.3.29" 330 | source = "registry+https://github.com/rust-lang/crates.io-index" 331 | checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" 332 | dependencies = [ 333 | "futures-core", 334 | "futures-sink", 335 | ] 336 | 337 | [[package]] 338 | name = "futures-core" 339 | version = "0.3.29" 340 | source = "registry+https://github.com/rust-lang/crates.io-index" 341 | checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" 342 | 343 | [[package]] 344 | name = "futures-executor" 345 | version = "0.3.29" 346 | source = "registry+https://github.com/rust-lang/crates.io-index" 347 | checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" 348 | dependencies = [ 349 | "futures-core", 350 | "futures-task", 351 | "futures-util", 352 | ] 353 | 354 | [[package]] 355 | name = "futures-intrusive" 356 | version = "0.5.0" 357 | source = "registry+https://github.com/rust-lang/crates.io-index" 358 | checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" 359 | dependencies = [ 360 | "futures-core", 361 | "lock_api", 362 | "parking_lot", 363 | ] 364 | 365 | [[package]] 366 | name = "futures-io" 367 | version = "0.3.29" 368 | source = "registry+https://github.com/rust-lang/crates.io-index" 369 | checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" 370 | 371 | [[package]] 372 | name = "futures-sink" 373 | version = "0.3.29" 374 | source = "registry+https://github.com/rust-lang/crates.io-index" 375 | checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" 376 | 377 | [[package]] 378 | name = "futures-task" 379 | version = "0.3.29" 380 | source = "registry+https://github.com/rust-lang/crates.io-index" 381 | checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" 382 | 383 | [[package]] 384 | name = "futures-util" 385 | version = "0.3.29" 386 | source = "registry+https://github.com/rust-lang/crates.io-index" 387 | checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" 388 | dependencies = [ 389 | "futures-core", 390 | "futures-io", 391 | "futures-sink", 392 | "futures-task", 393 | "memchr", 394 | "pin-project-lite", 395 | "pin-utils", 396 | "slab", 397 | ] 398 | 399 | [[package]] 400 | name = "generic-array" 401 | version = "0.14.7" 402 | source = "registry+https://github.com/rust-lang/crates.io-index" 403 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 404 | dependencies = [ 405 | "typenum", 406 | "version_check", 407 | ] 408 | 409 | [[package]] 410 | name = "getrandom" 411 | version = "0.2.11" 412 | source = "registry+https://github.com/rust-lang/crates.io-index" 413 | checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" 414 | dependencies = [ 415 | "cfg-if", 416 | "libc", 417 | "wasi", 418 | ] 419 | 420 | [[package]] 421 | name = "gimli" 422 | version = "0.28.0" 423 | source = "registry+https://github.com/rust-lang/crates.io-index" 424 | checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" 425 | 426 | [[package]] 427 | name = "h2" 428 | version = "0.3.26" 429 | source = "registry+https://github.com/rust-lang/crates.io-index" 430 | checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" 431 | dependencies = [ 432 | "bytes", 433 | "fnv", 434 | "futures-core", 435 | "futures-sink", 436 | "futures-util", 437 | "http", 438 | "indexmap", 439 | "slab", 440 | "tokio", 441 | "tokio-util", 442 | "tracing", 443 | ] 444 | 445 | [[package]] 446 | name = "hashbrown" 447 | version = "0.14.2" 448 | source = "registry+https://github.com/rust-lang/crates.io-index" 449 | checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" 450 | dependencies = [ 451 | "ahash", 452 | "allocator-api2", 453 | ] 454 | 455 | [[package]] 456 | name = "hashlink" 457 | version = "0.8.4" 458 | source = "registry+https://github.com/rust-lang/crates.io-index" 459 | checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" 460 | dependencies = [ 461 | "hashbrown", 462 | ] 463 | 464 | [[package]] 465 | name = "headers" 466 | version = "0.3.9" 467 | source = "registry+https://github.com/rust-lang/crates.io-index" 468 | checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" 469 | dependencies = [ 470 | "base64", 471 | "bytes", 472 | "headers-core", 473 | "http", 474 | "httpdate", 475 | "mime", 476 | "sha1", 477 | ] 478 | 479 | [[package]] 480 | name = "headers-core" 481 | version = "0.2.0" 482 | source = "registry+https://github.com/rust-lang/crates.io-index" 483 | checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" 484 | dependencies = [ 485 | "http", 486 | ] 487 | 488 | [[package]] 489 | name = "heck" 490 | version = "0.4.1" 491 | source = "registry+https://github.com/rust-lang/crates.io-index" 492 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 493 | dependencies = [ 494 | "unicode-segmentation", 495 | ] 496 | 497 | [[package]] 498 | name = "hermit-abi" 499 | version = "0.3.3" 500 | source = "registry+https://github.com/rust-lang/crates.io-index" 501 | checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" 502 | 503 | [[package]] 504 | name = "hex" 505 | version = "0.4.3" 506 | source = "registry+https://github.com/rust-lang/crates.io-index" 507 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 508 | 509 | [[package]] 510 | name = "hkdf" 511 | version = "0.12.3" 512 | source = "registry+https://github.com/rust-lang/crates.io-index" 513 | checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" 514 | dependencies = [ 515 | "hmac", 516 | ] 517 | 518 | [[package]] 519 | name = "hmac" 520 | version = "0.12.1" 521 | source = "registry+https://github.com/rust-lang/crates.io-index" 522 | checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 523 | dependencies = [ 524 | "digest", 525 | ] 526 | 527 | [[package]] 528 | name = "home" 529 | version = "0.5.5" 530 | source = "registry+https://github.com/rust-lang/crates.io-index" 531 | checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" 532 | dependencies = [ 533 | "windows-sys", 534 | ] 535 | 536 | [[package]] 537 | name = "http" 538 | version = "0.2.9" 539 | source = "registry+https://github.com/rust-lang/crates.io-index" 540 | checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" 541 | dependencies = [ 542 | "bytes", 543 | "fnv", 544 | "itoa", 545 | ] 546 | 547 | [[package]] 548 | name = "http-body" 549 | version = "0.4.5" 550 | source = "registry+https://github.com/rust-lang/crates.io-index" 551 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 552 | dependencies = [ 553 | "bytes", 554 | "http", 555 | "pin-project-lite", 556 | ] 557 | 558 | [[package]] 559 | name = "httparse" 560 | version = "1.8.0" 561 | source = "registry+https://github.com/rust-lang/crates.io-index" 562 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 563 | 564 | [[package]] 565 | name = "httpdate" 566 | version = "1.0.3" 567 | source = "registry+https://github.com/rust-lang/crates.io-index" 568 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 569 | 570 | [[package]] 571 | name = "hyper" 572 | version = "0.14.27" 573 | source = "registry+https://github.com/rust-lang/crates.io-index" 574 | checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" 575 | dependencies = [ 576 | "bytes", 577 | "futures-channel", 578 | "futures-core", 579 | "futures-util", 580 | "h2", 581 | "http", 582 | "http-body", 583 | "httparse", 584 | "httpdate", 585 | "itoa", 586 | "pin-project-lite", 587 | "socket2 0.4.10", 588 | "tokio", 589 | "tower-service", 590 | "tracing", 591 | "want", 592 | ] 593 | 594 | [[package]] 595 | name = "idna" 596 | version = "0.4.0" 597 | source = "registry+https://github.com/rust-lang/crates.io-index" 598 | checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" 599 | dependencies = [ 600 | "unicode-bidi", 601 | "unicode-normalization", 602 | ] 603 | 604 | [[package]] 605 | name = "indexmap" 606 | version = "2.1.0" 607 | source = "registry+https://github.com/rust-lang/crates.io-index" 608 | checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" 609 | dependencies = [ 610 | "equivalent", 611 | "hashbrown", 612 | ] 613 | 614 | [[package]] 615 | name = "itertools" 616 | version = "0.11.0" 617 | source = "registry+https://github.com/rust-lang/crates.io-index" 618 | checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" 619 | dependencies = [ 620 | "either", 621 | ] 622 | 623 | [[package]] 624 | name = "itoa" 625 | version = "1.0.9" 626 | source = "registry+https://github.com/rust-lang/crates.io-index" 627 | checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" 628 | 629 | [[package]] 630 | name = "lazy_static" 631 | version = "1.4.0" 632 | source = "registry+https://github.com/rust-lang/crates.io-index" 633 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 634 | dependencies = [ 635 | "spin 0.5.2", 636 | ] 637 | 638 | [[package]] 639 | name = "libc" 640 | version = "0.2.150" 641 | source = "registry+https://github.com/rust-lang/crates.io-index" 642 | checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" 643 | 644 | [[package]] 645 | name = "libm" 646 | version = "0.2.8" 647 | source = "registry+https://github.com/rust-lang/crates.io-index" 648 | checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" 649 | 650 | [[package]] 651 | name = "libsqlite3-sys" 652 | version = "0.26.0" 653 | source = "registry+https://github.com/rust-lang/crates.io-index" 654 | checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326" 655 | dependencies = [ 656 | "cc", 657 | "pkg-config", 658 | "vcpkg", 659 | ] 660 | 661 | [[package]] 662 | name = "linux-raw-sys" 663 | version = "0.4.11" 664 | source = "registry+https://github.com/rust-lang/crates.io-index" 665 | checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" 666 | 667 | [[package]] 668 | name = "lock_api" 669 | version = "0.4.11" 670 | source = "registry+https://github.com/rust-lang/crates.io-index" 671 | checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" 672 | dependencies = [ 673 | "autocfg", 674 | "scopeguard", 675 | ] 676 | 677 | [[package]] 678 | name = "log" 679 | version = "0.4.20" 680 | source = "registry+https://github.com/rust-lang/crates.io-index" 681 | checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" 682 | 683 | [[package]] 684 | name = "md-5" 685 | version = "0.10.6" 686 | source = "registry+https://github.com/rust-lang/crates.io-index" 687 | checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" 688 | dependencies = [ 689 | "cfg-if", 690 | "digest", 691 | ] 692 | 693 | [[package]] 694 | name = "memchr" 695 | version = "2.6.4" 696 | source = "registry+https://github.com/rust-lang/crates.io-index" 697 | checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" 698 | 699 | [[package]] 700 | name = "mime" 701 | version = "0.3.17" 702 | source = "registry+https://github.com/rust-lang/crates.io-index" 703 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 704 | 705 | [[package]] 706 | name = "mime_guess" 707 | version = "2.0.4" 708 | source = "registry+https://github.com/rust-lang/crates.io-index" 709 | checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" 710 | dependencies = [ 711 | "mime", 712 | "unicase", 713 | ] 714 | 715 | [[package]] 716 | name = "minimal-lexical" 717 | version = "0.2.1" 718 | source = "registry+https://github.com/rust-lang/crates.io-index" 719 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 720 | 721 | [[package]] 722 | name = "miniz_oxide" 723 | version = "0.7.1" 724 | source = "registry+https://github.com/rust-lang/crates.io-index" 725 | checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" 726 | dependencies = [ 727 | "adler", 728 | ] 729 | 730 | [[package]] 731 | name = "mio" 732 | version = "0.8.11" 733 | source = "registry+https://github.com/rust-lang/crates.io-index" 734 | checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" 735 | dependencies = [ 736 | "libc", 737 | "wasi", 738 | "windows-sys", 739 | ] 740 | 741 | [[package]] 742 | name = "multer" 743 | version = "2.1.0" 744 | source = "registry+https://github.com/rust-lang/crates.io-index" 745 | checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" 746 | dependencies = [ 747 | "bytes", 748 | "encoding_rs", 749 | "futures-util", 750 | "http", 751 | "httparse", 752 | "log", 753 | "memchr", 754 | "mime", 755 | "spin 0.9.8", 756 | "version_check", 757 | ] 758 | 759 | [[package]] 760 | name = "multi-database" 761 | version = "0.1.0" 762 | dependencies = [ 763 | "anyhow", 764 | "dotenv", 765 | "serde", 766 | "serde_json", 767 | "sqlx", 768 | "tokio", 769 | "warp", 770 | "windows_x86_64_msvc", 771 | ] 772 | 773 | [[package]] 774 | name = "nom" 775 | version = "7.1.3" 776 | source = "registry+https://github.com/rust-lang/crates.io-index" 777 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 778 | dependencies = [ 779 | "memchr", 780 | "minimal-lexical", 781 | ] 782 | 783 | [[package]] 784 | name = "num-bigint-dig" 785 | version = "0.8.4" 786 | source = "registry+https://github.com/rust-lang/crates.io-index" 787 | checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" 788 | dependencies = [ 789 | "byteorder", 790 | "lazy_static", 791 | "libm", 792 | "num-integer", 793 | "num-iter", 794 | "num-traits", 795 | "rand", 796 | "smallvec", 797 | "zeroize", 798 | ] 799 | 800 | [[package]] 801 | name = "num-integer" 802 | version = "0.1.45" 803 | source = "registry+https://github.com/rust-lang/crates.io-index" 804 | checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" 805 | dependencies = [ 806 | "autocfg", 807 | "num-traits", 808 | ] 809 | 810 | [[package]] 811 | name = "num-iter" 812 | version = "0.1.43" 813 | source = "registry+https://github.com/rust-lang/crates.io-index" 814 | checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" 815 | dependencies = [ 816 | "autocfg", 817 | "num-integer", 818 | "num-traits", 819 | ] 820 | 821 | [[package]] 822 | name = "num-traits" 823 | version = "0.2.17" 824 | source = "registry+https://github.com/rust-lang/crates.io-index" 825 | checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" 826 | dependencies = [ 827 | "autocfg", 828 | "libm", 829 | ] 830 | 831 | [[package]] 832 | name = "num_cpus" 833 | version = "1.16.0" 834 | source = "registry+https://github.com/rust-lang/crates.io-index" 835 | checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" 836 | dependencies = [ 837 | "hermit-abi", 838 | "libc", 839 | ] 840 | 841 | [[package]] 842 | name = "object" 843 | version = "0.32.1" 844 | source = "registry+https://github.com/rust-lang/crates.io-index" 845 | checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" 846 | dependencies = [ 847 | "memchr", 848 | ] 849 | 850 | [[package]] 851 | name = "once_cell" 852 | version = "1.18.0" 853 | source = "registry+https://github.com/rust-lang/crates.io-index" 854 | checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" 855 | 856 | [[package]] 857 | name = "parking_lot" 858 | version = "0.12.1" 859 | source = "registry+https://github.com/rust-lang/crates.io-index" 860 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 861 | dependencies = [ 862 | "lock_api", 863 | "parking_lot_core", 864 | ] 865 | 866 | [[package]] 867 | name = "parking_lot_core" 868 | version = "0.9.9" 869 | source = "registry+https://github.com/rust-lang/crates.io-index" 870 | checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" 871 | dependencies = [ 872 | "cfg-if", 873 | "libc", 874 | "redox_syscall", 875 | "smallvec", 876 | "windows-targets", 877 | ] 878 | 879 | [[package]] 880 | name = "paste" 881 | version = "1.0.14" 882 | source = "registry+https://github.com/rust-lang/crates.io-index" 883 | checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" 884 | 885 | [[package]] 886 | name = "pem-rfc7468" 887 | version = "0.7.0" 888 | source = "registry+https://github.com/rust-lang/crates.io-index" 889 | checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" 890 | dependencies = [ 891 | "base64ct", 892 | ] 893 | 894 | [[package]] 895 | name = "percent-encoding" 896 | version = "2.3.0" 897 | source = "registry+https://github.com/rust-lang/crates.io-index" 898 | checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" 899 | 900 | [[package]] 901 | name = "pin-project" 902 | version = "1.1.3" 903 | source = "registry+https://github.com/rust-lang/crates.io-index" 904 | checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" 905 | dependencies = [ 906 | "pin-project-internal", 907 | ] 908 | 909 | [[package]] 910 | name = "pin-project-internal" 911 | version = "1.1.3" 912 | source = "registry+https://github.com/rust-lang/crates.io-index" 913 | checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" 914 | dependencies = [ 915 | "proc-macro2", 916 | "quote", 917 | "syn 2.0.39", 918 | ] 919 | 920 | [[package]] 921 | name = "pin-project-lite" 922 | version = "0.2.13" 923 | source = "registry+https://github.com/rust-lang/crates.io-index" 924 | checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" 925 | 926 | [[package]] 927 | name = "pin-utils" 928 | version = "0.1.0" 929 | source = "registry+https://github.com/rust-lang/crates.io-index" 930 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 931 | 932 | [[package]] 933 | name = "pkcs1" 934 | version = "0.7.5" 935 | source = "registry+https://github.com/rust-lang/crates.io-index" 936 | checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" 937 | dependencies = [ 938 | "der", 939 | "pkcs8", 940 | "spki", 941 | ] 942 | 943 | [[package]] 944 | name = "pkcs8" 945 | version = "0.10.2" 946 | source = "registry+https://github.com/rust-lang/crates.io-index" 947 | checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" 948 | dependencies = [ 949 | "der", 950 | "spki", 951 | ] 952 | 953 | [[package]] 954 | name = "pkg-config" 955 | version = "0.3.27" 956 | source = "registry+https://github.com/rust-lang/crates.io-index" 957 | checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" 958 | 959 | [[package]] 960 | name = "ppv-lite86" 961 | version = "0.2.17" 962 | source = "registry+https://github.com/rust-lang/crates.io-index" 963 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 964 | 965 | [[package]] 966 | name = "proc-macro2" 967 | version = "1.0.69" 968 | source = "registry+https://github.com/rust-lang/crates.io-index" 969 | checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" 970 | dependencies = [ 971 | "unicode-ident", 972 | ] 973 | 974 | [[package]] 975 | name = "quote" 976 | version = "1.0.33" 977 | source = "registry+https://github.com/rust-lang/crates.io-index" 978 | checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" 979 | dependencies = [ 980 | "proc-macro2", 981 | ] 982 | 983 | [[package]] 984 | name = "rand" 985 | version = "0.8.5" 986 | source = "registry+https://github.com/rust-lang/crates.io-index" 987 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 988 | dependencies = [ 989 | "libc", 990 | "rand_chacha", 991 | "rand_core", 992 | ] 993 | 994 | [[package]] 995 | name = "rand_chacha" 996 | version = "0.3.1" 997 | source = "registry+https://github.com/rust-lang/crates.io-index" 998 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 999 | dependencies = [ 1000 | "ppv-lite86", 1001 | "rand_core", 1002 | ] 1003 | 1004 | [[package]] 1005 | name = "rand_core" 1006 | version = "0.6.4" 1007 | source = "registry+https://github.com/rust-lang/crates.io-index" 1008 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1009 | dependencies = [ 1010 | "getrandom", 1011 | ] 1012 | 1013 | [[package]] 1014 | name = "redox_syscall" 1015 | version = "0.4.1" 1016 | source = "registry+https://github.com/rust-lang/crates.io-index" 1017 | checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 1018 | dependencies = [ 1019 | "bitflags 1.3.2", 1020 | ] 1021 | 1022 | [[package]] 1023 | name = "rsa" 1024 | version = "0.9.6" 1025 | source = "registry+https://github.com/rust-lang/crates.io-index" 1026 | checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" 1027 | dependencies = [ 1028 | "const-oid", 1029 | "digest", 1030 | "num-bigint-dig", 1031 | "num-integer", 1032 | "num-traits", 1033 | "pkcs1", 1034 | "pkcs8", 1035 | "rand_core", 1036 | "signature", 1037 | "spki", 1038 | "subtle", 1039 | "zeroize", 1040 | ] 1041 | 1042 | [[package]] 1043 | name = "rustc-demangle" 1044 | version = "0.1.23" 1045 | source = "registry+https://github.com/rust-lang/crates.io-index" 1046 | checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 1047 | 1048 | [[package]] 1049 | name = "rustix" 1050 | version = "0.38.21" 1051 | source = "registry+https://github.com/rust-lang/crates.io-index" 1052 | checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" 1053 | dependencies = [ 1054 | "bitflags 2.4.1", 1055 | "errno", 1056 | "libc", 1057 | "linux-raw-sys", 1058 | "windows-sys", 1059 | ] 1060 | 1061 | [[package]] 1062 | name = "rustls-pemfile" 1063 | version = "1.0.4" 1064 | source = "registry+https://github.com/rust-lang/crates.io-index" 1065 | checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" 1066 | dependencies = [ 1067 | "base64", 1068 | ] 1069 | 1070 | [[package]] 1071 | name = "ryu" 1072 | version = "1.0.15" 1073 | source = "registry+https://github.com/rust-lang/crates.io-index" 1074 | checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" 1075 | 1076 | [[package]] 1077 | name = "scoped-tls" 1078 | version = "1.0.1" 1079 | source = "registry+https://github.com/rust-lang/crates.io-index" 1080 | checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 1081 | 1082 | [[package]] 1083 | name = "scopeguard" 1084 | version = "1.2.0" 1085 | source = "registry+https://github.com/rust-lang/crates.io-index" 1086 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1087 | 1088 | [[package]] 1089 | name = "serde" 1090 | version = "1.0.192" 1091 | source = "registry+https://github.com/rust-lang/crates.io-index" 1092 | checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" 1093 | dependencies = [ 1094 | "serde_derive", 1095 | ] 1096 | 1097 | [[package]] 1098 | name = "serde_derive" 1099 | version = "1.0.192" 1100 | source = "registry+https://github.com/rust-lang/crates.io-index" 1101 | checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" 1102 | dependencies = [ 1103 | "proc-macro2", 1104 | "quote", 1105 | "syn 2.0.39", 1106 | ] 1107 | 1108 | [[package]] 1109 | name = "serde_json" 1110 | version = "1.0.108" 1111 | source = "registry+https://github.com/rust-lang/crates.io-index" 1112 | checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" 1113 | dependencies = [ 1114 | "itoa", 1115 | "ryu", 1116 | "serde", 1117 | ] 1118 | 1119 | [[package]] 1120 | name = "serde_urlencoded" 1121 | version = "0.7.1" 1122 | source = "registry+https://github.com/rust-lang/crates.io-index" 1123 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1124 | dependencies = [ 1125 | "form_urlencoded", 1126 | "itoa", 1127 | "ryu", 1128 | "serde", 1129 | ] 1130 | 1131 | [[package]] 1132 | name = "sha1" 1133 | version = "0.10.6" 1134 | source = "registry+https://github.com/rust-lang/crates.io-index" 1135 | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 1136 | dependencies = [ 1137 | "cfg-if", 1138 | "cpufeatures", 1139 | "digest", 1140 | ] 1141 | 1142 | [[package]] 1143 | name = "sha2" 1144 | version = "0.10.8" 1145 | source = "registry+https://github.com/rust-lang/crates.io-index" 1146 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 1147 | dependencies = [ 1148 | "cfg-if", 1149 | "cpufeatures", 1150 | "digest", 1151 | ] 1152 | 1153 | [[package]] 1154 | name = "signal-hook-registry" 1155 | version = "1.4.1" 1156 | source = "registry+https://github.com/rust-lang/crates.io-index" 1157 | checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" 1158 | dependencies = [ 1159 | "libc", 1160 | ] 1161 | 1162 | [[package]] 1163 | name = "signature" 1164 | version = "2.1.0" 1165 | source = "registry+https://github.com/rust-lang/crates.io-index" 1166 | checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" 1167 | dependencies = [ 1168 | "digest", 1169 | "rand_core", 1170 | ] 1171 | 1172 | [[package]] 1173 | name = "slab" 1174 | version = "0.4.9" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 1177 | dependencies = [ 1178 | "autocfg", 1179 | ] 1180 | 1181 | [[package]] 1182 | name = "smallvec" 1183 | version = "1.11.2" 1184 | source = "registry+https://github.com/rust-lang/crates.io-index" 1185 | checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" 1186 | 1187 | [[package]] 1188 | name = "socket2" 1189 | version = "0.4.10" 1190 | source = "registry+https://github.com/rust-lang/crates.io-index" 1191 | checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" 1192 | dependencies = [ 1193 | "libc", 1194 | "winapi", 1195 | ] 1196 | 1197 | [[package]] 1198 | name = "socket2" 1199 | version = "0.5.5" 1200 | source = "registry+https://github.com/rust-lang/crates.io-index" 1201 | checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" 1202 | dependencies = [ 1203 | "libc", 1204 | "windows-sys", 1205 | ] 1206 | 1207 | [[package]] 1208 | name = "spin" 1209 | version = "0.5.2" 1210 | source = "registry+https://github.com/rust-lang/crates.io-index" 1211 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 1212 | 1213 | [[package]] 1214 | name = "spin" 1215 | version = "0.9.8" 1216 | source = "registry+https://github.com/rust-lang/crates.io-index" 1217 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 1218 | dependencies = [ 1219 | "lock_api", 1220 | ] 1221 | 1222 | [[package]] 1223 | name = "spki" 1224 | version = "0.7.3" 1225 | source = "registry+https://github.com/rust-lang/crates.io-index" 1226 | checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" 1227 | dependencies = [ 1228 | "base64ct", 1229 | "der", 1230 | ] 1231 | 1232 | [[package]] 1233 | name = "sqlformat" 1234 | version = "0.2.2" 1235 | source = "registry+https://github.com/rust-lang/crates.io-index" 1236 | checksum = "6b7b278788e7be4d0d29c0f39497a0eef3fba6bbc8e70d8bf7fde46edeaa9e85" 1237 | dependencies = [ 1238 | "itertools", 1239 | "nom", 1240 | "unicode_categories", 1241 | ] 1242 | 1243 | [[package]] 1244 | name = "sqlx" 1245 | version = "0.7.2" 1246 | source = "registry+https://github.com/rust-lang/crates.io-index" 1247 | checksum = "0e50c216e3624ec8e7ecd14c6a6a6370aad6ee5d8cfc3ab30b5162eeeef2ed33" 1248 | dependencies = [ 1249 | "sqlx-core", 1250 | "sqlx-macros", 1251 | "sqlx-mysql", 1252 | "sqlx-postgres", 1253 | "sqlx-sqlite", 1254 | ] 1255 | 1256 | [[package]] 1257 | name = "sqlx-core" 1258 | version = "0.7.2" 1259 | source = "registry+https://github.com/rust-lang/crates.io-index" 1260 | checksum = "8d6753e460c998bbd4cd8c6f0ed9a64346fcca0723d6e75e52fdc351c5d2169d" 1261 | dependencies = [ 1262 | "ahash", 1263 | "atoi", 1264 | "byteorder", 1265 | "bytes", 1266 | "crc", 1267 | "crossbeam-queue", 1268 | "dotenvy", 1269 | "either", 1270 | "event-listener", 1271 | "futures-channel", 1272 | "futures-core", 1273 | "futures-intrusive", 1274 | "futures-io", 1275 | "futures-util", 1276 | "hashlink", 1277 | "hex", 1278 | "indexmap", 1279 | "log", 1280 | "memchr", 1281 | "once_cell", 1282 | "paste", 1283 | "percent-encoding", 1284 | "serde", 1285 | "serde_json", 1286 | "sha2", 1287 | "smallvec", 1288 | "sqlformat", 1289 | "thiserror", 1290 | "tracing", 1291 | "url", 1292 | ] 1293 | 1294 | [[package]] 1295 | name = "sqlx-macros" 1296 | version = "0.7.2" 1297 | source = "registry+https://github.com/rust-lang/crates.io-index" 1298 | checksum = "9a793bb3ba331ec8359c1853bd39eed32cdd7baaf22c35ccf5c92a7e8d1189ec" 1299 | dependencies = [ 1300 | "proc-macro2", 1301 | "quote", 1302 | "sqlx-core", 1303 | "sqlx-macros-core", 1304 | "syn 1.0.109", 1305 | ] 1306 | 1307 | [[package]] 1308 | name = "sqlx-macros-core" 1309 | version = "0.7.2" 1310 | source = "registry+https://github.com/rust-lang/crates.io-index" 1311 | checksum = "0a4ee1e104e00dedb6aa5ffdd1343107b0a4702e862a84320ee7cc74782d96fc" 1312 | dependencies = [ 1313 | "dotenvy", 1314 | "either", 1315 | "heck", 1316 | "hex", 1317 | "once_cell", 1318 | "proc-macro2", 1319 | "quote", 1320 | "serde", 1321 | "serde_json", 1322 | "sha2", 1323 | "sqlx-core", 1324 | "sqlx-mysql", 1325 | "sqlx-postgres", 1326 | "sqlx-sqlite", 1327 | "syn 1.0.109", 1328 | "tempfile", 1329 | "url", 1330 | ] 1331 | 1332 | [[package]] 1333 | name = "sqlx-mysql" 1334 | version = "0.7.2" 1335 | source = "registry+https://github.com/rust-lang/crates.io-index" 1336 | checksum = "864b869fdf56263f4c95c45483191ea0af340f9f3e3e7b4d57a61c7c87a970db" 1337 | dependencies = [ 1338 | "atoi", 1339 | "base64", 1340 | "bitflags 2.4.1", 1341 | "byteorder", 1342 | "bytes", 1343 | "crc", 1344 | "digest", 1345 | "dotenvy", 1346 | "either", 1347 | "futures-channel", 1348 | "futures-core", 1349 | "futures-io", 1350 | "futures-util", 1351 | "generic-array", 1352 | "hex", 1353 | "hkdf", 1354 | "hmac", 1355 | "itoa", 1356 | "log", 1357 | "md-5", 1358 | "memchr", 1359 | "once_cell", 1360 | "percent-encoding", 1361 | "rand", 1362 | "rsa", 1363 | "serde", 1364 | "sha1", 1365 | "sha2", 1366 | "smallvec", 1367 | "sqlx-core", 1368 | "stringprep", 1369 | "thiserror", 1370 | "tracing", 1371 | "whoami", 1372 | ] 1373 | 1374 | [[package]] 1375 | name = "sqlx-postgres" 1376 | version = "0.7.2" 1377 | source = "registry+https://github.com/rust-lang/crates.io-index" 1378 | checksum = "eb7ae0e6a97fb3ba33b23ac2671a5ce6e3cabe003f451abd5a56e7951d975624" 1379 | dependencies = [ 1380 | "atoi", 1381 | "base64", 1382 | "bitflags 2.4.1", 1383 | "byteorder", 1384 | "crc", 1385 | "dotenvy", 1386 | "etcetera", 1387 | "futures-channel", 1388 | "futures-core", 1389 | "futures-io", 1390 | "futures-util", 1391 | "hex", 1392 | "hkdf", 1393 | "hmac", 1394 | "home", 1395 | "itoa", 1396 | "log", 1397 | "md-5", 1398 | "memchr", 1399 | "once_cell", 1400 | "rand", 1401 | "serde", 1402 | "serde_json", 1403 | "sha1", 1404 | "sha2", 1405 | "smallvec", 1406 | "sqlx-core", 1407 | "stringprep", 1408 | "thiserror", 1409 | "tracing", 1410 | "whoami", 1411 | ] 1412 | 1413 | [[package]] 1414 | name = "sqlx-sqlite" 1415 | version = "0.7.2" 1416 | source = "registry+https://github.com/rust-lang/crates.io-index" 1417 | checksum = "d59dc83cf45d89c555a577694534fcd1b55c545a816c816ce51f20bbe56a4f3f" 1418 | dependencies = [ 1419 | "atoi", 1420 | "flume", 1421 | "futures-channel", 1422 | "futures-core", 1423 | "futures-executor", 1424 | "futures-intrusive", 1425 | "futures-util", 1426 | "libsqlite3-sys", 1427 | "log", 1428 | "percent-encoding", 1429 | "serde", 1430 | "sqlx-core", 1431 | "tracing", 1432 | "url", 1433 | ] 1434 | 1435 | [[package]] 1436 | name = "stringprep" 1437 | version = "0.1.4" 1438 | source = "registry+https://github.com/rust-lang/crates.io-index" 1439 | checksum = "bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6" 1440 | dependencies = [ 1441 | "finl_unicode", 1442 | "unicode-bidi", 1443 | "unicode-normalization", 1444 | ] 1445 | 1446 | [[package]] 1447 | name = "subtle" 1448 | version = "2.5.0" 1449 | source = "registry+https://github.com/rust-lang/crates.io-index" 1450 | checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" 1451 | 1452 | [[package]] 1453 | name = "syn" 1454 | version = "1.0.109" 1455 | source = "registry+https://github.com/rust-lang/crates.io-index" 1456 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1457 | dependencies = [ 1458 | "proc-macro2", 1459 | "quote", 1460 | "unicode-ident", 1461 | ] 1462 | 1463 | [[package]] 1464 | name = "syn" 1465 | version = "2.0.39" 1466 | source = "registry+https://github.com/rust-lang/crates.io-index" 1467 | checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" 1468 | dependencies = [ 1469 | "proc-macro2", 1470 | "quote", 1471 | "unicode-ident", 1472 | ] 1473 | 1474 | [[package]] 1475 | name = "tempfile" 1476 | version = "3.8.1" 1477 | source = "registry+https://github.com/rust-lang/crates.io-index" 1478 | checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" 1479 | dependencies = [ 1480 | "cfg-if", 1481 | "fastrand", 1482 | "redox_syscall", 1483 | "rustix", 1484 | "windows-sys", 1485 | ] 1486 | 1487 | [[package]] 1488 | name = "thiserror" 1489 | version = "1.0.50" 1490 | source = "registry+https://github.com/rust-lang/crates.io-index" 1491 | checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" 1492 | dependencies = [ 1493 | "thiserror-impl", 1494 | ] 1495 | 1496 | [[package]] 1497 | name = "thiserror-impl" 1498 | version = "1.0.50" 1499 | source = "registry+https://github.com/rust-lang/crates.io-index" 1500 | checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" 1501 | dependencies = [ 1502 | "proc-macro2", 1503 | "quote", 1504 | "syn 2.0.39", 1505 | ] 1506 | 1507 | [[package]] 1508 | name = "tinyvec" 1509 | version = "1.6.0" 1510 | source = "registry+https://github.com/rust-lang/crates.io-index" 1511 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 1512 | dependencies = [ 1513 | "tinyvec_macros", 1514 | ] 1515 | 1516 | [[package]] 1517 | name = "tinyvec_macros" 1518 | version = "0.1.1" 1519 | source = "registry+https://github.com/rust-lang/crates.io-index" 1520 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1521 | 1522 | [[package]] 1523 | name = "tokio" 1524 | version = "1.34.0" 1525 | source = "registry+https://github.com/rust-lang/crates.io-index" 1526 | checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" 1527 | dependencies = [ 1528 | "backtrace", 1529 | "bytes", 1530 | "libc", 1531 | "mio", 1532 | "num_cpus", 1533 | "parking_lot", 1534 | "pin-project-lite", 1535 | "signal-hook-registry", 1536 | "socket2 0.5.5", 1537 | "tokio-macros", 1538 | "windows-sys", 1539 | ] 1540 | 1541 | [[package]] 1542 | name = "tokio-macros" 1543 | version = "2.2.0" 1544 | source = "registry+https://github.com/rust-lang/crates.io-index" 1545 | checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" 1546 | dependencies = [ 1547 | "proc-macro2", 1548 | "quote", 1549 | "syn 2.0.39", 1550 | ] 1551 | 1552 | [[package]] 1553 | name = "tokio-stream" 1554 | version = "0.1.14" 1555 | source = "registry+https://github.com/rust-lang/crates.io-index" 1556 | checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" 1557 | dependencies = [ 1558 | "futures-core", 1559 | "pin-project-lite", 1560 | "tokio", 1561 | ] 1562 | 1563 | [[package]] 1564 | name = "tokio-tungstenite" 1565 | version = "0.20.1" 1566 | source = "registry+https://github.com/rust-lang/crates.io-index" 1567 | checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" 1568 | dependencies = [ 1569 | "futures-util", 1570 | "log", 1571 | "tokio", 1572 | "tungstenite", 1573 | ] 1574 | 1575 | [[package]] 1576 | name = "tokio-util" 1577 | version = "0.7.10" 1578 | source = "registry+https://github.com/rust-lang/crates.io-index" 1579 | checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" 1580 | dependencies = [ 1581 | "bytes", 1582 | "futures-core", 1583 | "futures-sink", 1584 | "pin-project-lite", 1585 | "tokio", 1586 | "tracing", 1587 | ] 1588 | 1589 | [[package]] 1590 | name = "tower-service" 1591 | version = "0.3.2" 1592 | source = "registry+https://github.com/rust-lang/crates.io-index" 1593 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 1594 | 1595 | [[package]] 1596 | name = "tracing" 1597 | version = "0.1.40" 1598 | source = "registry+https://github.com/rust-lang/crates.io-index" 1599 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 1600 | dependencies = [ 1601 | "log", 1602 | "pin-project-lite", 1603 | "tracing-attributes", 1604 | "tracing-core", 1605 | ] 1606 | 1607 | [[package]] 1608 | name = "tracing-attributes" 1609 | version = "0.1.27" 1610 | source = "registry+https://github.com/rust-lang/crates.io-index" 1611 | checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 1612 | dependencies = [ 1613 | "proc-macro2", 1614 | "quote", 1615 | "syn 2.0.39", 1616 | ] 1617 | 1618 | [[package]] 1619 | name = "tracing-core" 1620 | version = "0.1.32" 1621 | source = "registry+https://github.com/rust-lang/crates.io-index" 1622 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 1623 | dependencies = [ 1624 | "once_cell", 1625 | ] 1626 | 1627 | [[package]] 1628 | name = "try-lock" 1629 | version = "0.2.4" 1630 | source = "registry+https://github.com/rust-lang/crates.io-index" 1631 | checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" 1632 | 1633 | [[package]] 1634 | name = "tungstenite" 1635 | version = "0.20.1" 1636 | source = "registry+https://github.com/rust-lang/crates.io-index" 1637 | checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" 1638 | dependencies = [ 1639 | "byteorder", 1640 | "bytes", 1641 | "data-encoding", 1642 | "http", 1643 | "httparse", 1644 | "log", 1645 | "rand", 1646 | "sha1", 1647 | "thiserror", 1648 | "url", 1649 | "utf-8", 1650 | ] 1651 | 1652 | [[package]] 1653 | name = "typenum" 1654 | version = "1.17.0" 1655 | source = "registry+https://github.com/rust-lang/crates.io-index" 1656 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 1657 | 1658 | [[package]] 1659 | name = "unicase" 1660 | version = "2.7.0" 1661 | source = "registry+https://github.com/rust-lang/crates.io-index" 1662 | checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" 1663 | dependencies = [ 1664 | "version_check", 1665 | ] 1666 | 1667 | [[package]] 1668 | name = "unicode-bidi" 1669 | version = "0.3.13" 1670 | source = "registry+https://github.com/rust-lang/crates.io-index" 1671 | checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" 1672 | 1673 | [[package]] 1674 | name = "unicode-ident" 1675 | version = "1.0.12" 1676 | source = "registry+https://github.com/rust-lang/crates.io-index" 1677 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 1678 | 1679 | [[package]] 1680 | name = "unicode-normalization" 1681 | version = "0.1.22" 1682 | source = "registry+https://github.com/rust-lang/crates.io-index" 1683 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 1684 | dependencies = [ 1685 | "tinyvec", 1686 | ] 1687 | 1688 | [[package]] 1689 | name = "unicode-segmentation" 1690 | version = "1.10.1" 1691 | source = "registry+https://github.com/rust-lang/crates.io-index" 1692 | checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" 1693 | 1694 | [[package]] 1695 | name = "unicode_categories" 1696 | version = "0.1.1" 1697 | source = "registry+https://github.com/rust-lang/crates.io-index" 1698 | checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" 1699 | 1700 | [[package]] 1701 | name = "url" 1702 | version = "2.4.1" 1703 | source = "registry+https://github.com/rust-lang/crates.io-index" 1704 | checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" 1705 | dependencies = [ 1706 | "form_urlencoded", 1707 | "idna", 1708 | "percent-encoding", 1709 | ] 1710 | 1711 | [[package]] 1712 | name = "utf-8" 1713 | version = "0.7.6" 1714 | source = "registry+https://github.com/rust-lang/crates.io-index" 1715 | checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 1716 | 1717 | [[package]] 1718 | name = "vcpkg" 1719 | version = "0.2.15" 1720 | source = "registry+https://github.com/rust-lang/crates.io-index" 1721 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 1722 | 1723 | [[package]] 1724 | name = "version_check" 1725 | version = "0.9.4" 1726 | source = "registry+https://github.com/rust-lang/crates.io-index" 1727 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 1728 | 1729 | [[package]] 1730 | name = "want" 1731 | version = "0.3.1" 1732 | source = "registry+https://github.com/rust-lang/crates.io-index" 1733 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 1734 | dependencies = [ 1735 | "try-lock", 1736 | ] 1737 | 1738 | [[package]] 1739 | name = "warp" 1740 | version = "0.3.6" 1741 | source = "registry+https://github.com/rust-lang/crates.io-index" 1742 | checksum = "c1e92e22e03ff1230c03a1a8ee37d2f89cd489e2e541b7550d6afad96faed169" 1743 | dependencies = [ 1744 | "bytes", 1745 | "futures-channel", 1746 | "futures-util", 1747 | "headers", 1748 | "http", 1749 | "hyper", 1750 | "log", 1751 | "mime", 1752 | "mime_guess", 1753 | "multer", 1754 | "percent-encoding", 1755 | "pin-project", 1756 | "rustls-pemfile", 1757 | "scoped-tls", 1758 | "serde", 1759 | "serde_json", 1760 | "serde_urlencoded", 1761 | "tokio", 1762 | "tokio-stream", 1763 | "tokio-tungstenite", 1764 | "tokio-util", 1765 | "tower-service", 1766 | "tracing", 1767 | ] 1768 | 1769 | [[package]] 1770 | name = "wasi" 1771 | version = "0.11.0+wasi-snapshot-preview1" 1772 | source = "registry+https://github.com/rust-lang/crates.io-index" 1773 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1774 | 1775 | [[package]] 1776 | name = "wasite" 1777 | version = "0.1.0" 1778 | source = "registry+https://github.com/rust-lang/crates.io-index" 1779 | checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" 1780 | 1781 | [[package]] 1782 | name = "whoami" 1783 | version = "1.5.1" 1784 | source = "registry+https://github.com/rust-lang/crates.io-index" 1785 | checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" 1786 | dependencies = [ 1787 | "redox_syscall", 1788 | "wasite", 1789 | ] 1790 | 1791 | [[package]] 1792 | name = "winapi" 1793 | version = "0.3.9" 1794 | source = "registry+https://github.com/rust-lang/crates.io-index" 1795 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 1796 | dependencies = [ 1797 | "winapi-i686-pc-windows-gnu", 1798 | "winapi-x86_64-pc-windows-gnu", 1799 | ] 1800 | 1801 | [[package]] 1802 | name = "winapi-i686-pc-windows-gnu" 1803 | version = "0.4.0" 1804 | source = "registry+https://github.com/rust-lang/crates.io-index" 1805 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1806 | 1807 | [[package]] 1808 | name = "winapi-x86_64-pc-windows-gnu" 1809 | version = "0.4.0" 1810 | source = "registry+https://github.com/rust-lang/crates.io-index" 1811 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1812 | 1813 | [[package]] 1814 | name = "windows-sys" 1815 | version = "0.48.0" 1816 | source = "registry+https://github.com/rust-lang/crates.io-index" 1817 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 1818 | dependencies = [ 1819 | "windows-targets", 1820 | ] 1821 | 1822 | [[package]] 1823 | name = "windows-targets" 1824 | version = "0.48.5" 1825 | source = "registry+https://github.com/rust-lang/crates.io-index" 1826 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 1827 | dependencies = [ 1828 | "windows_aarch64_gnullvm", 1829 | "windows_aarch64_msvc", 1830 | "windows_i686_gnu", 1831 | "windows_i686_msvc", 1832 | "windows_x86_64_gnu", 1833 | "windows_x86_64_gnullvm", 1834 | "windows_x86_64_msvc", 1835 | ] 1836 | 1837 | [[package]] 1838 | name = "windows_aarch64_gnullvm" 1839 | version = "0.48.5" 1840 | source = "registry+https://github.com/rust-lang/crates.io-index" 1841 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 1842 | 1843 | [[package]] 1844 | name = "windows_aarch64_msvc" 1845 | version = "0.48.5" 1846 | source = "registry+https://github.com/rust-lang/crates.io-index" 1847 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 1848 | 1849 | [[package]] 1850 | name = "windows_i686_gnu" 1851 | version = "0.48.5" 1852 | source = "registry+https://github.com/rust-lang/crates.io-index" 1853 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 1854 | 1855 | [[package]] 1856 | name = "windows_i686_msvc" 1857 | version = "0.48.5" 1858 | source = "registry+https://github.com/rust-lang/crates.io-index" 1859 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 1860 | 1861 | [[package]] 1862 | name = "windows_x86_64_gnu" 1863 | version = "0.48.5" 1864 | source = "registry+https://github.com/rust-lang/crates.io-index" 1865 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 1866 | 1867 | [[package]] 1868 | name = "windows_x86_64_gnullvm" 1869 | version = "0.48.5" 1870 | source = "registry+https://github.com/rust-lang/crates.io-index" 1871 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 1872 | 1873 | [[package]] 1874 | name = "windows_x86_64_msvc" 1875 | version = "0.48.5" 1876 | source = "registry+https://github.com/rust-lang/crates.io-index" 1877 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 1878 | 1879 | [[package]] 1880 | name = "zerocopy" 1881 | version = "0.7.32" 1882 | source = "registry+https://github.com/rust-lang/crates.io-index" 1883 | checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" 1884 | dependencies = [ 1885 | "zerocopy-derive", 1886 | ] 1887 | 1888 | [[package]] 1889 | name = "zerocopy-derive" 1890 | version = "0.7.32" 1891 | source = "registry+https://github.com/rust-lang/crates.io-index" 1892 | checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" 1893 | dependencies = [ 1894 | "proc-macro2", 1895 | "quote", 1896 | "syn 2.0.39", 1897 | ] 1898 | 1899 | [[package]] 1900 | name = "zeroize" 1901 | version = "1.6.0" 1902 | source = "registry+https://github.com/rust-lang/crates.io-index" 1903 | checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" 1904 | --------------------------------------------------------------------------------