diff --git a/Cargo.lock b/Cargo.lock index 76c9136..56abe15 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7,19 +7,17 @@ name = "ServerSeekerV2" version = "0.1.0" dependencies = [ "anyhow", - "azalea-protocol", "clap", "futures-util", "indicatif", "serde", "serde_json", "sqlx", - "thiserror 2.0.12", + "thiserror", "tokio", "toml", "tracing", "tracing-subscriber", - "uuid", ] [[package]] @@ -37,40 +35,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if", - "const-random", - "getrandom 0.3.2", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - [[package]] name = "allocator-api2" version = "0.2.21" @@ -133,65 +97,6 @@ version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" -[[package]] -name = "as-any" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0f477b951e452a0b6b4a10b53ccd569042d1d01729b519e02074a9c0958a063" - -[[package]] -name = "assert_type_match" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f548ad2c4031f2902e3edc1f29c29e835829437de49562d8eb5dc5584d3a1043" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "async-executor" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "pin-project-lite", - "slab", -] - -[[package]] -name = "async-recursion" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "async-task" -version = "4.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" - -[[package]] -name = "async-trait" -version = "0.1.88" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "atoi" version = "2.0.0" @@ -207,290 +112,6 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" -[[package]] -name = "azalea-auth" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26232379eb9f4c2451e8ccfe0b9ad58553aec38e254c8beceb55cecd8c199b0b" -dependencies = [ - "azalea-buf", - "azalea-crypto", - "base64", - "chrono", - "md-5", - "reqwest", - "rsa", - "serde", - "serde_json", - "thiserror 2.0.12", - "tokio", - "tracing", - "uuid", -] - -[[package]] -name = "azalea-block" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1a077e836e646ff1da6a633569d72f89178a3b30ea24a7d2216c583d037ce4" -dependencies = [ - "azalea-block-macros", - "azalea-buf", - "azalea-registry", -] - -[[package]] -name = "azalea-block-macros" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0170fb7276d40987c740d6458b487328c6e90104e0d4ab643a925da17aafcd0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "azalea-brigadier" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0783bf333a7882970a00ab2d563311cdb59b86f86dde540d24077efdf3ccef3b" -dependencies = [ - "azalea-buf", - "azalea-chat", - "parking_lot", -] - -[[package]] -name = "azalea-buf" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a80eaf08a754dec2ccf61f80584f70d0d40e64b9bb969ab91b116b27edd5be2b" -dependencies = [ - "azalea-buf-macros", - "byteorder", - "serde_json", - "simdnbt", - "thiserror 2.0.12", - "tracing", - "uuid", -] - -[[package]] -name = "azalea-buf-macros" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90deac1ca20b021987467054c041b5ea67820bd82a449527205e5dec95ad62a8" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "azalea-chat" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fa2b059cdcf9a82d4106a5f252e6c12302b622c904914e3295b07acec6d8454" -dependencies = [ - "azalea-buf", - "azalea-language", - "azalea-registry", - "serde", - "serde_json", - "simdnbt", - "tracing", -] - -[[package]] -name = "azalea-core" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98221d995cc8aeaa4cd9277ec36f85ee412dc9d2466d777f28c5304458b17467" -dependencies = [ - "azalea-buf", - "azalea-chat", - "azalea-registry", - "bevy_ecs", - "indexmap", - "nohash-hasher", - "num-traits", - "serde", - "simdnbt", - "tracing", -] - -[[package]] -name = "azalea-crypto" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b7f03f0d2eb5423e9f80f0ec344a8dd26614dea44bc6043e0b2037785ed2a14" -dependencies = [ - "aes", - "azalea-buf", - "cfb8", - "num-bigint", - "rand 0.8.5", - "rsa", - "rsa_public_encrypt_pkcs1", - "sha-1", - "sha2", - "uuid", -] - -[[package]] -name = "azalea-entity" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8fd3d019ed2d057fa66df1fe506da4aa3b8c26de3192149d991826fc5f71f6d" -dependencies = [ - "azalea-block", - "azalea-buf", - "azalea-chat", - "azalea-core", - "azalea-inventory", - "azalea-registry", - "azalea-world", - "bevy_app", - "bevy_ecs", - "derive_more 2.0.1", - "enum-as-inner", - "nohash-hasher", - "parking_lot", - "simdnbt", - "thiserror 2.0.12", - "tracing", - "uuid", -] - -[[package]] -name = "azalea-inventory" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd17ea352965531e9559c5cc1b5f03a2a247f3f861175d1e72e6fb1cf0431be6" -dependencies = [ - "azalea-buf", - "azalea-chat", - "azalea-core", - "azalea-inventory-macros", - "azalea-registry", - "indexmap", - "simdnbt", - "tracing", - "uuid", -] - -[[package]] -name = "azalea-inventory-macros" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "776c2f6d1e61334a21240372f0ff07aaff6d7d6685093e46bb85731b36ffbfc5" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "azalea-language" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ce118e274d62985f2497795017b268c7970acfefcbcfc960a7341137f26ea4" -dependencies = [ - "compact_str", - "serde", - "serde_json", -] - -[[package]] -name = "azalea-protocol" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceabb2ad1235c30e3eb6446eba5ca35834a8b7c0e9ab56b638240d98bf775da4" -dependencies = [ - "async-recursion", - "azalea-auth", - "azalea-block", - "azalea-brigadier", - "azalea-buf", - "azalea-chat", - "azalea-core", - "azalea-crypto", - "azalea-entity", - "azalea-inventory", - "azalea-protocol-macros", - "azalea-registry", - "azalea-world", - "bevy_ecs", - "crc32fast", - "flate2", - "futures", - "futures-lite", - "hickory-resolver", - "serde", - "serde_json", - "simdnbt", - "socks5-impl", - "thiserror 2.0.12", - "tokio", - "tokio-util", - "tracing", - "uuid", -] - -[[package]] -name = "azalea-protocol-macros" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a437aecf838bf2779d0b87204b2c3dacc39f2dcb0a4bfa392544c96a2dbfa9" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "azalea-registry" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6d3e5007270099882371988558fdf24f1bfc64ebb050758491f07976cfa4fcb" -dependencies = [ - "azalea-buf", - "azalea-registry-macros", - "serde", - "simdnbt", -] - -[[package]] -name = "azalea-registry-macros" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbe7757a75d4fa001b2e2f19543bcffe315f8d25f045890d37e26e2739f30f3" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "azalea-world" -version = "0.12.0+mc1.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa37bca81be50c530a8308b7405d763b237b6edfdfb106153995cdbd1e2ec216" -dependencies = [ - "azalea-block", - "azalea-buf", - "azalea-core", - "azalea-registry", - "bevy_ecs", - "derive_more 2.0.1", - "nohash-hasher", - "parking_lot", - "rustc-hash", - "simdnbt", - "thiserror 2.0.12", - "tracing", -] - [[package]] name = "backtrace" version = "0.3.74" @@ -518,157 +139,6 @@ version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" -[[package]] -name = "bevy_app" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0ac033a388b8699d241499a43783a09e6a3bab2430f1297c6bd4974095efb3f" -dependencies = [ - "bevy_derive", - "bevy_ecs", - "bevy_reflect", - "bevy_tasks", - "bevy_utils", - "console_error_panic_hook", - "ctrlc", - "derive_more 1.0.0", - "downcast-rs", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "bevy_derive" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d94761ce947b0a2402fd949fe1e7a5b1535293130ba4cd9893be6295d4680a" -dependencies = [ - "bevy_macro_utils", - "quote", - "syn", -] - -[[package]] -name = "bevy_ecs" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1597106cc01e62e6217ccb662e0748b2ce330893f27c7dc17bac33e0bb99bca9" -dependencies = [ - "bevy_ecs_macros", - "bevy_ptr", - "bevy_reflect", - "bevy_tasks", - "bevy_utils", - "bitflags", - "concurrent-queue", - "derive_more 1.0.0", - "disqualified", - "fixedbitset 0.5.7", - "nonmax", - "petgraph", - "smallvec", -] - -[[package]] -name = "bevy_ecs_macros" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f453adf07712b39826bc5845e5b0887ce03204ee8359bbe6b40a9afda60564a1" -dependencies = [ - "bevy_macro_utils", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "bevy_macro_utils" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb6ded1ddc124ea214f6a2140e47a78d1fe79b0638dad39419cdeef2e1133f1" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "toml_edit", -] - -[[package]] -name = "bevy_ptr" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89fe0b0b919146939481a3a7c38864face2c6d0fd2c73ab3d430dc693ecd9b11" - -[[package]] -name = "bevy_reflect" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ddbca0a39e88eff2c301dc794ee9d73a53f4b08d47b2c9b5a6aac182fae6217" -dependencies = [ - "assert_type_match", - "bevy_ptr", - "bevy_reflect_derive", - "bevy_utils", - "derive_more 1.0.0", - "disqualified", - "downcast-rs", - "erased-serde", - "serde", - "smallvec", -] - -[[package]] -name = "bevy_reflect_derive" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d62affb769db17d34ad0b75ff27eca94867e2acc8ea350c5eca97d102bd98709" -dependencies = [ - "bevy_macro_utils", - "proc-macro2", - "quote", - "syn", - "uuid", -] - -[[package]] -name = "bevy_tasks" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028630ddc355563bd567df1076db3515858aa26715ddf7467d2086f9b40e5ab1" -dependencies = [ - "async-executor", - "futures-channel", - "futures-lite", - "pin-project", - "wasm-bindgen-futures", -] - -[[package]] -name = "bevy_utils" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63c2174d43a0de99f863c98a472370047a2bfa7d1e5cec8d9d647fb500905d9d" -dependencies = [ - "ahash", - "bevy_utils_proc_macros", - "getrandom 0.2.16", - "hashbrown 0.14.5", - "thread_local", - "tracing", - "web-time", -] - -[[package]] -name = "bevy_utils_proc_macros" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94847541f6dd2e28f54a9c2b0e857da5f2631e2201ebc25ce68781cdcb721391" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "bitflags" version = "2.9.0" @@ -705,65 +175,12 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" -[[package]] -name = "castaway" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5" -dependencies = [ - "rustversion", -] - -[[package]] -name = "cc" -version = "1.2.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfb8" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "014c0a0e1ad0dae6a86c082db2f9bd7fe8c2c734227047d0d8b4d4a3a094a1e1" -dependencies = [ - "cipher", -] - [[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.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" -dependencies = [ - "num-traits", - "serde", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "clap" version = "4.5.37" @@ -810,21 +227,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" -[[package]] -name = "compact_str" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" -dependencies = [ - "castaway", - "cfg-if", - "itoa", - "rustversion", - "ryu", - "serde", - "static_assertions", -] - [[package]] name = "concurrent-queue" version = "2.5.0" @@ -847,42 +249,12 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "console_error_panic_hook" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" -dependencies = [ - "cfg-if", - "wasm-bindgen", -] - [[package]] name = "const-oid" version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" -[[package]] -name = "const-random" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" -dependencies = [ - "const-random-macro", -] - -[[package]] -name = "const-random-macro" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" -dependencies = [ - "getrandom 0.2.16", - "once_cell", - "tiny-keccak", -] - [[package]] name = "cpufeatures" version = "0.2.17" @@ -907,39 +279,6 @@ 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 = "critical-section" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" - -[[package]] -name = "crossbeam-channel" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" -dependencies = [ - "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" @@ -955,12 +294,6 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" -[[package]] -name = "crunchy" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" - [[package]] name = "crypto-common" version = "0.1.6" @@ -971,22 +304,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "ctrlc" -version = "3.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697b5419f348fd5ae2478e8018cb016c00a5881c7f46c717de98ffd135a5651c" -dependencies = [ - "nix", - "windows-sys 0.59.0", -] - -[[package]] -name = "data-encoding" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" - [[package]] name = "der" version = "0.7.10" @@ -998,47 +315,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "derive_more" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" -dependencies = [ - "derive_more-impl 1.0.0", -] - -[[package]] -name = "derive_more" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" -dependencies = [ - "derive_more-impl 2.0.1", -] - -[[package]] -name = "derive_more-impl" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", -] - -[[package]] -name = "derive_more-impl" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "digest" version = "0.10.7" @@ -1062,24 +338,12 @@ dependencies = [ "syn", ] -[[package]] -name = "disqualified" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9c272297e804878a2a4b707cfcfc6d2328b5bb936944613b4fdf2b9269afdfd" - [[package]] name = "dotenvy" version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - [[package]] name = "either" version = "1.15.0" @@ -1095,34 +359,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" -[[package]] -name = "enum-as-inner" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "equivalent" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" -[[package]] -name = "erased-serde" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" -dependencies = [ - "serde", - "typeid", -] - [[package]] name = "errno" version = "0.3.11" @@ -1161,29 +403,6 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - -[[package]] -name = "flate2" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" -dependencies = [ - "crc32fast", - "libz-rs-sys", - "miniz_oxide", -] - [[package]] name = "flume" version = "0.11.1" @@ -1195,12 +414,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.5" @@ -1216,21 +429,6 @@ 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" @@ -1275,19 +473,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" -[[package]] -name = "futures-lite" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "parking", - "pin-project-lite", -] - [[package]] name = "futures-macro" version = "0.3.31" @@ -1317,7 +502,6 @@ 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", @@ -1329,19 +513,6 @@ dependencies = [ "slab", ] -[[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" @@ -1359,10 +530,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", - "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", ] [[package]] @@ -1372,11 +541,9 @@ 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]] @@ -1385,17 +552,6 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", - "serde", -] - [[package]] name = "hashbrown" version = "0.15.2" @@ -1413,7 +569,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" dependencies = [ - "hashbrown 0.15.2", + "hashbrown", ] [[package]] @@ -1428,50 +584,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hickory-proto" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner", - "futures-channel", - "futures-io", - "futures-util", - "idna", - "ipnet", - "once_cell", - "rand 0.9.1", - "ring", - "thiserror 2.0.12", - "tinyvec", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "hickory-resolver" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" -dependencies = [ - "cfg-if", - "futures-util", - "hickory-proto", - "moka", - "once_cell", - "parking_lot", - "rand 0.9.1", - "smallvec", - "thiserror 2.0.12", - "tokio", - "tracing", -] - [[package]] name = "hkdf" version = "0.12.4" @@ -1499,103 +611,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "http" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http", -] - -[[package]] -name = "http-body-util" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" -dependencies = [ - "bytes", - "futures-core", - "http", - "http-body", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" - -[[package]] -name = "hyper" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http", - "http-body", - "httparse", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" -dependencies = [ - "futures-util", - "http", - "hyper", - "hyper-util", - "rustls", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tower-service", - "webpki-roots 0.26.11", -] - -[[package]] -name = "hyper-util" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http", - "http-body", - "hyper", - "libc", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", -] - [[package]] name = "icu_collections" version = "1.5.0" @@ -1742,7 +757,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown", ] [[package]] @@ -1758,15 +773,6 @@ dependencies = [ "web-time", ] -[[package]] -name = "inout" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" -dependencies = [ - "generic-array", -] - [[package]] name = "ipnet" version = "2.11.0" @@ -1826,15 +832,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "libz-rs-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6489ca9bd760fe9642d7644e827b0c9add07df89857b0416ee15c1cc1a3b8c5a" -dependencies = [ - "zlib-rs", -] - [[package]] name = "linux-raw-sys" version = "0.9.4" @@ -1863,34 +860,6 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" -[[package]] -name = "loom" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" -dependencies = [ - "cfg-if", - "generator", - "scoped-tls", - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "lru-slab" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - [[package]] name = "md-5" version = "0.10.6" @@ -1907,12 +876,6 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - [[package]] name = "miniz_oxide" version = "0.8.8" @@ -1933,49 +896,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "moka" -version = "0.12.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" -dependencies = [ - "crossbeam-channel", - "crossbeam-epoch", - "crossbeam-utils", - "loom", - "parking_lot", - "portable-atomic", - "rustc_version", - "smallvec", - "tagptr", - "thiserror 1.0.69", - "uuid", -] - -[[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", -] - -[[package]] -name = "nohash-hasher" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" - -[[package]] -name = "nonmax" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" - [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -1986,30 +906,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - [[package]] name = "num-bigint-dig" version = "0.8.4" @@ -2022,20 +918,11 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "rand 0.8.5", + "rand", "smallvec", "zeroize", ] -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - [[package]] name = "num-integer" version = "0.1.46" @@ -2056,17 +943,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -2097,10 +973,6 @@ name = "once_cell" version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" -dependencies = [ - "critical-section", - "portable-atomic", -] [[package]] name = "overload" @@ -2152,36 +1024,6 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" -[[package]] -name = "petgraph" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset 0.4.2", - "indexmap", -] - -[[package]] -name = "pin-project" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "pin-project-lite" version = "0.2.16" @@ -2245,61 +1087,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "quinn" -version = "0.11.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" -dependencies = [ - "bytes", - "cfg_aliases", - "pin-project-lite", - "quinn-proto", - "quinn-udp", - "rustc-hash", - "rustls", - "socket2", - "thiserror 2.0.12", - "tokio", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-proto" -version = "0.11.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" -dependencies = [ - "bytes", - "getrandom 0.3.2", - "lru-slab", - "rand 0.9.1", - "ring", - "rustc-hash", - "rustls", - "rustls-pki-types", - "slab", - "thiserror 2.0.12", - "tinyvec", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-udp" -version = "0.5.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842" -dependencies = [ - "cfg_aliases", - "libc", - "once_cell", - "socket2", - "tracing", - "windows-sys 0.59.0", -] - [[package]] name = "quote" version = "1.0.40" @@ -2322,18 +1109,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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", + "rand_chacha", + "rand_core", ] [[package]] @@ -2343,17 +1120,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]] @@ -2365,15 +1132,6 @@ dependencies = [ "getrandom 0.2.16", ] -[[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 = "redox_syscall" version = "0.5.11" @@ -2383,107 +1141,6 @@ 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 0.4.9", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[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 0.8.5", -] - -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" - -[[package]] -name = "reqwest" -version = "0.12.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" -dependencies = [ - "base64", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "quinn", - "rustls", - "rustls-pemfile", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-rustls", - "tower", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.26.11", - "windows-registry", -] - -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.16", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - [[package]] name = "rsa" version = "0.9.8" @@ -2497,46 +1154,19 @@ dependencies = [ "num-traits", "pkcs1", "pkcs8", - "rand_core 0.6.4", - "sha2", + "rand_core", "signature", "spki", "subtle", "zeroize", ] -[[package]] -name = "rsa_public_encrypt_pkcs1" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e9243a1f8b312c5535c09de102cc061416515201b194ee4f0a9a76da20ebf4" -dependencies = [ - "num", - "rand 0.8.5", - "simple_asn1", -] - [[package]] name = "rustc-demangle" version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" -[[package]] -name = "rustc-hash" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - [[package]] name = "rustix" version = "1.0.5" @@ -2550,80 +1180,18 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "rustls" -version = "0.23.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" -dependencies = [ - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" -dependencies = [ - "web-time", - "zeroize", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[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 = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - [[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" @@ -2677,17 +1245,6 @@ dependencies = [ "serde", ] -[[package]] -name = "sha-1" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - [[package]] name = "sha1" version = "0.10.6" @@ -2719,12 +1276,6 @@ dependencies = [ "lazy_static", ] -[[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.5" @@ -2741,59 +1292,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest", - "rand_core 0.6.4", -] - -[[package]] -name = "simd_cesu8" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c14f02c32cc4ef5068b0e15bee4513942f59165add7778a518b4d507b3b97ab" -dependencies = [ - "rustc_version", - "simdutf8", -] - -[[package]] -name = "simdnbt" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960b88bb7ea0984fbba94e53f1a2181ba6654e68a0eb53e45843e0eed402f10e" -dependencies = [ - "byteorder", - "flate2", - "simd_cesu8", - "simdnbt-derive", - "thiserror 2.0.12", -] - -[[package]] -name = "simdnbt-derive" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd1fe91ba0e4ee5cd6e565153b363fe06b19357ce9af07cc54371c450275d26e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - -[[package]] -name = "simple_asn1" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb4ea60fb301dc81dfc113df680571045d375ab7345d171c5dc7d7e13107a80" -dependencies = [ - "chrono", - "num-bigint", - "num-traits", - "thiserror 1.0.69", + "rand_core", ] [[package]] @@ -2824,21 +1323,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "socks5-impl" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b7bef5922371adf8b6f1dd0b9fe3d86c77c22686e8f4236b778ed0215cdcd9b" -dependencies = [ - "as-any", - "async-trait", - "byteorder", - "bytes", - "percent-encoding", - "thiserror 2.0.12", - "tokio", -] - [[package]] name = "spin" version = "0.9.8" @@ -2887,7 +1371,7 @@ dependencies = [ "futures-intrusive", "futures-io", "futures-util", - "hashbrown 0.15.2", + "hashbrown", "hashlink", "indexmap", "ipnet", @@ -2899,7 +1383,7 @@ dependencies = [ "serde_json", "sha2", "smallvec", - "thiserror 2.0.12", + "thiserror", "tokio", "tokio-stream", "tracing", @@ -2975,7 +1459,7 @@ dependencies = [ "memchr", "once_cell", "percent-encoding", - "rand 0.8.5", + "rand", "rsa", "serde", "sha1", @@ -2983,7 +1467,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.12", + "thiserror", "tracing", "uuid", "whoami", @@ -3015,14 +1499,14 @@ dependencies = [ "md-5", "memchr", "once_cell", - "rand 0.8.5", + "rand", "serde", "serde_json", "sha2", "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.12", + "thiserror", "tracing", "uuid", "whoami", @@ -3047,7 +1531,7 @@ dependencies = [ "serde", "serde_urlencoded", "sqlx-core", - "thiserror 2.0.12", + "thiserror", "tracing", "url", "uuid", @@ -3059,12 +1543,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - [[package]] name = "stringprep" version = "0.1.5" @@ -3099,15 +1577,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] - [[package]] name = "synstructure" version = "0.13.1" @@ -3119,12 +1588,6 @@ dependencies = [ "syn", ] -[[package]] -name = "tagptr" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" - [[package]] name = "tempfile" version = "3.19.1" @@ -3138,33 +1601,13 @@ dependencies = [ "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", + "thiserror-impl", ] [[package]] @@ -3188,15 +1631,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - [[package]] name = "tinystr" version = "0.7.6" @@ -3251,16 +1685,6 @@ dependencies = [ "syn", ] -[[package]] -name = "tokio-rustls" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" -dependencies = [ - "rustls", - "tokio", -] - [[package]] name = "tokio-stream" version = "0.1.17" @@ -3272,19 +1696,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-util" -version = "0.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - [[package]] name = "toml" version = "0.8.21" @@ -3326,33 +1737,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28391a4201ba7eb1984cfeb6862c0b3ea2cfe23332298967c749dddc0d6cd976" -[[package]] -name = "tower" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" -dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - [[package]] name = "tracing" version = "0.1.41" @@ -3403,30 +1787,14 @@ version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ - "matchers", "nu-ansi-term", - "once_cell", - "regex", "sharded-slab", "smallvec", "thread_local", - "tracing", "tracing-core", "tracing-log", ] -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "typeid" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" - [[package]] name = "typenum" version = "1.18.0" @@ -3466,18 +1834,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - [[package]] name = "url" version = "2.5.4" @@ -3512,11 +1868,6 @@ name = "uuid" version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3758f5e68192bb96cc8f9b7e2c2cfdabb435499a28499a42f8f984092adad4b" -dependencies = [ - "getrandom 0.2.16", - "md-5", - "serde", -] [[package]] name = "valuable" @@ -3536,15 +1887,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3574,7 +1916,6 @@ checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", - "rustversion", "wasm-bindgen-macro", ] @@ -3592,19 +1933,6 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - [[package]] name = "wasm-bindgen-macro" version = "0.2.100" @@ -3637,16 +1965,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 = "web-time" version = "1.1.0" @@ -3657,24 +1975,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-roots" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" -dependencies = [ - "webpki-roots 1.0.0", -] - -[[package]] -name = "webpki-roots" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "whoami" version = "1.6.0" @@ -3707,105 +2007,6 @@ 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", - "windows-targets 0.52.6", -] - -[[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 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", -] - -[[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", -] - -[[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", -] - -[[package]] -name = "windows-link" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" - -[[package]] -name = "windows-registry" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" -dependencies = [ - "windows-result 0.3.2", - "windows-strings 0.3.1", - "windows-targets 0.53.0", -] - -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-result" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result 0.2.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-strings" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-sys" version = "0.48.0" @@ -3857,29 +2058,13 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 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-targets" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" -dependencies = [ - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", -] - [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -3892,12 +2077,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -3910,12 +2089,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -3928,24 +2101,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - [[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_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -3958,12 +2119,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -3976,12 +2131,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -3994,12 +2143,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -4012,12 +2155,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - [[package]] name = "winnow" version = "0.7.7" @@ -4140,9 +2277,3 @@ dependencies = [ "quote", "syn", ] - -[[package]] -name = "zlib-rs" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "868b928d7949e09af2f6086dfc1e01936064cc7a819253bce650d4e2a2d63ba8" diff --git a/Cargo.toml b/Cargo.toml index be27adf..a39dfc2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,14 +19,9 @@ indicatif = { version = "0.17" } futures-util = "0.3" anyhow = "1.0.98" clap = { version = "4.5.37", features = ["derive"] } -azalea-protocol = { version = "0.12.0", optional = true } -uuid = { version = "1.12.1", optional = true } [profile.release] strip = true lto = "fat" opt-level = 3 -codegen-units = 1 - -[features] -warner = ["dep:azalea-protocol", "dep:uuid"] \ No newline at end of file +codegen-units = 1 \ No newline at end of file diff --git a/src/config.rs b/src/config.rs index 401f600..926ef47 100644 --- a/src/config.rs +++ b/src/config.rs @@ -4,15 +4,15 @@ use std::fs::File; use std::io::{ErrorKind, Read}; use tracing::error; -#[derive(Deserialize)] +#[derive(Deserialize, Debug)] pub struct Config { pub database: Database, pub player_tracking: PlayerTracking, - pub scanner: Scanner, + pub scanner: ScannerConfig, pub masscan: Masscan, } -#[derive(Deserialize)] +#[derive(Deserialize, Debug)] pub struct Database { pub host: String, pub port: u16, @@ -21,38 +21,55 @@ pub struct Database { pub password: String, } -#[derive(Deserialize)] +#[derive(Deserialize, Debug)] pub struct PlayerTracking { pub enabled: bool, pub players: Vec, } -#[derive(Deserialize)] -pub struct Scanner { +#[derive(Deserialize, Debug)] +pub struct ScannerConfig { pub repeat: bool, pub scan_delay: u64, pub port_range_start: u16, pub port_range_end: u16, } -#[derive(Deserialize)] +#[derive(Deserialize, Debug)] pub struct Masscan { pub config_file: String, pub output_file: String, } -impl Default for Scanner { +impl Default for Config { fn default() -> Self { - Self { - repeat: true, - scan_delay: 60, - port_range_start: 25565, - port_range_end: 25565, + Config { + database: Database { + host: "localhost".to_string(), + port: 5432, + table: "postgres".to_string(), + user: "postgres".to_string(), + password: "password".to_string(), + }, + player_tracking: PlayerTracking { + enabled: false, + players: vec![], + }, + scanner: ScannerConfig { + repeat: true, + scan_delay: 60, + port_range_start: 25565, + port_range_end: 25565, + }, + masscan: Masscan { + config_file: "masscan.conf".to_string(), + output_file: "servers.json".to_string(), + }, } } } -impl Scanner { +impl ScannerConfig { pub fn total_ports(&self) -> u16 { let start = self.port_range_start; let end = self.port_range_end; diff --git a/src/database.rs b/src/database.rs index 5862eb5..0e63a2b 100644 --- a/src/database.rs +++ b/src/database.rs @@ -1,5 +1,6 @@ use crate::response::Server; use crate::utils; +use futures_util::stream::BoxStream; use sqlx::postgres::PgRow; use sqlx::types::ipnet::IpNet; use sqlx::types::Uuid; @@ -8,11 +9,10 @@ use std::str::FromStr; use std::time::{SystemTime, UNIX_EPOCH}; use tracing::info; -pub async fn fetch_servers(pool: &Pool) -> Vec { - sqlx::query("SELECT address FROM servers ORDER BY last_seen ASC") - .fetch_all(pool) - .await - .expect("failed to fetch servers from database") +pub async fn fetch_servers(pool: &Pool) -> BoxStream> { + sqlx::query("SELECT address FROM servers ORDER BY last_seen ASC").fetch(pool) + // .await + // .expect("failed to fetch servers from database") } pub async fn update( diff --git a/src/main.rs b/src/main.rs index 38a88e1..c8cf8d5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,27 +4,21 @@ mod config; mod database; mod masscan; mod ping; +mod rescan_servers; mod response; -mod scan; +mod scanner; mod utils; -mod warner; +use crate::scanner::Scanner; use clap::Parser; use config::load_config; -use indicatif::ProgressStyle; +use scanner::Mode; use sqlx::postgres::{PgConnectOptions, PgPoolOptions}; use sqlx::ConnectOptions; use std::time::Duration; use tracing::log::LevelFilter; use tracing::{error, info}; -#[derive(clap::ValueEnum, Clone, Debug)] -enum Mode { - // TODO! Alternate mode: Run masscan, then rescan - Discovery, - Rescanner, -} - #[derive(Parser, Debug)] #[clap(about = "Scans the internet for minecraft servers and indexes them")] #[clap(rename_all = "kebab-case")] @@ -55,6 +49,15 @@ async fn main() { info!("Using config file: {}", arguments.config_file); + let database_url = format!( + "postgresql://{}:{}@{}:{}/{}", + config.database.user, + config.database.password, + config.database.host, + config.database.port, + config.database.table + ); + let options = PgConnectOptions::new() .username(&config.database.user) .password(&config.database.password) @@ -64,22 +67,13 @@ async fn main() { // Turn off slow statement logging, this clogs the console .log_slow_statements(LevelFilter::Off, Duration::from_secs(5)); - let pool = match PgPoolOptions::new().connect_with(options).await { - Ok(pool) => pool, - Err(e) => { - error!("Failed to connect to database: {e}"); - std::process::exit(1); - } - }; + let pool = PgPoolOptions::new().connect_with(options).await.ok(); - let style = ProgressStyle::with_template( - "[{elapsed}] [{bar:40.white/blue}] {pos:>7}/{len:7} ETA {eta}", - ) - .unwrap() - .progress_chars("=>-"); - - match arguments.mode { - Mode::Discovery => masscan::start(pool, config, style).await, - Mode::Rescanner => scan::rescan_servers(pool, config, style).await, - } + Scanner::new() + .config(config) + .mode(arguments.mode) + .pool(pool) + .build() + .start() + .await; } diff --git a/src/masscan.rs b/src/masscan.rs index 1fd99d4..f26b93d 100644 --- a/src/masscan.rs +++ b/src/masscan.rs @@ -1,110 +1,46 @@ -use crate::config::Config; -use crate::utils; -use crate::utils::handle_scan_results; -use futures_util::future::join_all; -use indicatif::{ProgressBar, ProgressStyle}; -use serde::Deserialize; -use sqlx::{Pool, Postgres}; -use std::process::Command; -use std::sync::Arc; +use crate::scanner::Scanner; +use std::fs::File; +use std::io::BufRead; use std::time::Duration; -use tokio::task; -use tracing::{debug, error, info, warn}; +use tokio::process::Command; +use tracing::{info, warn}; -#[derive(Deserialize)] -pub struct Masscan { - pub ip: String, - pub ports: Vec, -} +pub async fn start(scanner: Scanner) { + let masscan_config = &scanner.config.masscan.config_file; + let masscan_output = &scanner.config.masscan.output_file; -#[derive(Deserialize)] -pub struct Port { - port: u16, -} - -pub fn start_masscan(masscan_config: &str) { - info!("Starting masscan..."); - if cfg!(target_os = "windows") { - Command::new("cmd.exe") - .args(["masscan", "-c", masscan_config]) - .spawn() - .expect("failed to execute process") - } else { - // TODO: Find a safer way to do sudo - Command::new("sudo") - .args(["masscan", "-c", masscan_config]) - .spawn() - .expect("failed to execute process") - } - .wait() - .expect("failed to wait on child"); - - info!("Masscan completed"); -} - -// TODO: There seems to be a memory allocation crash that I've -// Narrowed down to here, will need to rewrite this at some point -pub fn parse_output(masscan_output: &str) -> anyhow::Result> { - let file = std::fs::read_to_string(&masscan_output)?; - let output = serde_json::from_str::>(&file)?; - - Ok(output - .into_iter() - .flat_map(|entry| { - entry - .ports - .into_iter() - .map(move |p| (entry.ip.clone(), p.port)) - }) - .collect()) -} - -pub async fn start(pool: Pool, config: Config, style: ProgressStyle) { - let masscan_config = config.masscan.config_file.as_str(); - let masscan_output = config.masscan.output_file.as_str(); - - if !config.scanner.repeat { + if !scanner.config.scanner.repeat { warn!("Repeat is not enabled in config file! Will only scan once!"); } loop { - start_masscan(masscan_config); + let stdout = File::create(masscan_output).unwrap(); - let servers = match parse_output(masscan_output) { - Ok(servers) => servers, - Err(e) => { - error!("Failed to parse masscan output: {e:?}"); - std::process::exit(1); - } - }; + Command::new("sudo") + .args(["masscan", "-c", masscan_config]) + .stdout(stdout.try_clone().unwrap()) + .spawn() + .unwrap() + .wait() + .await + .unwrap(); - info!("{} servers found", servers.len()); - - let progress_bar = - Arc::new(ProgressBar::new(servers.len() as u64).with_style(style.clone())); - - let mut handles = vec![]; - - servers.into_iter().for_each(|(ip, port)| { - handles.push(task::spawn(utils::run((ip, port), progress_bar.clone()))); - }); - - debug!("Joining {} servers", handles.len()); - handle_scan_results(join_all(handles).await, &pool, style.clone()).await; + let reader = std::io::BufReader::new(&stdout).lines(); + Scanner::scan_servers_from_iterator(reader); // Quit if only one scan is requested in config - if !config.scanner.repeat { + if !scanner.config.scanner.repeat { info!("Exiting"); std::process::exit(0); } // Wait rescan delay before starting a new scan - if config.scanner.scan_delay > 0 { + if scanner.config.scanner.scan_delay > 0 { info!( "Waiting {} seconds before starting another scan", - config.scanner.scan_delay + scanner.config.scanner.scan_delay ); - tokio::time::sleep(Duration::from_secs(config.scanner.scan_delay)).await; + tokio::time::sleep(Duration::from_secs(scanner.config.scanner.scan_delay)).await; } } } diff --git a/src/rescan_servers.rs b/src/rescan_servers.rs new file mode 100644 index 0000000..e40f953 --- /dev/null +++ b/src/rescan_servers.rs @@ -0,0 +1,45 @@ +use crate::database; +use crate::scanner::Scanner; +use futures_util::StreamExt; +use sqlx::Row; +use std::time::Duration; +use tracing::{info, warn}; + +pub async fn rescan_servers(scanner: Scanner) { + let port_start = scanner.config.scanner.port_range_start; + let port_end = scanner.config.scanner.port_range_end; + let total_ports = scanner.config.scanner.total_ports(); + + if total_ports > 10 { + warn!("Large amount of ports! Scans will take exponentially longer for each port to scan!"); + } + + if !scanner.config.scanner.repeat { + warn!("Repeat is not enabled in config file! Will only scan once!"); + } + + info!("Scanning port range {port_start} - {port_end} ({total_ports} port(s) per host)"); + + loop { + let mut servers = database::fetch_servers(&scanner.pool).await; + // Count of all results will always be the first row + let count = servers.next().await.unwrap().unwrap().get::(0); + + Scanner::scan_servers_from_stream(servers); + + // Quit if only one scan is requested in config + if !scanner.config.scanner.repeat { + info!("Exiting"); + std::process::exit(0); + } + + // Wait rescan delay before starting a new scan + if scanner.config.scanner.scan_delay > 0 { + info!( + "Waiting {} seconds before starting another scan...", + scanner.config.scanner.scan_delay + ); + tokio::time::sleep(Duration::from_secs(scanner.config.scanner.scan_delay)).await; + } + } +} diff --git a/src/scan.rs b/src/scan.rs deleted file mode 100644 index 023beef..0000000 --- a/src/scan.rs +++ /dev/null @@ -1,75 +0,0 @@ -use crate::config::Config; -use crate::utils::handle_scan_results; -use crate::{database, utils}; -use futures_util::future::join_all; -use indicatif::{ProgressBar, ProgressStyle}; -use sqlx::types::ipnet::IpNet; -use sqlx::{Pool, Postgres, Row}; -use std::sync::Arc; -use std::time::{Duration, SystemTime, UNIX_EPOCH}; -use tokio::task; -use tracing::{debug, info, warn}; - -pub async fn rescan_servers(pool: Pool, config: Config, style: ProgressStyle) { - let port_start = config.scanner.port_range_start; - let port_end = config.scanner.port_range_end; - let total_ports = config.scanner.total_ports(); - - if total_ports > 10 { - warn!("Large amount of ports! Scans will take exponentially longer for each port to scan!"); - } - - if !config.scanner.repeat { - warn!("Repeat is not enabled in config file! Will only scan once!"); - } - - info!("Scanning port range {port_start} - {port_end} ({total_ports} port(s) per host)"); - - loop { - let servers = database::fetch_servers(&pool).await; - - let progress_bar = - Arc::new(ProgressBar::new(servers.len() as u64).with_style(style.clone())); - let mut handles = vec![]; - let scan_start = SystemTime::now() - .duration_since(UNIX_EPOCH) - .expect("system time is before the unix epoch") - .as_secs(); - - for row in servers { - let address = row.get::(0).addr().to_string(); - - (port_start..=port_end).into_iter().for_each(|port| { - handles.push(task::spawn(utils::run( - (address.clone(), port), - progress_bar.clone(), - ))); - }); - } - - debug!("Joining {} servers", handles.len()); - handle_scan_results(join_all(handles).await, &pool, style.clone()).await; - - let scan_end = SystemTime::now() - .duration_since(UNIX_EPOCH) - .expect("system time is before the unix epoch") - .as_secs(); - - info!("Scan took {} seconds", scan_end - scan_start); - - // Quit if only one scan is requested in config - if !config.scanner.repeat { - info!("Exiting"); - std::process::exit(0); - } - - // Wait rescan delay before starting a new scan - if config.scanner.scan_delay > 0 { - info!( - "Waiting {} seconds before starting another scan...", - config.scanner.scan_delay - ); - tokio::time::sleep(Duration::from_secs(config.scanner.scan_delay)).await; - } - } -} diff --git a/src/scanner.rs b/src/scanner.rs new file mode 100644 index 0000000..81bb378 --- /dev/null +++ b/src/scanner.rs @@ -0,0 +1,77 @@ +use crate::config::Config; +use crate::{masscan, rescan_servers}; +use futures_util::Stream; +use sqlx::{Pool, Postgres}; +use std::fmt::Debug; +use tracing::error; + +#[derive(clap::ValueEnum, Clone, Debug, Default)] +pub enum Mode { + #[default] + Discovery, + Rescanner, +} + +#[derive(Debug)] +pub struct Scanner { + pub config: Config, + pub mode: Mode, + pub pool: Pool, +} + +impl Scanner { + pub fn new() -> ScanBuilder { + ScanBuilder::default() + } + + pub async fn start(self) { + match self.mode { + Mode::Discovery => masscan::start(self).await, + Mode::Rescanner => rescan_servers::rescan_servers(self).await, + } + } + + pub fn scan_servers_from_stream(_servers: T) {} + + pub fn scan_servers_from_iterator(_servers: T) {} +} + +#[derive(Debug, Default)] +pub struct ScanBuilder { + config: Config, + mode: Mode, + pool: Option>, +} + +impl ScanBuilder { + pub fn config(mut self, config: Config) -> ScanBuilder { + self.config = config; + self + } + + pub fn pool(mut self, pool: Option>) -> ScanBuilder { + self.pool = pool; + self + } + + pub fn mode(mut self, mode: Mode) -> ScanBuilder { + self.mode = mode; + self + } + + pub fn build(self) -> Scanner { + Scanner { + config: self.config, + mode: self.mode, + pool: { + match self.pool { + Some(pool) => pool, + None => { + error!("Failed to connect to database!"); + std::process::exit(1); + } + } + }, + } + } +} diff --git a/src/utils.rs b/src/utils.rs index a2be30e..a3469a8 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,5 +1,5 @@ +use crate::database; use crate::response::Server; -use crate::{database, ping}; use indicatif::{ProgressBar, ProgressIterator, ProgressStyle}; use sqlx::{Pool, Postgres}; use std::sync::Arc; @@ -191,31 +191,3 @@ pub struct CompletedServer { pub port: u16, pub server: Server, } - -pub async fn run( - host: (String, u16), - progress_bar: Arc, -) -> Result { - async fn run_inner(host: (&str, u16)) -> Result { - let permit = PERMITS.acquire().await.unwrap(); - let results = tokio::time::timeout(TIMEOUT_SECS, ping::ping_server(host)).await??; - drop(permit); - - let response = serde_json::from_str(&results)?; - - Ok(CompletedServer { - ip: host.0.to_string(), - port: host.1, - server: response, - }) - } - - let completed_server = run_inner((host.0.as_str(), host.1)).await; - - if let Err(e) = &completed_server { - debug!("{} threw an error: {}", host.0, e) - } - - progress_bar.inc(1); - completed_server -} diff --git a/src/warner.rs b/src/warner.rs deleted file mode 100644 index 5863a74..0000000 --- a/src/warner.rs +++ /dev/null @@ -1,35 +0,0 @@ -#[cfg(feature = "warner")] -use azalea_protocol::{ - connect::Connection, - packets::{ - handshake::ServerboundIntention, login::ServerboundHello, ClientIntention, PROTOCOL_VERSION, - }, - resolver, -}; - -#[cfg(feature = "warner")] -pub async fn join_server(address: &str) -> anyhow::Result<()> { - let address = resolver::resolve_address(&address.try_into().unwrap()).await?; - let mut conn = Connection::new(&address).await?; - - // handshake - conn.write(ServerboundIntention { - // Azalea only supports the latest version of minecraft - protocol_version: PROTOCOL_VERSION, - hostname: address.ip().to_string(), - port: address.port(), - intention: ClientIntention::Login, - }) - .await?; - - let mut conn = conn.login(); - - // login - conn.write(ServerboundHello { - name: String::from("ServerSeekerV2"), - profile_id: uuid::Uuid::nil(), - }) - .await?; - - Ok(()) -}