diff --git a/Cargo.lock b/Cargo.lock index aae2b842..19563f8c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -369,17 +369,17 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "attohttpc" -version = "0.26.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f77d243921b0979fbbd728dd2d5162e68ac8252976797c24eb5b3a6af9090dc" +checksum = "9a13149d0cf3f7f9b9261fad4ec63b2efbf9a80665f52def86282d26255e6331" dependencies = [ - "http 0.2.12", + "http 1.1.0", "log", - "rustls 0.21.12", + "rustls 0.22.4", "serde", "serde_json", "url", - "webpki-roots 0.25.4", + "webpki-roots 0.26.3", ] [[package]] @@ -390,14 +390,14 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "aws-creds" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390ad3b77f3e21e01a4a0355865853b681daf1988510b0b15e31c0c4ae7eb0f6" +checksum = "7f84143206b9c72b3c5cb65415de60c7539c79cd1559290fddec657939131be0" dependencies = [ "attohttpc", "home", "log", - "quick-xml 0.30.0", + "quick-xml 0.32.0", "rust-ini", "serde", "thiserror", @@ -1764,6 +1764,24 @@ dependencies = [ "spki", ] +[[package]] +name = "ece" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2ea1d2f2cc974957a4e2575d8e5bb494549bab66338d6320c2789abcfff5746" +dependencies = [ + "base64 0.21.7", + "byteorder", + "hex", + "hkdf", + "lazy_static", + "once_cell", + "openssl", + "serde", + "sha2 0.10.8", + "thiserror", +] + [[package]] name = "ed25519" version = "2.2.3" @@ -1941,12 +1959,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95765f67b4b18863968b4a1bd5bb576f732b29a4a28c7cd84c09fa3e2875f33c" -[[package]] -name = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" - [[package]] name = "ff" version = "0.13.0" @@ -2357,12 +2369,6 @@ dependencies = [ "ahash 0.7.8", ] -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" - [[package]] name = "hashbrown" version = "0.14.5" @@ -2702,19 +2708,6 @@ dependencies = [ "tokio-io-timeout", ] -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper 0.14.29", - "native-tls", - "tokio", - "tokio-native-tls", -] - [[package]] name = "hyper-util" version = "0.1.5" @@ -3836,23 +3829,6 @@ dependencies = [ "zstd", ] -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - [[package]] name = "new_debug_unreachable" version = "1.0.6" @@ -4192,12 +4168,12 @@ dependencies = [ [[package]] name = "ordered-multimap" -version = "0.6.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ed8acf08e98e744e5384c8bc63ceb0364e68a6854187221c18df61c4797690e" +checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" dependencies = [ "dlv-list", - "hashbrown 0.13.2", + "hashbrown 0.14.5", ] [[package]] @@ -4667,16 +4643,6 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" -[[package]] -name = "quick-xml" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "quick-xml" version = "0.31.0" @@ -4693,6 +4659,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" dependencies = [ "memchr", + "serde", ] [[package]] @@ -5285,24 +5252,25 @@ dependencies = [ [[package]] name = "rust-ini" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e2a3bcec1f113553ef1c88aae6c020a369d03d55b58de9869a0908930385091" +checksum = "0d625ed57d8f49af6cfa514c42e1a71fadcff60eb0b1c517ff82fe41aa025b41" dependencies = [ "cfg-if", "ordered-multimap", + "trim-in-place", ] [[package]] name = "rust-s3" -version = "0.34.0" +version = "0.35.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6679da8efaf4c6f0c161de0961dfe95fb6e9049c398d6fbdada2639f053aedb" +checksum = "ec48e3a4e58d3bc73949db3dda917e8fb0d31d635fbe496084847b8d45049787" dependencies = [ "async-trait", "aws-creds", "aws-region", - "base64 0.21.7", + "base64 0.22.1", "bytes", "cfg-if", "futures", @@ -5310,13 +5278,14 @@ dependencies = [ "hmac 0.12.1", "http 0.2.12", "hyper 0.14.29", - "hyper-tls", + "hyper-rustls 0.24.2", "log", "maybe-async", "md5", - "native-tls", "percent-encoding", - "quick-xml 0.30.0", + "quick-xml 0.32.0", + "rustls 0.21.12", + "rustls-native-certs 0.6.3", "serde", "serde_derive", "serde_json", @@ -5324,7 +5293,7 @@ dependencies = [ "thiserror", "time", "tokio", - "tokio-native-tls", + "tokio-rustls 0.24.1", "tokio-stream", "url", ] @@ -6328,18 +6297,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" -[[package]] -name = "tempfile" -version = "3.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" -dependencies = [ - "cfg-if", - "fastrand", - "rustix", - "windows-sys 0.52.0", -] - [[package]] name = "term" version = "0.7.0" @@ -6373,6 +6330,7 @@ dependencies = [ "csv", "dashmap", "directory", + "ece", "flate2", "futures", "http-body-util", @@ -6556,16 +6514,6 @@ dependencies = [ "syn 2.0.67", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - [[package]] name = "tokio-postgres" version = "0.7.10" @@ -6842,6 +6790,12 @@ dependencies = [ "tracing-log", ] +[[package]] +name = "trim-in-place" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "343e926fc669bc8cde4fa3129ab681c63671bae288b1f1081ceee6d9d37904fc" + [[package]] name = "try-lock" version = "0.2.5" diff --git a/crates/store/Cargo.toml b/crates/store/Cargo.toml index dc8c5757..ac0a3d81 100644 --- a/crates/store/Cargo.toml +++ b/crates/store/Cargo.toml @@ -10,7 +10,7 @@ nlp = { path = "../nlp" } rocksdb = { version = "0.22", optional = true, features = ["multi-threaded-cf"] } foundationdb = { version = "0.9.0", features = ["embedded-fdb-include", "fdb-7_1"], optional = true } rusqlite = { version = "0.31.0", features = ["bundled"], optional = true } -rust-s3 = { version = "0.34.0", default-features = false, features = ["tokio-rustls-tls", "no-verify-ssl"], optional = true } +rust-s3 = { version = "=0.35.0-alpha.2", default-features = false, features = ["tokio-rustls-tls", "no-verify-ssl"], optional = true } tokio = { version = "1.23", features = ["sync", "fs", "io-util"] } r2d2 = { version = "0.8.10", optional = true } futures = { version = "0.3", optional = true } diff --git a/pepe.txt b/pepe.txt deleted file mode 100644 index f660e159..00000000 --- a/pepe.txt +++ /dev/null @@ -1,2257 +0,0 @@ -common v0.8.2 (/Users/me/code/mail-server/crates/common) -├── ahash v0.8.11 -│ ├── cfg-if v1.0.0 -│ ├── getrandom v0.2.15 -│ │ ├── cfg-if v1.0.0 -│ │ └── libc v0.2.155 -│ ├── once_cell v1.19.0 -│ ├── serde v1.0.203 -│ │ └── serde_derive v1.0.203 (proc-macro) -│ │ ├── proc-macro2 v1.0.85 -│ │ │ └── unicode-ident v1.0.12 -│ │ ├── quote v1.0.36 -│ │ │ └── proc-macro2 v1.0.85 (*) -│ │ └── syn v2.0.66 -│ │ ├── proc-macro2 v1.0.85 (*) -│ │ ├── quote v1.0.36 (*) -│ │ └── unicode-ident v1.0.12 -│ └── zerocopy v0.7.34 -│ [build-dependencies] -│ └── version_check v0.9.4 -├── arc-swap v1.7.1 -├── base64 v0.22.1 -├── bincode v1.3.3 -│ └── serde v1.0.203 (*) -├── chrono v0.4.38 -│ ├── iana-time-zone v0.1.60 -│ │ └── core-foundation-sys v0.8.6 -│ ├── num-traits v0.2.19 -│ │ └── libm v0.2.8 -│ │ [build-dependencies] -│ │ └── autocfg v1.3.0 -│ └── serde v1.0.203 (*) -├── decancer v3.2.2 -│ ├── lazy_static v1.4.0 -│ │ └── spin v0.5.2 -│ ├── paste v1.0.15 (proc-macro) -│ └── regex v1.10.5 -│ ├── aho-corasick v1.1.3 -│ │ └── memchr v2.7.4 -│ ├── memchr v2.7.4 -│ ├── regex-automata v0.4.7 -│ │ ├── aho-corasick v1.1.3 (*) -│ │ ├── memchr v2.7.4 -│ │ └── regex-syntax v0.8.4 -│ └── regex-syntax v0.8.4 -├── directory v0.8.2 (/Users/me/code/mail-server/crates/directory) -│ ├── ahash v0.8.11 (*) -│ ├── argon2 v0.5.3 -│ │ ├── base64ct v1.6.0 -│ │ ├── blake2 v0.10.6 -│ │ │ └── digest v0.10.7 -│ │ │ ├── block-buffer v0.10.4 -│ │ │ │ └── generic-array v0.14.7 -│ │ │ │ ├── typenum v1.17.0 -│ │ │ │ └── zeroize v1.8.1 -│ │ │ │ └── zeroize_derive v1.4.2 (proc-macro) -│ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ [build-dependencies] -│ │ │ │ └── version_check v0.9.4 -│ │ │ ├── const-oid v0.9.6 -│ │ │ ├── crypto-common v0.1.6 -│ │ │ │ ├── generic-array v0.14.7 (*) -│ │ │ │ ├── rand_core v0.6.4 -│ │ │ │ │ └── getrandom v0.2.15 (*) -│ │ │ │ └── typenum v1.17.0 -│ │ │ └── subtle v2.5.0 -│ │ └── password-hash v0.5.0 -│ │ ├── base64ct v1.6.0 -│ │ ├── rand_core v0.6.4 (*) -│ │ └── subtle v2.5.0 -│ ├── async-trait v0.1.80 (proc-macro) -│ │ ├── proc-macro2 v1.0.85 (*) -│ │ ├── quote v1.0.36 (*) -│ │ └── syn v2.0.66 (*) -│ ├── deadpool v0.10.0 -│ │ ├── async-trait v0.1.80 (proc-macro) (*) -│ │ ├── deadpool-runtime v0.1.4 -│ │ │ └── tokio v1.38.0 -│ │ │ ├── bytes v1.6.0 -│ │ │ ├── libc v0.2.155 -│ │ │ ├── mio v0.8.11 -│ │ │ │ ├── libc v0.2.155 -│ │ │ │ └── log v0.4.21 -│ │ │ ├── num_cpus v1.16.0 -│ │ │ │ └── libc v0.2.155 -│ │ │ ├── parking_lot v0.12.3 -│ │ │ │ ├── lock_api v0.4.12 -│ │ │ │ │ └── scopeguard v1.2.0 -│ │ │ │ │ [build-dependencies] -│ │ │ │ │ └── autocfg v1.3.0 -│ │ │ │ └── parking_lot_core v0.9.10 -│ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ ├── libc v0.2.155 -│ │ │ │ └── smallvec v1.13.2 -│ │ │ ├── pin-project-lite v0.2.14 -│ │ │ ├── signal-hook-registry v1.4.2 -│ │ │ │ └── libc v0.2.155 -│ │ │ ├── socket2 v0.5.7 -│ │ │ │ └── libc v0.2.155 -│ │ │ └── tokio-macros v2.3.0 (proc-macro) -│ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ ├── quote v1.0.36 (*) -│ │ │ └── syn v2.0.66 (*) -│ │ ├── num_cpus v1.16.0 (*) -│ │ └── tokio v1.38.0 (*) -│ ├── futures v0.3.30 -│ │ ├── futures-channel v0.3.30 -│ │ │ ├── futures-core v0.3.30 -│ │ │ └── futures-sink v0.3.30 -│ │ ├── futures-core v0.3.30 -│ │ ├── futures-executor v0.3.30 -│ │ │ ├── futures-core v0.3.30 -│ │ │ ├── futures-task v0.3.30 -│ │ │ └── futures-util v0.3.30 -│ │ │ ├── futures-channel v0.3.30 (*) -│ │ │ ├── futures-core v0.3.30 -│ │ │ ├── futures-io v0.3.30 -│ │ │ ├── futures-macro v0.3.30 (proc-macro) -│ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ └── syn v2.0.66 (*) -│ │ │ ├── futures-sink v0.3.30 -│ │ │ ├── futures-task v0.3.30 -│ │ │ ├── memchr v2.7.4 -│ │ │ ├── pin-project-lite v0.2.14 -│ │ │ ├── pin-utils v0.1.0 -│ │ │ └── slab v0.4.9 -│ │ │ [build-dependencies] -│ │ │ └── autocfg v1.3.0 -│ │ ├── futures-io v0.3.30 -│ │ ├── futures-sink v0.3.30 -│ │ ├── futures-task v0.3.30 -│ │ └── futures-util v0.3.30 (*) -│ ├── jmap_proto v0.1.0 (/Users/me/code/mail-server/crates/jmap-proto) -│ │ ├── ahash v0.8.11 (*) -│ │ ├── fast-float v0.2.0 -│ │ ├── mail-parser v0.9.3 -│ │ │ ├── encoding_rs v0.8.34 -│ │ │ │ └── cfg-if v1.0.0 -│ │ │ └── serde v1.0.203 (*) -│ │ ├── serde v1.0.203 (*) -│ │ ├── serde_json v1.0.117 -│ │ │ ├── itoa v1.0.11 -│ │ │ ├── ryu v1.0.18 -│ │ │ └── serde v1.0.203 (*) -│ │ ├── store v0.8.2 (/Users/me/code/mail-server/crates/store) -│ │ │ ├── ahash v0.8.11 (*) -│ │ │ ├── arc-swap v1.7.1 -│ │ │ ├── async-trait v0.1.80 (proc-macro) (*) -│ │ │ ├── bincode v1.3.3 (*) -│ │ │ ├── bitpacking v0.9.2 -│ │ │ │ └── crunchy v0.2.2 -│ │ │ ├── blake3 v1.5.1 -│ │ │ │ ├── arrayref v0.3.7 -│ │ │ │ ├── arrayvec v0.7.4 -│ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ └── constant_time_eq v0.3.0 -│ │ │ │ [build-dependencies] -│ │ │ │ └── cc v1.0.99 -│ │ │ │ ├── jobserver v0.1.31 -│ │ │ │ │ └── libc v0.2.155 -│ │ │ │ ├── libc v0.2.155 -│ │ │ │ └── once_cell v1.19.0 -│ │ │ ├── bytes v1.6.0 -│ │ │ ├── deadpool v0.12.1 -│ │ │ │ ├── deadpool-runtime v0.1.4 (*) -│ │ │ │ ├── num_cpus v1.16.0 (*) -│ │ │ │ └── tokio v1.38.0 (*) -│ │ │ ├── deadpool-postgres v0.14.0 -│ │ │ │ ├── async-trait v0.1.80 (proc-macro) (*) -│ │ │ │ ├── deadpool v0.12.1 (*) -│ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ ├── tokio-postgres v0.7.10 -│ │ │ │ │ ├── async-trait v0.1.80 (proc-macro) (*) -│ │ │ │ │ ├── byteorder v1.5.0 -│ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ ├── fallible-iterator v0.2.0 -│ │ │ │ │ ├── futures-channel v0.3.30 (*) -│ │ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ │ ├── log v0.4.21 -│ │ │ │ │ ├── parking_lot v0.12.3 (*) -│ │ │ │ │ ├── percent-encoding v2.3.1 -│ │ │ │ │ ├── phf v0.11.2 -│ │ │ │ │ │ ├── phf_macros v0.11.2 (proc-macro) -│ │ │ │ │ │ │ ├── phf_generator v0.11.2 -│ │ │ │ │ │ │ │ ├── phf_shared v0.11.2 -│ │ │ │ │ │ │ │ │ └── siphasher v0.3.11 -│ │ │ │ │ │ │ │ └── rand v0.8.5 -│ │ │ │ │ │ │ │ └── rand_core v0.6.4 -│ │ │ │ │ │ │ ├── phf_shared v0.11.2 (*) -│ │ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ │ └── phf_shared v0.11.2 -│ │ │ │ │ │ └── siphasher v0.3.11 -│ │ │ │ │ ├── pin-project-lite v0.2.14 -│ │ │ │ │ ├── postgres-protocol v0.6.6 -│ │ │ │ │ │ ├── base64 v0.21.7 -│ │ │ │ │ │ ├── byteorder v1.5.0 -│ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ ├── fallible-iterator v0.2.0 -│ │ │ │ │ │ ├── hmac v0.12.1 -│ │ │ │ │ │ │ └── digest v0.10.7 (*) -│ │ │ │ │ │ ├── md-5 v0.10.6 -│ │ │ │ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ │ │ │ └── digest v0.10.7 (*) -│ │ │ │ │ │ ├── memchr v2.7.4 -│ │ │ │ │ │ ├── rand v0.8.5 -│ │ │ │ │ │ │ ├── libc v0.2.155 -│ │ │ │ │ │ │ ├── rand_chacha v0.3.1 -│ │ │ │ │ │ │ │ ├── ppv-lite86 v0.2.17 -│ │ │ │ │ │ │ │ └── rand_core v0.6.4 (*) -│ │ │ │ │ │ │ └── rand_core v0.6.4 (*) -│ │ │ │ │ │ ├── sha2 v0.10.8 -│ │ │ │ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ │ │ │ ├── cpufeatures v0.2.12 -│ │ │ │ │ │ │ │ └── libc v0.2.155 -│ │ │ │ │ │ │ └── digest v0.10.7 (*) -│ │ │ │ │ │ └── stringprep v0.1.5 -│ │ │ │ │ │ ├── unicode-bidi v0.3.15 -│ │ │ │ │ │ ├── unicode-normalization v0.1.23 -│ │ │ │ │ │ │ └── tinyvec v1.6.0 -│ │ │ │ │ │ │ └── tinyvec_macros v0.1.1 -│ │ │ │ │ │ └── unicode-properties v0.1.1 -│ │ │ │ │ ├── postgres-types v0.2.6 -│ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ ├── fallible-iterator v0.2.0 -│ │ │ │ │ │ └── postgres-protocol v0.6.6 (*) -│ │ │ │ │ ├── rand v0.8.5 (*) -│ │ │ │ │ ├── socket2 v0.5.7 (*) -│ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ ├── tokio-util v0.7.11 -│ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ ├── futures-core v0.3.30 -│ │ │ │ │ │ ├── futures-sink v0.3.30 -│ │ │ │ │ │ ├── pin-project-lite v0.2.14 -│ │ │ │ │ │ └── tokio v1.38.0 (*) -│ │ │ │ │ └── whoami v1.5.1 -│ │ │ │ └── tracing v0.1.40 -│ │ │ │ ├── pin-project-lite v0.2.14 -│ │ │ │ ├── tracing-attributes v0.1.27 (proc-macro) -│ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ └── tracing-core v0.1.32 -│ │ │ │ └── once_cell v1.19.0 -│ │ │ ├── elasticsearch v8.5.0-alpha.1 -│ │ │ │ ├── base64 v0.11.0 -│ │ │ │ ├── bytes v1.6.0 -│ │ │ │ ├── dyn-clone v1.0.17 -│ │ │ │ ├── lazy_static v1.4.0 (*) -│ │ │ │ ├── percent-encoding v2.3.1 -│ │ │ │ ├── reqwest v0.11.27 -│ │ │ │ │ ├── async-compression v0.4.11 -│ │ │ │ │ │ ├── flate2 v1.0.30 -│ │ │ │ │ │ │ ├── crc32fast v1.4.2 -│ │ │ │ │ │ │ │ └── cfg-if v1.0.0 -│ │ │ │ │ │ │ ├── libz-sys v1.1.18 -│ │ │ │ │ │ │ │ [build-dependencies] -│ │ │ │ │ │ │ │ ├── cc v1.0.99 (*) -│ │ │ │ │ │ │ │ ├── pkg-config v0.3.30 -│ │ │ │ │ │ │ │ └── vcpkg v0.2.15 -│ │ │ │ │ │ │ └── miniz_oxide v0.7.4 -│ │ │ │ │ │ │ └── adler v1.0.2 -│ │ │ │ │ │ ├── futures-core v0.3.30 -│ │ │ │ │ │ ├── memchr v2.7.4 -│ │ │ │ │ │ ├── pin-project-lite v0.2.14 -│ │ │ │ │ │ └── tokio v1.38.0 (*) -│ │ │ │ │ ├── base64 v0.21.7 -│ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ ├── encoding_rs v0.8.34 (*) -│ │ │ │ │ ├── futures-core v0.3.30 -│ │ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ │ ├── h2 v0.3.26 -│ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ ├── fnv v1.0.7 -│ │ │ │ │ │ ├── futures-core v0.3.30 -│ │ │ │ │ │ ├── futures-sink v0.3.30 -│ │ │ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ │ │ ├── http v0.2.12 -│ │ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ │ ├── fnv v1.0.7 -│ │ │ │ │ │ │ └── itoa v1.0.11 -│ │ │ │ │ │ ├── indexmap v2.2.6 -│ │ │ │ │ │ │ ├── equivalent v1.0.1 -│ │ │ │ │ │ │ └── hashbrown v0.14.5 -│ │ │ │ │ │ │ ├── ahash v0.8.11 (*) -│ │ │ │ │ │ │ └── allocator-api2 v0.2.18 -│ │ │ │ │ │ ├── slab v0.4.9 (*) -│ │ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ │ ├── tokio-util v0.7.11 (*) -│ │ │ │ │ │ └── tracing v0.1.40 (*) -│ │ │ │ │ ├── http v0.2.12 (*) -│ │ │ │ │ ├── http-body v0.4.6 -│ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ ├── http v0.2.12 (*) -│ │ │ │ │ │ └── pin-project-lite v0.2.14 -│ │ │ │ │ ├── hyper v0.14.29 -│ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ ├── futures-channel v0.3.30 (*) -│ │ │ │ │ │ ├── futures-core v0.3.30 -│ │ │ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ │ │ ├── h2 v0.3.26 (*) -│ │ │ │ │ │ ├── http v0.2.12 (*) -│ │ │ │ │ │ ├── http-body v0.4.6 (*) -│ │ │ │ │ │ ├── httparse v1.9.4 -│ │ │ │ │ │ ├── httpdate v1.0.3 -│ │ │ │ │ │ ├── itoa v1.0.11 -│ │ │ │ │ │ ├── pin-project-lite v0.2.14 -│ │ │ │ │ │ ├── socket2 v0.5.7 (*) -│ │ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ │ ├── tower-service v0.3.2 -│ │ │ │ │ │ ├── tracing v0.1.40 (*) -│ │ │ │ │ │ └── want v0.3.1 -│ │ │ │ │ │ └── try-lock v0.2.5 -│ │ │ │ │ ├── hyper-rustls v0.24.2 -│ │ │ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ │ │ ├── http v0.2.12 (*) -│ │ │ │ │ │ ├── hyper v0.14.29 (*) -│ │ │ │ │ │ ├── rustls v0.21.12 -│ │ │ │ │ │ │ ├── log v0.4.21 -│ │ │ │ │ │ │ ├── ring v0.17.8 -│ │ │ │ │ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ │ │ │ │ ├── getrandom v0.2.15 (*) -│ │ │ │ │ │ │ │ ├── spin v0.9.8 -│ │ │ │ │ │ │ │ └── untrusted v0.9.0 -│ │ │ │ │ │ │ │ [build-dependencies] -│ │ │ │ │ │ │ │ └── cc v1.0.99 (*) -│ │ │ │ │ │ │ ├── rustls-webpki v0.101.7 -│ │ │ │ │ │ │ │ ├── ring v0.17.8 (*) -│ │ │ │ │ │ │ │ └── untrusted v0.9.0 -│ │ │ │ │ │ │ └── sct v0.7.1 -│ │ │ │ │ │ │ ├── ring v0.17.8 (*) -│ │ │ │ │ │ │ └── untrusted v0.9.0 -│ │ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ │ └── tokio-rustls v0.24.1 -│ │ │ │ │ │ ├── rustls v0.21.12 (*) -│ │ │ │ │ │ └── tokio v1.38.0 (*) -│ │ │ │ │ ├── ipnet v2.9.0 -│ │ │ │ │ ├── log v0.4.21 -│ │ │ │ │ ├── mime v0.3.17 -│ │ │ │ │ ├── once_cell v1.19.0 -│ │ │ │ │ ├── percent-encoding v2.3.1 -│ │ │ │ │ ├── pin-project-lite v0.2.14 -│ │ │ │ │ ├── rustls v0.21.12 (*) -│ │ │ │ │ ├── rustls-pemfile v1.0.4 -│ │ │ │ │ │ └── base64 v0.21.7 -│ │ │ │ │ ├── serde v1.0.203 (*) -│ │ │ │ │ ├── serde_json v1.0.117 (*) -│ │ │ │ │ ├── serde_urlencoded v0.7.1 -│ │ │ │ │ │ ├── form_urlencoded v1.2.1 -│ │ │ │ │ │ │ └── percent-encoding v2.3.1 -│ │ │ │ │ │ ├── itoa v1.0.11 -│ │ │ │ │ │ ├── ryu v1.0.18 -│ │ │ │ │ │ └── serde v1.0.203 (*) -│ │ │ │ │ ├── sync_wrapper v0.1.2 -│ │ │ │ │ ├── system-configuration v0.5.1 -│ │ │ │ │ │ ├── bitflags v1.3.2 -│ │ │ │ │ │ ├── core-foundation v0.9.4 -│ │ │ │ │ │ │ ├── core-foundation-sys v0.8.6 -│ │ │ │ │ │ │ └── libc v0.2.155 -│ │ │ │ │ │ └── system-configuration-sys v0.5.0 -│ │ │ │ │ │ ├── core-foundation-sys v0.8.6 -│ │ │ │ │ │ └── libc v0.2.155 -│ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ ├── tokio-rustls v0.24.1 (*) -│ │ │ │ │ ├── tokio-util v0.7.11 (*) -│ │ │ │ │ ├── tower-service v0.3.2 -│ │ │ │ │ ├── url v2.5.2 -│ │ │ │ │ │ ├── form_urlencoded v1.2.1 (*) -│ │ │ │ │ │ ├── idna v0.5.0 -│ │ │ │ │ │ │ ├── unicode-bidi v0.3.15 -│ │ │ │ │ │ │ └── unicode-normalization v0.1.23 (*) -│ │ │ │ │ │ └── percent-encoding v2.3.1 -│ │ │ │ │ └── webpki-roots v0.25.4 -│ │ │ │ ├── serde v1.0.203 (*) -│ │ │ │ ├── serde_json v1.0.117 (*) -│ │ │ │ ├── serde_with v1.14.0 -│ │ │ │ │ ├── serde v1.0.203 (*) -│ │ │ │ │ └── serde_with_macros v1.5.2 (proc-macro) -│ │ │ │ │ ├── darling v0.13.4 -│ │ │ │ │ │ ├── darling_core v0.13.4 -│ │ │ │ │ │ │ ├── fnv v1.0.7 -│ │ │ │ │ │ │ ├── ident_case v1.0.1 -│ │ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ │ ├── strsim v0.10.0 -│ │ │ │ │ │ │ └── syn v1.0.109 -│ │ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ │ └── unicode-ident v1.0.12 -│ │ │ │ │ │ └── darling_macro v0.13.4 (proc-macro) -│ │ │ │ │ │ ├── darling_core v0.13.4 (*) -│ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ └── syn v1.0.109 (*) -│ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ └── syn v1.0.109 (*) -│ │ │ │ ├── url v2.5.2 (*) -│ │ │ │ └── void v1.0.2 -│ │ │ │ [build-dependencies] -│ │ │ │ └── rustc_version v0.2.3 -│ │ │ │ └── semver v0.9.0 -│ │ │ │ └── semver-parser v0.7.0 -│ │ │ ├── farmhash v1.1.5 -│ │ │ ├── flate2 v1.0.30 (*) -│ │ │ ├── futures v0.3.30 (*) -│ │ │ ├── lazy_static v1.4.0 (*) -│ │ │ ├── lru-cache v0.1.2 -│ │ │ │ └── linked-hash-map v0.5.6 -│ │ │ ├── lz4_flex v0.11.3 -│ │ │ ├── mysql_async v0.34.1 -│ │ │ │ ├── bytes v1.6.0 -│ │ │ │ ├── crossbeam v0.8.4 -│ │ │ │ │ ├── crossbeam-channel v0.5.13 -│ │ │ │ │ │ └── crossbeam-utils v0.8.20 -│ │ │ │ │ ├── crossbeam-deque v0.8.5 -│ │ │ │ │ │ ├── crossbeam-epoch v0.9.18 -│ │ │ │ │ │ │ └── crossbeam-utils v0.8.20 -│ │ │ │ │ │ └── crossbeam-utils v0.8.20 -│ │ │ │ │ ├── crossbeam-epoch v0.9.18 (*) -│ │ │ │ │ ├── crossbeam-queue v0.3.11 -│ │ │ │ │ │ └── crossbeam-utils v0.8.20 -│ │ │ │ │ └── crossbeam-utils v0.8.20 -│ │ │ │ ├── flate2 v1.0.30 (*) -│ │ │ │ ├── futures-core v0.3.30 -│ │ │ │ ├── futures-sink v0.3.30 -│ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ ├── keyed_priority_queue v0.4.2 -│ │ │ │ │ └── indexmap v2.2.6 (*) -│ │ │ │ ├── lazy_static v1.4.0 (*) -│ │ │ │ ├── lru v0.12.3 -│ │ │ │ │ └── hashbrown v0.14.5 (*) -│ │ │ │ ├── mio v0.8.11 (*) -│ │ │ │ ├── mysql_common v0.32.4 -│ │ │ │ │ ├── base64 v0.21.7 -│ │ │ │ │ ├── bigdecimal v0.4.5 -│ │ │ │ │ │ ├── libm v0.2.8 -│ │ │ │ │ │ ├── num-bigint v0.4.5 -│ │ │ │ │ │ │ ├── num-integer v0.1.46 -│ │ │ │ │ │ │ │ └── num-traits v0.2.19 (*) -│ │ │ │ │ │ │ └── num-traits v0.2.19 (*) -│ │ │ │ │ │ ├── num-integer v0.1.46 (*) -│ │ │ │ │ │ └── num-traits v0.2.19 (*) -│ │ │ │ │ │ [build-dependencies] -│ │ │ │ │ │ └── autocfg v1.3.0 -│ │ │ │ │ ├── bitflags v2.5.0 -│ │ │ │ │ ├── bitvec v1.0.1 -│ │ │ │ │ │ ├── funty v2.0.0 -│ │ │ │ │ │ ├── radium v0.7.0 -│ │ │ │ │ │ ├── tap v1.0.1 -│ │ │ │ │ │ └── wyz v0.5.1 -│ │ │ │ │ │ └── tap v1.0.1 -│ │ │ │ │ ├── btoi v0.4.3 -│ │ │ │ │ │ └── num-traits v0.2.19 (*) -│ │ │ │ │ ├── byteorder v1.5.0 -│ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ ├── crc32fast v1.4.2 (*) -│ │ │ │ │ ├── flate2 v1.0.30 (*) -│ │ │ │ │ ├── frunk v0.4.2 -│ │ │ │ │ │ ├── frunk_core v0.4.2 -│ │ │ │ │ │ ├── frunk_derives v0.4.2 (proc-macro) -│ │ │ │ │ │ │ ├── frunk_proc_macro_helpers v0.1.2 -│ │ │ │ │ │ │ │ ├── frunk_core v0.4.2 -│ │ │ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ │ └── frunk_proc_macros v0.1.2 (proc-macro) -│ │ │ │ │ │ ├── frunk_core v0.4.2 -│ │ │ │ │ │ ├── frunk_proc_macro_helpers v0.1.2 (*) -│ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ ├── lazy_static v1.4.0 (*) -│ │ │ │ │ ├── mysql-common-derive v0.31.1 (proc-macro) -│ │ │ │ │ │ ├── darling v0.20.9 -│ │ │ │ │ │ │ ├── darling_core v0.20.9 -│ │ │ │ │ │ │ │ ├── fnv v1.0.7 -│ │ │ │ │ │ │ │ ├── ident_case v1.0.1 -│ │ │ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ │ │ ├── strsim v0.11.1 -│ │ │ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ │ │ └── darling_macro v0.20.9 (proc-macro) -│ │ │ │ │ │ │ ├── darling_core v0.20.9 (*) -│ │ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ │ ├── heck v0.4.1 -│ │ │ │ │ │ ├── num-bigint v0.4.5 (*) -│ │ │ │ │ │ ├── proc-macro-crate v3.1.0 -│ │ │ │ │ │ │ └── toml_edit v0.21.1 -│ │ │ │ │ │ │ ├── indexmap v2.2.6 (*) -│ │ │ │ │ │ │ ├── toml_datetime v0.6.6 -│ │ │ │ │ │ │ └── winnow v0.5.40 -│ │ │ │ │ │ ├── proc-macro-error v1.0.4 -│ │ │ │ │ │ │ ├── proc-macro-error-attr v1.0.4 (proc-macro) -│ │ │ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ │ │ └── quote v1.0.36 (*) -│ │ │ │ │ │ │ │ [build-dependencies] -│ │ │ │ │ │ │ │ └── version_check v0.9.4 -│ │ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ │ └── syn v1.0.109 (*) -│ │ │ │ │ │ │ [build-dependencies] -│ │ │ │ │ │ │ └── version_check v0.9.4 -│ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ ├── syn v2.0.66 (*) -│ │ │ │ │ │ ├── termcolor v1.4.1 -│ │ │ │ │ │ └── thiserror v1.0.61 -│ │ │ │ │ │ └── thiserror-impl v1.0.61 (proc-macro) -│ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ ├── num-bigint v0.4.5 (*) -│ │ │ │ │ ├── num-traits v0.2.19 (*) -│ │ │ │ │ ├── rand v0.8.5 (*) -│ │ │ │ │ ├── regex v1.10.5 (*) -│ │ │ │ │ ├── rust_decimal v1.35.0 -│ │ │ │ │ │ ├── arrayvec v0.7.4 -│ │ │ │ │ │ ├── num-traits v0.2.19 (*) -│ │ │ │ │ │ └── serde v1.0.203 (*) -│ │ │ │ │ ├── saturating v0.1.0 -│ │ │ │ │ ├── serde v1.0.203 (*) -│ │ │ │ │ ├── serde_json v1.0.117 (*) -│ │ │ │ │ ├── sha1 v0.10.6 -│ │ │ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ │ │ ├── cpufeatures v0.2.12 (*) -│ │ │ │ │ │ └── digest v0.10.7 (*) -│ │ │ │ │ ├── sha2 v0.10.8 (*) -│ │ │ │ │ ├── smallvec v1.13.2 -│ │ │ │ │ ├── thiserror v1.0.61 (*) -│ │ │ │ │ ├── time v0.3.36 -│ │ │ │ │ │ ├── deranged v0.3.11 -│ │ │ │ │ │ │ ├── powerfmt v0.2.0 -│ │ │ │ │ │ │ └── serde v1.0.203 (*) -│ │ │ │ │ │ ├── itoa v1.0.11 -│ │ │ │ │ │ ├── num-conv v0.1.0 -│ │ │ │ │ │ ├── powerfmt v0.2.0 -│ │ │ │ │ │ ├── serde v1.0.203 (*) -│ │ │ │ │ │ ├── time-core v0.1.2 -│ │ │ │ │ │ └── time-macros v0.2.18 (proc-macro) -│ │ │ │ │ │ ├── num-conv v0.1.0 -│ │ │ │ │ │ └── time-core v0.1.2 -│ │ │ │ │ ├── uuid v1.8.0 -│ │ │ │ │ └── zstd v0.13.1 -│ │ │ │ │ └── zstd-safe v7.1.0 -│ │ │ │ │ └── zstd-sys v2.0.11+zstd.1.5.6 -│ │ │ │ │ [build-dependencies] -│ │ │ │ │ ├── cc v1.0.99 (*) -│ │ │ │ │ └── pkg-config v0.3.30 -│ │ │ │ │ [build-dependencies] -│ │ │ │ │ ├── bindgen v0.69.4 -│ │ │ │ │ │ ├── bitflags v2.5.0 -│ │ │ │ │ │ ├── cexpr v0.6.0 -│ │ │ │ │ │ │ └── nom v7.1.3 -│ │ │ │ │ │ │ ├── memchr v2.7.4 -│ │ │ │ │ │ │ └── minimal-lexical v0.2.1 -│ │ │ │ │ │ ├── clang-sys v1.8.1 -│ │ │ │ │ │ │ ├── glob v0.3.1 -│ │ │ │ │ │ │ ├── libc v0.2.155 -│ │ │ │ │ │ │ └── libloading v0.8.3 -│ │ │ │ │ │ │ └── cfg-if v1.0.0 -│ │ │ │ │ │ │ [build-dependencies] -│ │ │ │ │ │ │ └── glob v0.3.1 -│ │ │ │ │ │ ├── itertools v0.12.1 -│ │ │ │ │ │ │ └── either v1.12.0 -│ │ │ │ │ │ ├── lazy_static v1.4.0 -│ │ │ │ │ │ ├── lazycell v1.3.0 -│ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ ├── regex v1.10.5 -│ │ │ │ │ │ │ ├── regex-automata v0.4.7 -│ │ │ │ │ │ │ │ └── regex-syntax v0.8.4 -│ │ │ │ │ │ │ └── regex-syntax v0.8.4 -│ │ │ │ │ │ ├── rustc-hash v1.1.0 -│ │ │ │ │ │ ├── shlex v1.3.0 -│ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ ├── cc v1.0.99 (*) -│ │ │ │ │ ├── cmake v0.1.50 -│ │ │ │ │ │ └── cc v1.0.99 (*) -│ │ │ │ │ └── subprocess v0.2.9 -│ │ │ │ │ └── libc v0.2.155 -│ │ │ │ ├── once_cell v1.19.0 -│ │ │ │ ├── pem v3.0.4 -│ │ │ │ │ └── base64 v0.22.1 -│ │ │ │ ├── percent-encoding v2.3.1 -│ │ │ │ ├── pin-project v1.1.5 -│ │ │ │ │ └── pin-project-internal v1.1.5 (proc-macro) -│ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ ├── rand v0.8.5 (*) -│ │ │ │ ├── rustls v0.22.4 -│ │ │ │ │ ├── log v0.4.21 -│ │ │ │ │ ├── ring v0.17.8 (*) -│ │ │ │ │ ├── rustls-pki-types v1.7.0 -│ │ │ │ │ ├── rustls-webpki v0.102.4 -│ │ │ │ │ │ ├── ring v0.17.8 (*) -│ │ │ │ │ │ ├── rustls-pki-types v1.7.0 -│ │ │ │ │ │ └── untrusted v0.9.0 -│ │ │ │ │ ├── subtle v2.5.0 -│ │ │ │ │ └── zeroize v1.8.1 (*) -│ │ │ │ ├── rustls-pemfile v2.1.2 -│ │ │ │ │ ├── base64 v0.22.1 -│ │ │ │ │ └── rustls-pki-types v1.7.0 -│ │ │ │ ├── serde v1.0.203 (*) -│ │ │ │ ├── serde_json v1.0.117 (*) -│ │ │ │ ├── socket2 v0.5.7 (*) -│ │ │ │ ├── thiserror v1.0.61 (*) -│ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ ├── tokio-rustls v0.25.0 -│ │ │ │ │ ├── rustls v0.22.4 (*) -│ │ │ │ │ ├── rustls-pki-types v1.7.0 -│ │ │ │ │ └── tokio v1.38.0 (*) -│ │ │ │ ├── tokio-util v0.7.11 (*) -│ │ │ │ ├── twox-hash v1.6.3 -│ │ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ │ ├── rand v0.8.5 (*) -│ │ │ │ │ └── static_assertions v1.1.0 -│ │ │ │ ├── url v2.5.2 (*) -│ │ │ │ ├── webpki v0.22.4 -│ │ │ │ │ ├── ring v0.17.8 (*) -│ │ │ │ │ └── untrusted v0.9.0 -│ │ │ │ └── webpki-roots v0.26.3 -│ │ │ │ └── rustls-pki-types v1.7.0 -│ │ │ ├── nlp v0.8.2 (/Users/me/code/mail-server/crates/nlp) -│ │ │ │ ├── ahash v0.8.11 (*) -│ │ │ │ ├── bincode v1.3.3 (*) -│ │ │ │ ├── farmhash v1.1.5 -│ │ │ │ ├── jieba-rs v0.7.0 -│ │ │ │ │ ├── cedarwood v0.4.6 -│ │ │ │ │ │ └── smallvec v1.13.2 -│ │ │ │ │ ├── derive_builder v0.20.0 -│ │ │ │ │ │ └── derive_builder_macro v0.20.0 (proc-macro) -│ │ │ │ │ │ ├── derive_builder_core v0.20.0 -│ │ │ │ │ │ │ ├── darling v0.20.9 (*) -│ │ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ ├── fxhash v0.2.1 -│ │ │ │ │ │ └── byteorder v1.5.0 -│ │ │ │ │ ├── lazy_static v1.4.0 (*) -│ │ │ │ │ ├── phf v0.11.2 (*) -│ │ │ │ │ └── regex v1.10.5 (*) -│ │ │ │ │ [build-dependencies] -│ │ │ │ │ └── phf_codegen v0.11.2 -│ │ │ │ │ ├── phf_generator v0.11.2 (*) -│ │ │ │ │ └── phf_shared v0.11.2 (*) -│ │ │ │ ├── lazy_static v1.4.0 (*) -│ │ │ │ ├── lru-cache v0.1.2 (*) -│ │ │ │ ├── nohash v0.2.0 -│ │ │ │ ├── parking_lot v0.12.3 (*) -│ │ │ │ ├── phf v0.11.2 (*) -│ │ │ │ ├── rust-stemmers v1.2.0 -│ │ │ │ │ ├── serde v1.0.203 (*) -│ │ │ │ │ └── serde_derive v1.0.203 (proc-macro) (*) -│ │ │ │ ├── serde v1.0.203 (*) -│ │ │ │ ├── siphasher v1.0.1 -│ │ │ │ ├── tinysegmenter v0.1.1 -│ │ │ │ │ ├── lazy_static v1.4.0 (*) -│ │ │ │ │ └── maplit v1.0.2 -│ │ │ │ ├── utils v0.8.2 (/Users/me/code/mail-server/crates/utils) -│ │ │ │ │ ├── ahash v0.8.11 (*) -│ │ │ │ │ ├── base64 v0.22.1 -│ │ │ │ │ ├── blake3 v1.5.1 (*) -│ │ │ │ │ ├── chrono v0.4.38 (*) -│ │ │ │ │ ├── dashmap v5.5.3 -│ │ │ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ │ │ ├── hashbrown v0.14.5 (*) -│ │ │ │ │ │ ├── lock_api v0.4.12 (*) -│ │ │ │ │ │ ├── once_cell v1.19.0 -│ │ │ │ │ │ └── parking_lot_core v0.9.10 (*) -│ │ │ │ │ ├── form_urlencoded v1.2.1 (*) -│ │ │ │ │ ├── futures v0.3.30 (*) -│ │ │ │ │ ├── http-body-util v0.1.2 -│ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ │ │ ├── http v1.1.0 -│ │ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ │ ├── fnv v1.0.7 -│ │ │ │ │ │ │ └── itoa v1.0.11 -│ │ │ │ │ │ ├── http-body v1.0.0 -│ │ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ │ └── http v1.1.0 (*) -│ │ │ │ │ │ └── pin-project-lite v0.2.14 -│ │ │ │ │ ├── lru-cache v0.1.2 (*) -│ │ │ │ │ ├── mail-auth v0.4.3 -│ │ │ │ │ │ ├── ahash v0.8.11 (*) -│ │ │ │ │ │ ├── flate2 v1.0.30 (*) -│ │ │ │ │ │ ├── hickory-resolver v0.24.1 -│ │ │ │ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ │ │ │ ├── hickory-proto v0.24.1 -│ │ │ │ │ │ │ │ ├── async-trait v0.1.80 (proc-macro) (*) -│ │ │ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ │ │ │ │ ├── data-encoding v2.6.0 -│ │ │ │ │ │ │ │ ├── enum-as-inner v0.6.0 (proc-macro) -│ │ │ │ │ │ │ │ │ ├── heck v0.4.1 -│ │ │ │ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ │ │ │ ├── futures-channel v0.3.30 (*) -│ │ │ │ │ │ │ │ ├── futures-io v0.3.30 -│ │ │ │ │ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ │ │ │ │ ├── h2 v0.3.26 (*) -│ │ │ │ │ │ │ │ ├── http v0.2.12 (*) -│ │ │ │ │ │ │ │ ├── idna v0.4.0 -│ │ │ │ │ │ │ │ │ ├── unicode-bidi v0.3.15 -│ │ │ │ │ │ │ │ │ └── unicode-normalization v0.1.23 (*) -│ │ │ │ │ │ │ │ ├── ipnet v2.9.0 -│ │ │ │ │ │ │ │ ├── once_cell v1.19.0 -│ │ │ │ │ │ │ │ ├── rand v0.8.5 (*) -│ │ │ │ │ │ │ │ ├── ring v0.16.20 -│ │ │ │ │ │ │ │ │ └── untrusted v0.7.1 -│ │ │ │ │ │ │ │ │ [build-dependencies] -│ │ │ │ │ │ │ │ │ └── cc v1.0.99 (*) -│ │ │ │ │ │ │ │ ├── rustls v0.21.12 (*) -│ │ │ │ │ │ │ │ ├── rustls-pemfile v1.0.4 (*) -│ │ │ │ │ │ │ │ ├── thiserror v1.0.61 (*) -│ │ │ │ │ │ │ │ ├── tinyvec v1.6.0 (*) -│ │ │ │ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ │ │ │ ├── tokio-rustls v0.24.1 (*) -│ │ │ │ │ │ │ │ ├── tracing v0.1.40 (*) -│ │ │ │ │ │ │ │ └── url v2.5.2 (*) -│ │ │ │ │ │ │ ├── lru-cache v0.1.2 (*) -│ │ │ │ │ │ │ ├── once_cell v1.19.0 -│ │ │ │ │ │ │ ├── parking_lot v0.12.3 (*) -│ │ │ │ │ │ │ ├── rand v0.8.5 (*) -│ │ │ │ │ │ │ ├── resolv-conf v0.7.0 -│ │ │ │ │ │ │ │ ├── hostname v0.3.1 -│ │ │ │ │ │ │ │ │ ├── libc v0.2.155 -│ │ │ │ │ │ │ │ │ └── match_cfg v0.1.0 -│ │ │ │ │ │ │ │ └── quick-error v1.2.3 -│ │ │ │ │ │ │ ├── rustls v0.21.12 (*) -│ │ │ │ │ │ │ ├── smallvec v1.13.2 -│ │ │ │ │ │ │ ├── thiserror v1.0.61 (*) -│ │ │ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ │ │ ├── tokio-rustls v0.24.1 (*) -│ │ │ │ │ │ │ └── tracing v0.1.40 (*) -│ │ │ │ │ │ ├── lru-cache v0.1.2 (*) -│ │ │ │ │ │ ├── mail-builder v0.3.1 -│ │ │ │ │ │ │ └── gethostname v0.4.3 -│ │ │ │ │ │ │ └── libc v0.2.155 -│ │ │ │ │ │ ├── mail-parser v0.9.3 (*) -│ │ │ │ │ │ ├── parking_lot v0.12.3 (*) -│ │ │ │ │ │ ├── quick-xml v0.32.0 -│ │ │ │ │ │ │ └── memchr v2.7.4 -│ │ │ │ │ │ ├── rand v0.8.5 (*) -│ │ │ │ │ │ ├── ring v0.17.8 (*) -│ │ │ │ │ │ ├── rsa v0.9.6 -│ │ │ │ │ │ │ ├── const-oid v0.9.6 -│ │ │ │ │ │ │ ├── digest v0.10.7 (*) -│ │ │ │ │ │ │ ├── num-bigint-dig v0.8.4 -│ │ │ │ │ │ │ │ ├── byteorder v1.5.0 -│ │ │ │ │ │ │ │ ├── lazy_static v1.4.0 (*) -│ │ │ │ │ │ │ │ ├── libm v0.2.8 -│ │ │ │ │ │ │ │ ├── num-integer v0.1.46 (*) -│ │ │ │ │ │ │ │ ├── num-iter v0.1.45 -│ │ │ │ │ │ │ │ │ ├── num-integer v0.1.46 (*) -│ │ │ │ │ │ │ │ │ └── num-traits v0.2.19 (*) -│ │ │ │ │ │ │ │ │ [build-dependencies] -│ │ │ │ │ │ │ │ │ └── autocfg v1.3.0 -│ │ │ │ │ │ │ │ ├── num-traits v0.2.19 (*) -│ │ │ │ │ │ │ │ ├── rand v0.8.5 (*) -│ │ │ │ │ │ │ │ ├── smallvec v1.13.2 -│ │ │ │ │ │ │ │ └── zeroize v1.8.1 (*) -│ │ │ │ │ │ │ ├── num-integer v0.1.46 (*) -│ │ │ │ │ │ │ ├── num-traits v0.2.19 (*) -│ │ │ │ │ │ │ ├── pkcs1 v0.7.5 -│ │ │ │ │ │ │ │ ├── der v0.7.9 -│ │ │ │ │ │ │ │ │ ├── const-oid v0.9.6 -│ │ │ │ │ │ │ │ │ ├── pem-rfc7468 v0.7.0 -│ │ │ │ │ │ │ │ │ │ └── base64ct v1.6.0 -│ │ │ │ │ │ │ │ │ └── zeroize v1.8.1 (*) -│ │ │ │ │ │ │ │ ├── pkcs8 v0.10.2 -│ │ │ │ │ │ │ │ │ ├── der v0.7.9 (*) -│ │ │ │ │ │ │ │ │ └── spki v0.7.3 -│ │ │ │ │ │ │ │ │ └── der v0.7.9 (*) -│ │ │ │ │ │ │ │ └── spki v0.7.3 (*) -│ │ │ │ │ │ │ ├── pkcs8 v0.10.2 (*) -│ │ │ │ │ │ │ ├── rand_core v0.6.4 (*) -│ │ │ │ │ │ │ ├── signature v2.2.0 -│ │ │ │ │ │ │ │ ├── digest v0.10.7 (*) -│ │ │ │ │ │ │ │ └── rand_core v0.6.4 (*) -│ │ │ │ │ │ │ ├── spki v0.7.3 (*) -│ │ │ │ │ │ │ ├── subtle v2.5.0 -│ │ │ │ │ │ │ └── zeroize v1.8.1 (*) -│ │ │ │ │ │ ├── rustls-pemfile v2.1.2 (*) -│ │ │ │ │ │ ├── serde v1.0.203 (*) -│ │ │ │ │ │ ├── serde_json v1.0.117 (*) -│ │ │ │ │ │ └── zip v2.1.3 -│ │ │ │ │ │ ├── aes v0.8.4 -│ │ │ │ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ │ │ │ ├── cipher v0.4.4 -│ │ │ │ │ │ │ │ ├── crypto-common v0.1.6 (*) -│ │ │ │ │ │ │ │ ├── inout v0.1.3 -│ │ │ │ │ │ │ │ │ ├── block-padding v0.3.3 -│ │ │ │ │ │ │ │ │ │ └── generic-array v0.14.7 (*) -│ │ │ │ │ │ │ │ │ └── generic-array v0.14.7 (*) -│ │ │ │ │ │ │ │ └── zeroize v1.8.1 (*) -│ │ │ │ │ │ │ ├── cpufeatures v0.2.12 (*) -│ │ │ │ │ │ │ └── zeroize v1.8.1 (*) -│ │ │ │ │ │ ├── bzip2 v0.4.4 -│ │ │ │ │ │ │ ├── bzip2-sys v0.1.11+1.0.8 -│ │ │ │ │ │ │ │ └── libc v0.2.155 -│ │ │ │ │ │ │ │ [build-dependencies] -│ │ │ │ │ │ │ │ ├── cc v1.0.99 (*) -│ │ │ │ │ │ │ │ └── pkg-config v0.3.30 -│ │ │ │ │ │ │ └── libc v0.2.155 -│ │ │ │ │ │ ├── constant_time_eq v0.3.0 -│ │ │ │ │ │ ├── crc32fast v1.4.2 (*) -│ │ │ │ │ │ ├── deflate64 v0.1.8 -│ │ │ │ │ │ ├── displaydoc v0.2.4 (proc-macro) -│ │ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ │ ├── flate2 v1.0.30 (*) -│ │ │ │ │ │ ├── hmac v0.12.1 (*) -│ │ │ │ │ │ ├── indexmap v2.2.6 (*) -│ │ │ │ │ │ ├── lzma-rs v0.3.0 -│ │ │ │ │ │ │ ├── byteorder v1.5.0 -│ │ │ │ │ │ │ └── crc v3.2.1 -│ │ │ │ │ │ │ └── crc-catalog v2.4.0 -│ │ │ │ │ │ ├── memchr v2.7.4 -│ │ │ │ │ │ ├── pbkdf2 v0.12.2 -│ │ │ │ │ │ │ ├── digest v0.10.7 (*) -│ │ │ │ │ │ │ ├── hmac v0.12.1 (*) -│ │ │ │ │ │ │ ├── password-hash v0.5.0 (*) -│ │ │ │ │ │ │ └── sha2 v0.10.8 (*) -│ │ │ │ │ │ ├── rand v0.8.5 (*) -│ │ │ │ │ │ ├── sha1 v0.10.6 (*) -│ │ │ │ │ │ ├── thiserror v1.0.61 (*) -│ │ │ │ │ │ ├── time v0.3.36 (*) -│ │ │ │ │ │ ├── zeroize v1.8.1 (*) -│ │ │ │ │ │ ├── zopfli v0.8.1 -│ │ │ │ │ │ │ ├── bumpalo v3.16.0 -│ │ │ │ │ │ │ ├── crc32fast v1.4.2 (*) -│ │ │ │ │ │ │ ├── lockfree-object-pool v0.1.6 -│ │ │ │ │ │ │ ├── log v0.4.21 -│ │ │ │ │ │ │ ├── once_cell v1.19.0 -│ │ │ │ │ │ │ └── simd-adler32 v0.3.7 -│ │ │ │ │ │ └── zstd v0.13.1 (*) -│ │ │ │ │ ├── mail-send v0.4.8 -│ │ │ │ │ │ ├── base64 v0.22.1 -│ │ │ │ │ │ ├── gethostname v0.4.3 (*) -│ │ │ │ │ │ ├── md5 v0.7.0 -│ │ │ │ │ │ ├── rustls v0.22.4 (*) -│ │ │ │ │ │ ├── rustls-pki-types v1.7.0 -│ │ │ │ │ │ ├── smtp-proto v0.1.5 -│ │ │ │ │ │ │ └── serde v1.0.203 (*) -│ │ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ │ ├── tokio-rustls v0.25.0 (*) -│ │ │ │ │ │ └── webpki-roots v0.26.3 (*) -│ │ │ │ │ ├── parking_lot v0.12.3 (*) -│ │ │ │ │ ├── pem v3.0.4 (*) -│ │ │ │ │ ├── privdrop v0.5.4 -│ │ │ │ │ │ ├── libc v0.2.155 -│ │ │ │ │ │ └── nix v0.26.4 -│ │ │ │ │ │ ├── bitflags v1.3.2 -│ │ │ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ │ │ ├── libc v0.2.155 -│ │ │ │ │ │ ├── memoffset v0.7.1 -│ │ │ │ │ │ │ [build-dependencies] -│ │ │ │ │ │ │ └── autocfg v1.3.0 -│ │ │ │ │ │ └── pin-utils v0.1.0 -│ │ │ │ │ ├── rand v0.8.5 (*) -│ │ │ │ │ ├── rcgen v0.13.1 -│ │ │ │ │ │ ├── pem v3.0.4 (*) -│ │ │ │ │ │ ├── ring v0.17.8 (*) -│ │ │ │ │ │ ├── rustls-pki-types v1.7.0 -│ │ │ │ │ │ ├── time v0.3.36 (*) -│ │ │ │ │ │ └── yasna v0.5.2 -│ │ │ │ │ │ └── time v0.3.36 (*) -│ │ │ │ │ ├── regex v1.10.5 (*) -│ │ │ │ │ ├── reqwest v0.12.5 -│ │ │ │ │ │ ├── base64 v0.22.1 -│ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ ├── futures-channel v0.3.30 (*) -│ │ │ │ │ │ ├── futures-core v0.3.30 -│ │ │ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ │ │ ├── h2 v0.4.5 -│ │ │ │ │ │ │ ├── atomic-waker v1.1.2 -│ │ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ │ ├── fnv v1.0.7 -│ │ │ │ │ │ │ ├── futures-core v0.3.30 -│ │ │ │ │ │ │ ├── futures-sink v0.3.30 -│ │ │ │ │ │ │ ├── http v1.1.0 (*) -│ │ │ │ │ │ │ ├── indexmap v2.2.6 (*) -│ │ │ │ │ │ │ ├── slab v0.4.9 (*) -│ │ │ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ │ │ ├── tokio-util v0.7.11 (*) -│ │ │ │ │ │ │ └── tracing v0.1.40 (*) -│ │ │ │ │ │ ├── http v1.1.0 (*) -│ │ │ │ │ │ ├── http-body v1.0.0 (*) -│ │ │ │ │ │ ├── http-body-util v0.1.2 (*) -│ │ │ │ │ │ ├── hyper v1.3.1 -│ │ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ │ ├── futures-channel v0.3.30 (*) -│ │ │ │ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ │ │ │ ├── h2 v0.4.5 (*) -│ │ │ │ │ │ │ ├── http v1.1.0 (*) -│ │ │ │ │ │ │ ├── http-body v1.0.0 (*) -│ │ │ │ │ │ │ ├── httparse v1.9.4 -│ │ │ │ │ │ │ ├── httpdate v1.0.3 -│ │ │ │ │ │ │ ├── itoa v1.0.11 -│ │ │ │ │ │ │ ├── pin-project-lite v0.2.14 -│ │ │ │ │ │ │ ├── smallvec v1.13.2 -│ │ │ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ │ │ └── want v0.3.1 (*) -│ │ │ │ │ │ ├── hyper-rustls v0.27.2 -│ │ │ │ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ │ │ │ ├── http v1.1.0 (*) -│ │ │ │ │ │ │ ├── hyper v1.3.1 (*) -│ │ │ │ │ │ │ ├── hyper-util v0.1.5 -│ │ │ │ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ │ │ │ ├── futures-channel v0.3.30 (*) -│ │ │ │ │ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ │ │ │ │ ├── http v1.1.0 (*) -│ │ │ │ │ │ │ │ ├── http-body v1.0.0 (*) -│ │ │ │ │ │ │ │ ├── hyper v1.3.1 (*) -│ │ │ │ │ │ │ │ ├── pin-project-lite v0.2.14 -│ │ │ │ │ │ │ │ ├── socket2 v0.5.7 (*) -│ │ │ │ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ │ │ │ ├── tower v0.4.13 -│ │ │ │ │ │ │ │ │ ├── futures-core v0.3.30 -│ │ │ │ │ │ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ │ │ │ │ │ ├── indexmap v1.9.3 -│ │ │ │ │ │ │ │ │ │ └── hashbrown v0.12.3 -│ │ │ │ │ │ │ │ │ │ [build-dependencies] -│ │ │ │ │ │ │ │ │ │ └── autocfg v1.3.0 -│ │ │ │ │ │ │ │ │ ├── pin-project v1.1.5 (*) -│ │ │ │ │ │ │ │ │ ├── pin-project-lite v0.2.14 -│ │ │ │ │ │ │ │ │ ├── rand v0.8.5 (*) -│ │ │ │ │ │ │ │ │ ├── slab v0.4.9 (*) -│ │ │ │ │ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ │ │ │ │ ├── tokio-util v0.7.11 (*) -│ │ │ │ │ │ │ │ │ ├── tower-layer v0.3.2 -│ │ │ │ │ │ │ │ │ ├── tower-service v0.3.2 -│ │ │ │ │ │ │ │ │ └── tracing v0.1.40 (*) -│ │ │ │ │ │ │ │ ├── tower-service v0.3.2 -│ │ │ │ │ │ │ │ └── tracing v0.1.40 (*) -│ │ │ │ │ │ │ ├── rustls v0.23.10 -│ │ │ │ │ │ │ │ ├── once_cell v1.19.0 -│ │ │ │ │ │ │ │ ├── ring v0.17.8 (*) -│ │ │ │ │ │ │ │ ├── rustls-pki-types v1.7.0 -│ │ │ │ │ │ │ │ ├── rustls-webpki v0.102.4 (*) -│ │ │ │ │ │ │ │ ├── subtle v2.5.0 -│ │ │ │ │ │ │ │ └── zeroize v1.8.1 (*) -│ │ │ │ │ │ │ ├── rustls-pki-types v1.7.0 -│ │ │ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ │ │ ├── tokio-rustls v0.26.0 -│ │ │ │ │ │ │ │ ├── rustls v0.23.10 (*) -│ │ │ │ │ │ │ │ ├── rustls-pki-types v1.7.0 -│ │ │ │ │ │ │ │ └── tokio v1.38.0 (*) -│ │ │ │ │ │ │ ├── tower-service v0.3.2 -│ │ │ │ │ │ │ └── webpki-roots v0.26.3 (*) -│ │ │ │ │ │ ├── hyper-util v0.1.5 (*) -│ │ │ │ │ │ ├── ipnet v2.9.0 -│ │ │ │ │ │ ├── log v0.4.21 -│ │ │ │ │ │ ├── mime v0.3.17 -│ │ │ │ │ │ ├── mime_guess v2.0.4 -│ │ │ │ │ │ │ ├── mime v0.3.17 -│ │ │ │ │ │ │ └── unicase v2.7.0 -│ │ │ │ │ │ │ [build-dependencies] -│ │ │ │ │ │ │ └── version_check v0.9.4 -│ │ │ │ │ │ │ [build-dependencies] -│ │ │ │ │ │ │ └── unicase v2.7.0 (*) -│ │ │ │ │ │ ├── once_cell v1.19.0 -│ │ │ │ │ │ ├── percent-encoding v2.3.1 -│ │ │ │ │ │ ├── pin-project-lite v0.2.14 -│ │ │ │ │ │ ├── rustls v0.23.10 (*) -│ │ │ │ │ │ ├── rustls-pemfile v2.1.2 (*) -│ │ │ │ │ │ ├── rustls-pki-types v1.7.0 -│ │ │ │ │ │ ├── serde v1.0.203 (*) -│ │ │ │ │ │ ├── serde_urlencoded v0.7.1 (*) -│ │ │ │ │ │ ├── sync_wrapper v1.0.1 -│ │ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ │ ├── tokio-rustls v0.26.0 (*) -│ │ │ │ │ │ ├── tower-service v0.3.2 -│ │ │ │ │ │ ├── url v2.5.2 (*) -│ │ │ │ │ │ └── webpki-roots v0.26.3 (*) -│ │ │ │ │ ├── ring v0.17.8 (*) -│ │ │ │ │ ├── rustls v0.22.4 (*) -│ │ │ │ │ ├── rustls-pemfile v2.1.2 (*) -│ │ │ │ │ ├── rustls-pki-types v1.7.0 -│ │ │ │ │ ├── serde v1.0.203 (*) -│ │ │ │ │ ├── serde_json v1.0.117 (*) -│ │ │ │ │ ├── smtp-proto v0.1.5 (*) -│ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ ├── tokio-rustls v0.25.0 (*) -│ │ │ │ │ ├── tracing v0.1.40 (*) -│ │ │ │ │ ├── tracing-journald v0.3.0 -│ │ │ │ │ │ ├── libc v0.2.155 -│ │ │ │ │ │ ├── tracing-core v0.1.32 (*) -│ │ │ │ │ │ └── tracing-subscriber v0.3.18 -│ │ │ │ │ │ ├── matchers v0.1.0 -│ │ │ │ │ │ │ └── regex-automata v0.1.10 -│ │ │ │ │ │ │ └── regex-syntax v0.6.29 -│ │ │ │ │ │ ├── nu-ansi-term v0.46.0 -│ │ │ │ │ │ │ └── overload v0.1.1 -│ │ │ │ │ │ ├── once_cell v1.19.0 -│ │ │ │ │ │ ├── regex v1.10.5 (*) -│ │ │ │ │ │ ├── sharded-slab v0.1.7 -│ │ │ │ │ │ │ └── lazy_static v1.4.0 (*) -│ │ │ │ │ │ ├── smallvec v1.13.2 -│ │ │ │ │ │ ├── thread_local v1.1.8 -│ │ │ │ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ │ │ │ └── once_cell v1.19.0 -│ │ │ │ │ │ ├── tracing v0.1.40 (*) -│ │ │ │ │ │ ├── tracing-core v0.1.32 (*) -│ │ │ │ │ │ └── tracing-log v0.2.0 -│ │ │ │ │ │ ├── log v0.4.21 -│ │ │ │ │ │ ├── once_cell v1.19.0 -│ │ │ │ │ │ └── tracing-core v0.1.32 (*) -│ │ │ │ │ ├── webpki-roots v0.26.3 (*) -│ │ │ │ │ └── x509-parser v0.16.0 -│ │ │ │ │ ├── asn1-rs v0.6.1 -│ │ │ │ │ │ ├── asn1-rs-derive v0.5.0 (proc-macro) -│ │ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ │ ├── syn v2.0.66 (*) -│ │ │ │ │ │ │ └── synstructure v0.13.1 -│ │ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ │ ├── asn1-rs-impl v0.2.0 (proc-macro) -│ │ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ │ ├── displaydoc v0.2.4 (proc-macro) (*) -│ │ │ │ │ │ ├── nom v7.1.3 -│ │ │ │ │ │ │ ├── memchr v2.7.4 -│ │ │ │ │ │ │ └── minimal-lexical v0.2.1 -│ │ │ │ │ │ ├── num-traits v0.2.19 (*) -│ │ │ │ │ │ ├── rusticata-macros v4.1.0 -│ │ │ │ │ │ │ └── nom v7.1.3 (*) -│ │ │ │ │ │ ├── thiserror v1.0.61 (*) -│ │ │ │ │ │ └── time v0.3.36 (*) -│ │ │ │ │ ├── data-encoding v2.6.0 -│ │ │ │ │ ├── der-parser v9.0.0 -│ │ │ │ │ │ ├── asn1-rs v0.6.1 (*) -│ │ │ │ │ │ ├── displaydoc v0.2.4 (proc-macro) (*) -│ │ │ │ │ │ ├── nom v7.1.3 (*) -│ │ │ │ │ │ ├── num-bigint v0.4.5 (*) -│ │ │ │ │ │ ├── num-traits v0.2.19 (*) -│ │ │ │ │ │ └── rusticata-macros v4.1.0 (*) -│ │ │ │ │ ├── lazy_static v1.4.0 (*) -│ │ │ │ │ ├── nom v7.1.3 (*) -│ │ │ │ │ ├── oid-registry v0.7.0 -│ │ │ │ │ │ └── asn1-rs v0.6.1 (*) -│ │ │ │ │ ├── rusticata-macros v4.1.0 (*) -│ │ │ │ │ ├── thiserror v1.0.61 (*) -│ │ │ │ │ └── time v0.3.36 (*) -│ │ │ │ │ [dev-dependencies] -│ │ │ │ │ └── tokio v1.38.0 (*) -│ │ │ │ ├── whatlang v0.16.4 -│ │ │ │ │ ├── hashbrown v0.14.5 (*) -│ │ │ │ │ └── once_cell v1.19.0 -│ │ │ │ └── xxhash-rust v0.8.10 -│ │ │ │ [dev-dependencies] -│ │ │ │ └── tokio v1.38.0 (*) -│ │ │ ├── num_cpus v1.16.0 (*) -│ │ │ ├── parking_lot v0.12.3 (*) -│ │ │ ├── r2d2 v0.8.10 -│ │ │ │ ├── log v0.4.21 -│ │ │ │ ├── parking_lot v0.12.3 (*) -│ │ │ │ └── scheduled-thread-pool v0.2.7 -│ │ │ │ └── parking_lot v0.12.3 (*) -│ │ │ ├── rand v0.8.5 (*) -│ │ │ ├── rayon v1.10.0 -│ │ │ │ ├── either v1.12.0 -│ │ │ │ └── rayon-core v1.12.1 -│ │ │ │ ├── crossbeam-deque v0.8.5 (*) -│ │ │ │ └── crossbeam-utils v0.8.20 -│ │ │ ├── redis v0.25.4 -│ │ │ │ ├── async-trait v0.1.80 (proc-macro) (*) -│ │ │ │ ├── bytes v1.6.0 -│ │ │ │ ├── combine v4.6.7 -│ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ ├── futures-core v0.3.30 -│ │ │ │ │ ├── memchr v2.7.4 -│ │ │ │ │ ├── pin-project-lite v0.2.14 -│ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ └── tokio-util v0.7.11 (*) -│ │ │ │ ├── crc16 v0.4.0 -│ │ │ │ ├── futures v0.3.30 (*) -│ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ ├── itoa v1.0.11 -│ │ │ │ ├── log v0.4.21 -│ │ │ │ ├── percent-encoding v2.3.1 -│ │ │ │ ├── pin-project-lite v0.2.14 -│ │ │ │ ├── rand v0.8.5 (*) -│ │ │ │ ├── rustls v0.22.4 (*) -│ │ │ │ ├── rustls-native-certs v0.7.0 -│ │ │ │ │ ├── rustls-pemfile v2.1.2 (*) -│ │ │ │ │ ├── rustls-pki-types v1.7.0 -│ │ │ │ │ └── security-framework v2.11.0 -│ │ │ │ │ ├── bitflags v2.5.0 -│ │ │ │ │ ├── core-foundation v0.9.4 (*) -│ │ │ │ │ ├── core-foundation-sys v0.8.6 -│ │ │ │ │ ├── libc v0.2.155 -│ │ │ │ │ └── security-framework-sys v2.11.0 -│ │ │ │ │ ├── core-foundation-sys v0.8.6 -│ │ │ │ │ └── libc v0.2.155 -│ │ │ │ ├── rustls-pemfile v2.1.2 (*) -│ │ │ │ ├── rustls-pki-types v1.7.0 -│ │ │ │ ├── ryu v1.0.18 -│ │ │ │ ├── sha1_smol v1.0.0 -│ │ │ │ ├── socket2 v0.5.7 (*) -│ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ ├── tokio-rustls v0.25.0 (*) -│ │ │ │ ├── tokio-util v0.7.11 (*) -│ │ │ │ ├── url v2.5.2 (*) -│ │ │ │ └── webpki-roots v0.26.3 (*) -│ │ │ ├── regex v1.10.5 (*) -│ │ │ ├── ring v0.17.8 (*) -│ │ │ ├── roaring v0.10.5 -│ │ │ │ ├── bytemuck v1.16.1 -│ │ │ │ └── byteorder v1.5.0 -│ │ │ ├── rocksdb v0.22.0 -│ │ │ │ ├── libc v0.2.155 -│ │ │ │ └── librocksdb-sys v0.16.0+8.10.0 -│ │ │ │ ├── bzip2-sys v0.1.11+1.0.8 (*) -│ │ │ │ ├── libc v0.2.155 -│ │ │ │ ├── libz-sys v1.1.18 (*) -│ │ │ │ ├── lz4-sys v1.9.5 -│ │ │ │ │ └── libc v0.2.155 -│ │ │ │ │ [build-dependencies] -│ │ │ │ │ └── cc v1.0.99 (*) -│ │ │ │ └── zstd-sys v2.0.11+zstd.1.5.6 (*) -│ │ │ │ [build-dependencies] -│ │ │ │ ├── bindgen v0.69.4 (*) -│ │ │ │ ├── cc v1.0.99 (*) -│ │ │ │ └── glob v0.3.1 -│ │ │ ├── rusqlite v0.31.0 -│ │ │ │ ├── bitflags v2.5.0 -│ │ │ │ ├── fallible-iterator v0.3.0 -│ │ │ │ ├── fallible-streaming-iterator v0.1.9 -│ │ │ │ ├── hashlink v0.9.1 -│ │ │ │ │ └── hashbrown v0.14.5 (*) -│ │ │ │ ├── libsqlite3-sys v0.28.0 -│ │ │ │ │ [build-dependencies] -│ │ │ │ │ ├── cc v1.0.99 (*) -│ │ │ │ │ ├── pkg-config v0.3.30 -│ │ │ │ │ └── vcpkg v0.2.15 -│ │ │ │ └── smallvec v1.13.2 -│ │ │ ├── rust-s3 v0.34.0 -│ │ │ │ ├── async-trait v0.1.80 (proc-macro) (*) -│ │ │ │ ├── aws-creds v0.36.0 -│ │ │ │ │ ├── attohttpc v0.26.1 -│ │ │ │ │ │ ├── http v0.2.12 (*) -│ │ │ │ │ │ ├── log v0.4.21 -│ │ │ │ │ │ ├── rustls v0.21.12 (*) -│ │ │ │ │ │ ├── serde v1.0.203 (*) -│ │ │ │ │ │ ├── serde_json v1.0.117 (*) -│ │ │ │ │ │ ├── url v2.5.2 (*) -│ │ │ │ │ │ └── webpki-roots v0.25.4 -│ │ │ │ │ ├── home v0.5.9 -│ │ │ │ │ ├── log v0.4.21 -│ │ │ │ │ ├── quick-xml v0.30.0 -│ │ │ │ │ │ ├── memchr v2.7.4 -│ │ │ │ │ │ └── serde v1.0.203 (*) -│ │ │ │ │ ├── rust-ini v0.19.0 -│ │ │ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ │ │ └── ordered-multimap v0.6.0 -│ │ │ │ │ │ ├── dlv-list v0.5.2 -│ │ │ │ │ │ │ └── const-random v0.1.18 -│ │ │ │ │ │ │ └── const-random-macro v0.1.16 (proc-macro) -│ │ │ │ │ │ │ ├── getrandom v0.2.15 -│ │ │ │ │ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ │ │ │ │ └── libc v0.2.155 -│ │ │ │ │ │ │ ├── once_cell v1.19.0 -│ │ │ │ │ │ │ └── tiny-keccak v2.0.2 -│ │ │ │ │ │ │ └── crunchy v0.2.2 -│ │ │ │ │ │ └── hashbrown v0.13.2 -│ │ │ │ │ ├── serde v1.0.203 (*) -│ │ │ │ │ ├── thiserror v1.0.61 (*) -│ │ │ │ │ ├── time v0.3.36 (*) -│ │ │ │ │ └── url v2.5.2 (*) -│ │ │ │ ├── aws-region v0.25.4 -│ │ │ │ │ └── thiserror v1.0.61 (*) -│ │ │ │ ├── base64 v0.21.7 -│ │ │ │ ├── bytes v1.6.0 -│ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ ├── futures v0.3.30 (*) -│ │ │ │ ├── hex v0.4.3 -│ │ │ │ ├── hmac v0.12.1 (*) -│ │ │ │ ├── http v0.2.12 (*) -│ │ │ │ ├── hyper v0.14.29 (*) -│ │ │ │ ├── hyper-tls v0.5.0 -│ │ │ │ │ ├── bytes v1.6.0 -│ │ │ │ │ ├── hyper v0.14.29 (*) -│ │ │ │ │ ├── native-tls v0.2.12 -│ │ │ │ │ │ ├── libc v0.2.155 -│ │ │ │ │ │ ├── security-framework v2.11.0 (*) -│ │ │ │ │ │ ├── security-framework-sys v2.11.0 (*) -│ │ │ │ │ │ └── tempfile v3.10.1 -│ │ │ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ │ │ ├── fastrand v2.1.0 -│ │ │ │ │ │ └── rustix v0.38.34 -│ │ │ │ │ │ ├── bitflags v2.5.0 -│ │ │ │ │ │ ├── errno v0.3.9 -│ │ │ │ │ │ │ └── libc v0.2.155 -│ │ │ │ │ │ └── libc v0.2.155 -│ │ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ │ └── tokio-native-tls v0.3.1 -│ │ │ │ │ ├── native-tls v0.2.12 (*) -│ │ │ │ │ └── tokio v1.38.0 (*) -│ │ │ │ ├── log v0.4.21 -│ │ │ │ ├── maybe-async v0.2.10 (proc-macro) -│ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ ├── md5 v0.7.0 -│ │ │ │ ├── native-tls v0.2.12 (*) -│ │ │ │ ├── percent-encoding v2.3.1 -│ │ │ │ ├── quick-xml v0.30.0 (*) -│ │ │ │ ├── serde v1.0.203 (*) -│ │ │ │ ├── serde_derive v1.0.203 (proc-macro) (*) -│ │ │ │ ├── serde_json v1.0.117 (*) -│ │ │ │ ├── sha2 v0.10.8 (*) -│ │ │ │ ├── thiserror v1.0.61 (*) -│ │ │ │ ├── time v0.3.36 (*) -│ │ │ │ ├── tokio v1.38.0 (*) -│ │ │ │ ├── tokio-native-tls v0.3.1 (*) -│ │ │ │ ├── tokio-stream v0.1.15 -│ │ │ │ │ ├── futures-core v0.3.30 -│ │ │ │ │ ├── pin-project-lite v0.2.14 -│ │ │ │ │ └── tokio v1.38.0 (*) -│ │ │ │ └── url v2.5.2 (*) -│ │ │ ├── rustls v0.22.4 (*) -│ │ │ ├── rustls-pki-types v1.7.0 -│ │ │ ├── serde v1.0.203 (*) -│ │ │ ├── serde_json v1.0.117 (*) -│ │ │ ├── tokio v1.38.0 (*) -│ │ │ ├── tokio-postgres v0.7.10 (*) -│ │ │ ├── tokio-rustls v0.25.0 (*) -│ │ │ ├── tracing v0.1.40 (*) -│ │ │ ├── utils v0.8.2 (/Users/me/code/mail-server/crates/utils) (*) -│ │ │ └── xxhash-rust v0.8.10 -│ │ │ [dev-dependencies] -│ │ │ └── tokio v1.38.0 (*) -│ │ ├── tracing v0.1.40 (*) -│ │ └── utils v0.8.2 (/Users/me/code/mail-server/crates/utils) (*) -│ │ [dev-dependencies] -│ │ └── tokio v1.38.0 (*) -│ ├── ldap3 v0.11.4 -│ │ ├── async-trait v0.1.80 (proc-macro) (*) -│ │ ├── bytes v1.6.0 -│ │ ├── futures v0.3.30 (*) -│ │ ├── futures-util v0.3.30 (*) -│ │ ├── lazy_static v1.4.0 (*) -│ │ ├── lber v0.4.2 -│ │ │ ├── bytes v1.6.0 -│ │ │ └── nom v7.1.3 (*) -│ │ ├── log v0.4.21 -│ │ ├── nom v7.1.3 (*) -│ │ ├── percent-encoding v2.3.1 -│ │ ├── ring v0.16.20 (*) -│ │ ├── rustls v0.21.12 (*) -│ │ ├── rustls-native-certs v0.6.3 -│ │ │ ├── rustls-pemfile v1.0.4 (*) -│ │ │ └── security-framework v2.11.0 (*) -│ │ ├── thiserror v1.0.61 (*) -│ │ ├── tokio v1.38.0 (*) -│ │ ├── tokio-rustls v0.24.1 (*) -│ │ ├── tokio-stream v0.1.15 (*) -│ │ ├── tokio-util v0.7.11 (*) -│ │ ├── url v2.5.2 (*) -│ │ └── x509-parser v0.15.1 -│ │ ├── asn1-rs v0.5.2 -│ │ │ ├── asn1-rs-derive v0.4.0 (proc-macro) -│ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ ├── syn v1.0.109 (*) -│ │ │ │ └── synstructure v0.12.6 -│ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ ├── syn v1.0.109 (*) -│ │ │ │ └── unicode-xid v0.2.4 -│ │ │ ├── asn1-rs-impl v0.1.0 (proc-macro) -│ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ └── syn v1.0.109 (*) -│ │ │ ├── displaydoc v0.2.4 (proc-macro) (*) -│ │ │ ├── nom v7.1.3 (*) -│ │ │ ├── num-traits v0.2.19 (*) -│ │ │ ├── rusticata-macros v4.1.0 (*) -│ │ │ ├── thiserror v1.0.61 (*) -│ │ │ └── time v0.3.36 (*) -│ │ ├── data-encoding v2.6.0 -│ │ ├── der-parser v8.2.0 -│ │ │ ├── asn1-rs v0.5.2 (*) -│ │ │ ├── displaydoc v0.2.4 (proc-macro) (*) -│ │ │ ├── nom v7.1.3 (*) -│ │ │ ├── num-bigint v0.4.5 (*) -│ │ │ ├── num-traits v0.2.19 (*) -│ │ │ └── rusticata-macros v4.1.0 (*) -│ │ ├── lazy_static v1.4.0 (*) -│ │ ├── nom v7.1.3 (*) -│ │ ├── oid-registry v0.6.1 -│ │ │ └── asn1-rs v0.5.2 (*) -│ │ ├── rusticata-macros v4.1.0 (*) -│ │ ├── thiserror v1.0.61 (*) -│ │ └── time v0.3.36 (*) -│ ├── lru-cache v0.1.2 (*) -│ ├── mail-builder v0.3.1 (*) -│ ├── mail-parser v0.9.3 (*) -│ ├── mail-send v0.4.8 (*) -│ ├── md5 v0.7.0 -│ ├── parking_lot v0.12.3 (*) -│ ├── password-hash v0.5.0 (*) -│ ├── pbkdf2 v0.12.2 (*) -│ ├── pwhash v1.0.0 -│ │ ├── blowfish v0.7.0 -│ │ │ ├── byteorder v1.5.0 -│ │ │ ├── cipher v0.2.5 -│ │ │ │ └── generic-array v0.14.7 (*) -│ │ │ └── opaque-debug v0.3.1 -│ │ ├── byteorder v1.5.0 -│ │ ├── hmac v0.10.1 -│ │ │ ├── crypto-mac v0.10.0 -│ │ │ │ ├── generic-array v0.14.7 (*) -│ │ │ │ └── subtle v2.5.0 -│ │ │ └── digest v0.9.0 -│ │ │ └── generic-array v0.14.7 (*) -│ │ ├── md-5 v0.9.1 -│ │ │ ├── block-buffer v0.9.0 -│ │ │ │ └── generic-array v0.14.7 (*) -│ │ │ ├── digest v0.9.0 (*) -│ │ │ └── opaque-debug v0.3.1 -│ │ ├── rand v0.8.5 (*) -│ │ ├── sha-1 v0.9.8 -│ │ │ ├── block-buffer v0.9.0 (*) -│ │ │ ├── cfg-if v1.0.0 -│ │ │ ├── cpufeatures v0.2.12 (*) -│ │ │ ├── digest v0.9.0 (*) -│ │ │ └── opaque-debug v0.3.1 -│ │ └── sha2 v0.9.9 -│ │ ├── block-buffer v0.9.0 (*) -│ │ ├── cfg-if v1.0.0 -│ │ ├── cpufeatures v0.2.12 (*) -│ │ ├── digest v0.9.0 (*) -│ │ └── opaque-debug v0.3.1 -│ ├── regex v1.10.5 (*) -│ ├── rustls v0.22.4 (*) -│ ├── rustls-pki-types v1.7.0 -│ ├── scrypt v0.11.0 -│ │ ├── password-hash v0.5.0 (*) -│ │ ├── pbkdf2 v0.12.2 (*) -│ │ ├── salsa20 v0.10.2 -│ │ │ └── cipher v0.4.4 (*) -│ │ └── sha2 v0.10.8 (*) -│ ├── serde v1.0.203 (*) -│ ├── sha1 v0.10.6 (*) -│ ├── sha2 v0.10.8 (*) -│ ├── smtp-proto v0.1.5 (*) -│ ├── store v0.8.2 (/Users/me/code/mail-server/crates/store) (*) -│ ├── tokio v1.38.0 (*) -│ ├── tokio-rustls v0.25.0 (*) -│ ├── tracing v0.1.40 (*) -│ └── utils v0.8.2 (/Users/me/code/mail-server/crates/utils) (*) -│ [dev-dependencies] -│ └── tokio v1.38.0 (*) -├── dns-update v0.1.2 -│ ├── hickory-client v0.24.1 -│ │ ├── cfg-if v1.0.0 -│ │ ├── data-encoding v2.6.0 -│ │ ├── futures-channel v0.3.30 (*) -│ │ ├── futures-util v0.3.30 (*) -│ │ ├── hickory-proto v0.24.1 (*) -│ │ ├── once_cell v1.19.0 -│ │ ├── radix_trie v0.2.1 -│ │ │ ├── endian-type v0.1.2 -│ │ │ └── nibble_vec v0.1.0 -│ │ │ └── smallvec v1.13.2 -│ │ ├── rand v0.8.5 (*) -│ │ ├── rustls v0.21.12 (*) -│ │ ├── thiserror v1.0.61 (*) -│ │ ├── tokio v1.38.0 (*) -│ │ └── tracing v0.1.40 (*) -│ ├── reqwest v0.12.5 (*) -│ ├── serde v1.0.203 (*) -│ ├── serde_json v1.0.117 (*) -│ ├── serde_urlencoded v0.7.1 (*) -│ └── tokio v1.38.0 (*) -├── futures v0.3.30 (*) -├── hostname v0.4.0 -│ ├── cfg-if v1.0.0 -│ └── libc v0.2.155 -├── hyper v1.3.1 (*) -├── idna v1.0.1 -│ ├── icu_normalizer v1.5.0 -│ │ ├── displaydoc v0.2.4 (proc-macro) (*) -│ │ ├── icu_collections v1.5.0 -│ │ │ ├── displaydoc v0.2.4 (proc-macro) (*) -│ │ │ ├── yoke v0.7.4 -│ │ │ │ ├── stable_deref_trait v1.2.0 -│ │ │ │ ├── yoke-derive v0.7.4 (proc-macro) -│ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ ├── syn v2.0.66 (*) -│ │ │ │ │ └── synstructure v0.13.1 (*) -│ │ │ │ └── zerofrom v0.1.4 -│ │ │ │ └── zerofrom-derive v0.1.4 (proc-macro) -│ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ ├── syn v2.0.66 (*) -│ │ │ │ └── synstructure v0.13.1 (*) -│ │ │ ├── zerofrom v0.1.4 (*) -│ │ │ └── zerovec v0.10.2 -│ │ │ ├── yoke v0.7.4 (*) -│ │ │ ├── zerofrom v0.1.4 (*) -│ │ │ └── zerovec-derive v0.10.2 (proc-macro) -│ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ ├── quote v1.0.36 (*) -│ │ │ └── syn v2.0.66 (*) -│ │ ├── icu_normalizer_data v1.5.0 -│ │ ├── icu_properties v1.5.0 -│ │ │ ├── displaydoc v0.2.4 (proc-macro) (*) -│ │ │ ├── icu_collections v1.5.0 (*) -│ │ │ ├── icu_locid_transform v1.5.0 -│ │ │ │ ├── displaydoc v0.2.4 (proc-macro) (*) -│ │ │ │ ├── icu_locid v1.5.0 -│ │ │ │ │ ├── displaydoc v0.2.4 (proc-macro) (*) -│ │ │ │ │ ├── litemap v0.7.3 -│ │ │ │ │ ├── tinystr v0.7.6 -│ │ │ │ │ │ ├── displaydoc v0.2.4 (proc-macro) (*) -│ │ │ │ │ │ └── zerovec v0.10.2 (*) -│ │ │ │ │ ├── writeable v0.5.5 -│ │ │ │ │ └── zerovec v0.10.2 (*) -│ │ │ │ ├── icu_locid_transform_data v1.5.0 -│ │ │ │ ├── icu_provider v1.5.0 -│ │ │ │ │ ├── displaydoc v0.2.4 (proc-macro) (*) -│ │ │ │ │ ├── icu_locid v1.5.0 (*) -│ │ │ │ │ ├── icu_provider_macros v1.5.0 (proc-macro) -│ │ │ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ │ │ └── syn v2.0.66 (*) -│ │ │ │ │ ├── stable_deref_trait v1.2.0 -│ │ │ │ │ ├── tinystr v0.7.6 (*) -│ │ │ │ │ ├── writeable v0.5.5 -│ │ │ │ │ ├── yoke v0.7.4 (*) -│ │ │ │ │ ├── zerofrom v0.1.4 (*) -│ │ │ │ │ └── zerovec v0.10.2 (*) -│ │ │ │ ├── tinystr v0.7.6 (*) -│ │ │ │ └── zerovec v0.10.2 (*) -│ │ │ ├── icu_properties_data v1.5.0 -│ │ │ ├── icu_provider v1.5.0 (*) -│ │ │ ├── tinystr v0.7.6 (*) -│ │ │ └── zerovec v0.10.2 (*) -│ │ ├── icu_provider v1.5.0 (*) -│ │ ├── smallvec v1.13.2 -│ │ ├── utf16_iter v1.0.5 -│ │ ├── utf8_iter v1.0.4 -│ │ ├── write16 v1.0.0 -│ │ └── zerovec v0.10.2 (*) -│ ├── icu_properties v1.5.0 (*) -│ ├── smallvec v1.13.2 -│ └── utf8_iter v1.0.4 -├── imagesize v0.13.0 -├── infer v0.16.0 -│ └── cfb v0.7.3 -│ ├── byteorder v1.5.0 -│ ├── fnv v1.0.7 -│ └── uuid v1.8.0 -├── jmap_proto v0.1.0 (/Users/me/code/mail-server/crates/jmap-proto) (*) -├── mail-auth v0.4.3 (*) -├── mail-parser v0.9.3 (*) -├── mail-send v0.4.8 (*) -├── md5 v0.7.0 -├── nlp v0.8.2 (/Users/me/code/mail-server/crates/nlp) (*) -├── opentelemetry v0.22.0 -│ ├── futures-core v0.3.30 -│ ├── futures-sink v0.3.30 -│ ├── once_cell v1.19.0 -│ ├── pin-project-lite v0.2.14 -│ ├── thiserror v1.0.61 (*) -│ └── urlencoding v2.1.3 -├── opentelemetry-otlp v0.15.0 -│ ├── async-trait v0.1.80 (proc-macro) (*) -│ ├── futures-core v0.3.30 -│ ├── http v0.2.12 (*) -│ ├── opentelemetry v0.22.0 (*) -│ ├── opentelemetry-http v0.11.1 -│ │ ├── async-trait v0.1.80 (proc-macro) (*) -│ │ ├── bytes v1.6.0 -│ │ ├── http v0.2.12 (*) -│ │ ├── opentelemetry v0.22.0 (*) -│ │ └── reqwest v0.11.27 (*) -│ ├── opentelemetry-proto v0.5.0 -│ │ ├── opentelemetry v0.22.0 (*) -│ │ ├── opentelemetry_sdk v0.22.1 -│ │ │ ├── async-trait v0.1.80 (proc-macro) (*) -│ │ │ ├── crossbeam-channel v0.5.13 (*) -│ │ │ ├── futures-channel v0.3.30 (*) -│ │ │ ├── futures-executor v0.3.30 (*) -│ │ │ ├── futures-util v0.3.30 (*) -│ │ │ ├── glob v0.3.1 -│ │ │ ├── once_cell v1.19.0 -│ │ │ ├── opentelemetry v0.22.0 (*) -│ │ │ ├── ordered-float v4.2.0 -│ │ │ │ └── num-traits v0.2.19 (*) -│ │ │ ├── percent-encoding v2.3.1 -│ │ │ ├── rand v0.8.5 (*) -│ │ │ ├── thiserror v1.0.61 (*) -│ │ │ ├── tokio v1.38.0 (*) -│ │ │ └── tokio-stream v0.1.15 (*) -│ │ ├── prost v0.12.6 -│ │ │ ├── bytes v1.6.0 -│ │ │ └── prost-derive v0.12.6 (proc-macro) -│ │ │ ├── anyhow v1.0.86 -│ │ │ ├── itertools v0.12.1 (*) -│ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ ├── quote v1.0.36 (*) -│ │ │ └── syn v2.0.66 (*) -│ │ └── tonic v0.11.0 -│ │ ├── async-stream v0.3.5 -│ │ │ ├── async-stream-impl v0.3.5 (proc-macro) -│ │ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ │ ├── quote v1.0.36 (*) -│ │ │ │ └── syn v2.0.66 (*) -│ │ │ ├── futures-core v0.3.30 -│ │ │ └── pin-project-lite v0.2.14 -│ │ ├── async-trait v0.1.80 (proc-macro) (*) -│ │ ├── axum v0.6.20 -│ │ │ ├── async-trait v0.1.80 (proc-macro) (*) -│ │ │ ├── axum-core v0.3.4 -│ │ │ │ ├── async-trait v0.1.80 (proc-macro) (*) -│ │ │ │ ├── bytes v1.6.0 -│ │ │ │ ├── futures-util v0.3.30 (*) -│ │ │ │ ├── http v0.2.12 (*) -│ │ │ │ ├── http-body v0.4.6 (*) -│ │ │ │ ├── mime v0.3.17 -│ │ │ │ ├── tower-layer v0.3.2 -│ │ │ │ └── tower-service v0.3.2 -│ │ │ │ [build-dependencies] -│ │ │ │ └── rustversion v1.0.17 (proc-macro) -│ │ │ ├── bitflags v1.3.2 -│ │ │ ├── bytes v1.6.0 -│ │ │ ├── futures-util v0.3.30 (*) -│ │ │ ├── http v0.2.12 (*) -│ │ │ ├── http-body v0.4.6 (*) -│ │ │ ├── hyper v0.14.29 (*) -│ │ │ ├── itoa v1.0.11 -│ │ │ ├── matchit v0.7.3 -│ │ │ ├── memchr v2.7.4 -│ │ │ ├── mime v0.3.17 -│ │ │ ├── percent-encoding v2.3.1 -│ │ │ ├── pin-project-lite v0.2.14 -│ │ │ ├── serde v1.0.203 (*) -│ │ │ ├── sync_wrapper v0.1.2 -│ │ │ ├── tower v0.4.13 (*) -│ │ │ ├── tower-layer v0.3.2 -│ │ │ └── tower-service v0.3.2 -│ │ │ [build-dependencies] -│ │ │ └── rustversion v1.0.17 (proc-macro) -│ │ ├── base64 v0.21.7 -│ │ ├── bytes v1.6.0 -│ │ ├── h2 v0.3.26 (*) -│ │ ├── http v0.2.12 (*) -│ │ ├── http-body v0.4.6 (*) -│ │ ├── hyper v0.14.29 (*) -│ │ ├── hyper-timeout v0.4.1 -│ │ │ ├── hyper v0.14.29 (*) -│ │ │ ├── pin-project-lite v0.2.14 -│ │ │ ├── tokio v1.38.0 (*) -│ │ │ └── tokio-io-timeout v1.2.0 -│ │ │ ├── pin-project-lite v0.2.14 -│ │ │ └── tokio v1.38.0 (*) -│ │ ├── percent-encoding v2.3.1 -│ │ ├── pin-project v1.1.5 (*) -│ │ ├── prost v0.12.6 (*) -│ │ ├── tokio v1.38.0 (*) -│ │ ├── tokio-stream v0.1.15 (*) -│ │ ├── tower v0.4.13 (*) -│ │ ├── tower-layer v0.3.2 -│ │ ├── tower-service v0.3.2 -│ │ └── tracing v0.1.40 (*) -│ ├── opentelemetry-semantic-conventions v0.14.0 -│ ├── opentelemetry_sdk v0.22.1 (*) -│ ├── prost v0.12.6 (*) -│ ├── reqwest v0.11.27 (*) -│ ├── thiserror v1.0.61 (*) -│ ├── tokio v1.38.0 (*) -│ └── tonic v0.11.0 (*) -├── opentelemetry-semantic-conventions v0.14.0 -├── opentelemetry_sdk v0.22.1 (*) -├── parking_lot v0.12.3 (*) -├── pem v3.0.4 (*) -├── privdrop v0.5.4 (*) -├── proxy-header v0.1.0 -│ ├── pin-project-lite v0.2.14 -│ └── tokio v1.38.0 (*) -├── pwhash v1.0.0 (*) -├── rcgen v0.12.1 -│ ├── pem v3.0.4 (*) -│ ├── ring v0.17.8 (*) -│ ├── time v0.3.36 (*) -│ └── yasna v0.5.2 (*) -├── regex v1.10.5 (*) -├── reqwest v0.12.5 (*) -├── ring v0.17.8 (*) -├── rustls v0.22.4 (*) -├── rustls-pemfile v2.1.2 (*) -├── rustls-pki-types v1.7.0 -├── serde v1.0.203 (*) -├── serde_json v1.0.117 (*) -├── sha1 v0.10.6 (*) -├── sha2 v0.10.8 (*) -├── sieve-rs v0.5.0 -│ ├── ahash v0.8.11 (*) -│ ├── bincode v1.3.3 (*) -│ ├── fancy-regex v0.13.0 -│ │ ├── bit-set v0.5.3 -│ │ │ └── bit-vec v0.6.3 -│ │ ├── regex-automata v0.4.7 (*) -│ │ └── regex-syntax v0.8.4 -│ ├── mail-builder v0.3.1 (*) -│ ├── mail-parser v0.9.3 (*) -│ ├── phf v0.11.2 (*) -│ └── serde v1.0.203 (*) -├── smtp-proto v0.1.5 (*) -├── store v0.8.2 (/Users/me/code/mail-server/crates/store) (*) -├── tokio v1.38.0 (*) -├── tokio-rustls v0.25.0 (*) -├── tracing v0.1.40 (*) -├── tracing-appender v0.2.3 -│ ├── crossbeam-channel v0.5.13 (*) -│ ├── thiserror v1.0.61 (*) -│ ├── time v0.3.36 (*) -│ └── tracing-subscriber v0.3.18 (*) -├── tracing-journald v0.3.0 (*) -├── tracing-opentelemetry v0.23.0 -│ ├── once_cell v1.19.0 -│ ├── opentelemetry v0.22.0 (*) -│ ├── opentelemetry_sdk v0.22.1 (*) -│ ├── smallvec v1.13.2 -│ ├── tracing v0.1.40 (*) -│ ├── tracing-core v0.1.32 (*) -│ ├── tracing-log v0.2.0 (*) -│ └── tracing-subscriber v0.3.18 (*) -├── tracing-subscriber v0.3.18 (*) -├── unicode-security v0.1.1 -│ ├── unicode-normalization v0.1.23 (*) -│ └── unicode-script v0.5.6 -├── utils v0.8.2 (/Users/me/code/mail-server/crates/utils) (*) -├── whatlang v0.16.4 (*) -├── x509-parser v0.16.0 (*) -├── xxhash-rust v0.8.10 -└── zip v2.1.3 (*) - -directory v0.8.2 (/Users/me/code/mail-server/crates/directory) (*) - -imap v0.8.2 (/Users/me/code/mail-server/crates/imap) -├── ahash v0.8.11 (*) -├── common v0.8.2 (/Users/me/code/mail-server/crates/common) (*) -├── dashmap v5.5.3 (*) -├── directory v0.8.2 (/Users/me/code/mail-server/crates/directory) (*) -├── imap_proto v0.1.0 (/Users/me/code/mail-server/crates/imap-proto) -│ ├── ahash v0.8.11 (*) -│ ├── chrono v0.4.38 (*) -│ ├── jmap_proto v0.1.0 (/Users/me/code/mail-server/crates/jmap-proto) (*) -│ ├── mail-parser v0.9.3 (*) -│ └── store v0.8.2 (/Users/me/code/mail-server/crates/store) (*) -│ [dev-dependencies] -│ └── tokio v1.38.0 (*) -├── jmap v0.8.2 (/Users/me/code/mail-server/crates/jmap) -│ ├── aes v0.8.4 (*) -│ ├── aes-gcm v0.10.3 -│ │ ├── aead v0.5.2 -│ │ │ ├── crypto-common v0.1.6 (*) -│ │ │ └── generic-array v0.14.7 (*) -│ │ ├── aes v0.8.4 (*) -│ │ ├── cipher v0.4.4 (*) -│ │ ├── ctr v0.9.2 -│ │ │ └── cipher v0.4.4 (*) -│ │ ├── ghash v0.5.1 -│ │ │ ├── opaque-debug v0.3.1 -│ │ │ └── polyval v0.6.2 -│ │ │ ├── cfg-if v1.0.0 -│ │ │ ├── cpufeatures v0.2.12 (*) -│ │ │ ├── opaque-debug v0.3.1 -│ │ │ └── universal-hash v0.5.1 -│ │ │ ├── crypto-common v0.1.6 (*) -│ │ │ └── subtle v2.5.0 -│ │ └── subtle v2.5.0 -│ ├── aes-gcm-siv v0.11.1 -│ │ ├── aead v0.5.2 (*) -│ │ ├── aes v0.8.4 (*) -│ │ ├── cipher v0.4.4 (*) -│ │ ├── ctr v0.9.2 (*) -│ │ ├── polyval v0.6.2 (*) -│ │ ├── subtle v2.5.0 -│ │ └── zeroize v1.8.1 (*) -│ ├── async-stream v0.3.5 (*) -│ ├── async-trait v0.1.80 (proc-macro) (*) -│ ├── base64 v0.22.1 -│ ├── bincode v1.3.3 (*) -│ ├── cbc v0.1.2 -│ │ └── cipher v0.4.4 (*) -│ ├── chrono v0.4.38 (*) -│ ├── common v0.8.2 (/Users/me/code/mail-server/crates/common) (*) -│ ├── dashmap v5.5.3 (*) -│ ├── directory v0.8.2 (/Users/me/code/mail-server/crates/directory) (*) -│ ├── form-data v0.5.5 -│ │ ├── bytes v1.6.0 -│ │ ├── http v1.1.0 (*) -│ │ ├── httparse v1.9.4 -│ │ ├── memchr v2.7.4 -│ │ ├── mime v0.3.17 -│ │ ├── serde v1.0.203 (*) -│ │ ├── thiserror v1.0.61 (*) -│ │ └── tracing v0.1.40 (*) -│ ├── form_urlencoded v1.2.1 (*) -│ ├── futures-util v0.3.30 (*) -│ ├── hkdf v0.12.4 -│ │ └── hmac v0.12.1 (*) -│ ├── http-body-util v0.1.2 (*) -│ ├── hyper v1.3.1 (*) -│ ├── hyper-util v0.1.5 (*) -│ ├── jmap_proto v0.1.0 (/Users/me/code/mail-server/crates/jmap-proto) (*) -│ ├── lz4_flex v0.11.3 -│ ├── mail-auth v0.4.3 (*) -│ ├── mail-builder v0.3.1 (*) -│ ├── mail-parser v0.9.3 (*) -│ ├── mail-send v0.4.8 (*) -│ ├── mime v0.3.17 -│ ├── nlp v0.8.2 (/Users/me/code/mail-server/crates/nlp) (*) -│ ├── p256 v0.13.2 -│ │ ├── ecdsa v0.16.9 -│ │ │ ├── der v0.7.9 (*) -│ │ │ ├── digest v0.10.7 (*) -│ │ │ ├── elliptic-curve v0.13.8 -│ │ │ │ ├── base16ct v0.2.0 -│ │ │ │ ├── crypto-bigint v0.5.5 -│ │ │ │ │ ├── generic-array v0.14.7 (*) -│ │ │ │ │ ├── rand_core v0.6.4 (*) -│ │ │ │ │ ├── subtle v2.5.0 -│ │ │ │ │ └── zeroize v1.8.1 (*) -│ │ │ │ ├── digest v0.10.7 (*) -│ │ │ │ ├── ff v0.13.0 -│ │ │ │ │ ├── rand_core v0.6.4 (*) -│ │ │ │ │ └── subtle v2.5.0 -│ │ │ │ ├── generic-array v0.14.7 (*) -│ │ │ │ ├── group v0.13.0 -│ │ │ │ │ ├── ff v0.13.0 (*) -│ │ │ │ │ ├── rand_core v0.6.4 (*) -│ │ │ │ │ └── subtle v2.5.0 -│ │ │ │ ├── hkdf v0.12.4 (*) -│ │ │ │ ├── pem-rfc7468 v0.7.0 (*) -│ │ │ │ ├── pkcs8 v0.10.2 (*) -│ │ │ │ ├── rand_core v0.6.4 (*) -│ │ │ │ ├── sec1 v0.7.3 -│ │ │ │ │ ├── base16ct v0.2.0 -│ │ │ │ │ ├── der v0.7.9 (*) -│ │ │ │ │ ├── generic-array v0.14.7 (*) -│ │ │ │ │ ├── pkcs8 v0.10.2 (*) -│ │ │ │ │ ├── subtle v2.5.0 -│ │ │ │ │ └── zeroize v1.8.1 (*) -│ │ │ │ ├── subtle v2.5.0 -│ │ │ │ └── zeroize v1.8.1 (*) -│ │ │ ├── rfc6979 v0.4.0 -│ │ │ │ ├── hmac v0.12.1 (*) -│ │ │ │ └── subtle v2.5.0 -│ │ │ ├── signature v2.2.0 (*) -│ │ │ └── spki v0.7.3 (*) -│ │ ├── elliptic-curve v0.13.8 (*) -│ │ ├── primeorder v0.13.6 -│ │ │ └── elliptic-curve v0.13.8 (*) -│ │ └── sha2 v0.10.8 (*) -│ ├── pkcs8 v0.10.2 (*) -│ ├── quick-xml v0.31.0 -│ │ └── memchr v2.7.4 -│ ├── rand v0.8.5 (*) -│ ├── rasn v0.10.6 -│ │ ├── arrayvec v0.7.4 -│ │ ├── bitvec v1.0.1 (*) -│ │ ├── bitvec-nom2 v0.2.0 -│ │ │ ├── bitvec v1.0.1 (*) -│ │ │ └── nom v7.1.3 (*) -│ │ ├── bytes v1.6.0 -│ │ ├── chrono v0.4.38 (*) -│ │ ├── either v1.12.0 -│ │ ├── konst v0.3.9 -│ │ │ ├── const_panic v0.2.8 -│ │ │ ├── konst_kernel v0.3.9 -│ │ │ │ └── typewit v1.9.0 -│ │ │ │ └── typewit_proc_macros v1.8.1 (proc-macro) -│ │ │ └── typewit v1.9.0 (*) -│ │ ├── nom v7.1.3 (*) -│ │ ├── num-bigint v0.4.5 (*) -│ │ ├── num-integer v0.1.46 (*) -│ │ ├── num-traits v0.2.19 (*) -│ │ ├── once_cell v1.19.0 -│ │ ├── rasn-derive v0.10.6 (proc-macro) -│ │ │ ├── either v1.12.0 -│ │ │ ├── itertools v0.10.5 -│ │ │ │ └── either v1.12.0 -│ │ │ ├── proc-macro2 v1.0.85 (*) -│ │ │ ├── quote v1.0.36 (*) -│ │ │ ├── rayon v1.10.0 (*) -│ │ │ ├── syn v1.0.109 (*) -│ │ │ └── uuid v1.8.0 -│ │ │ └── getrandom v0.2.15 (*) -│ │ └── snafu v0.7.5 -│ │ ├── backtrace v0.3.73 -│ │ │ ├── addr2line v0.22.0 -│ │ │ │ └── gimli v0.29.0 -│ │ │ ├── cfg-if v1.0.0 -│ │ │ ├── libc v0.2.155 -│ │ │ ├── miniz_oxide v0.7.4 (*) -│ │ │ ├── object v0.36.0 -│ │ │ │ └── memchr v2.7.4 -│ │ │ └── rustc-demangle v0.1.24 -│ │ │ [build-dependencies] -│ │ │ └── cc v1.0.99 (*) -│ │ ├── doc-comment v0.3.3 -│ │ └── snafu-derive v0.7.5 (proc-macro) -│ │ ├── heck v0.4.1 -│ │ ├── proc-macro2 v1.0.85 (*) -│ │ ├── quote v1.0.36 (*) -│ │ └── syn v1.0.109 (*) -│ ├── rasn-cms v0.10.6 -│ │ ├── rasn v0.10.6 (*) -│ │ └── rasn-pkix v0.10.6 -│ │ └── rasn v0.10.6 (*) -│ ├── rasn-pkix v0.10.6 (*) -│ ├── reqwest v0.12.5 (*) -│ ├── rev_lines v0.3.0 -│ │ └── thiserror v1.0.61 (*) -│ ├── rsa v0.9.6 (*) -│ ├── sequoia-openpgp v1.20.0 -│ │ ├── aes v0.8.4 (*) -│ │ ├── aes-gcm v0.10.3 (*) -│ │ ├── anyhow v1.0.86 -│ │ ├── base64 v0.22.1 -│ │ ├── block-padding v0.3.3 (*) -│ │ ├── blowfish v0.9.1 -│ │ │ ├── byteorder v1.5.0 -│ │ │ └── cipher v0.4.4 (*) -│ │ ├── buffered-reader v1.3.1 -│ │ │ ├── lazy_static v1.4.0 (*) -│ │ │ └── libc v0.2.155 -│ │ ├── camellia v0.1.0 -│ │ │ ├── byteorder v1.5.0 -│ │ │ └── cipher v0.4.4 (*) -│ │ ├── cast5 v0.11.1 -│ │ │ └── cipher v0.4.4 (*) -│ │ ├── cfb-mode v0.8.2 -│ │ │ └── cipher v0.4.4 (*) -│ │ ├── cipher v0.4.4 (*) -│ │ ├── des v0.8.1 -│ │ │ └── cipher v0.4.4 (*) -│ │ ├── digest v0.10.7 (*) -│ │ ├── dsa v0.6.3 -│ │ │ ├── digest v0.10.7 (*) -│ │ │ ├── num-bigint-dig v0.8.4 (*) -│ │ │ ├── num-traits v0.2.19 (*) -│ │ │ ├── pkcs8 v0.10.2 (*) -│ │ │ ├── rfc6979 v0.4.0 (*) -│ │ │ ├── sha2 v0.10.8 (*) -│ │ │ ├── signature v2.2.0 (*) -│ │ │ └── zeroize v1.8.1 (*) -│ │ ├── dyn-clone v1.0.17 -│ │ ├── eax v0.5.0 -│ │ │ ├── aead v0.5.2 (*) -│ │ │ ├── cipher v0.4.4 (*) -│ │ │ ├── cmac v0.7.2 -│ │ │ │ ├── cipher v0.4.4 (*) -│ │ │ │ ├── dbl v0.3.2 -│ │ │ │ │ └── generic-array v0.14.7 (*) -│ │ │ │ └── digest v0.10.7 (*) -│ │ │ ├── ctr v0.9.2 (*) -│ │ │ └── subtle v2.5.0 -│ │ ├── ecb v0.1.2 -│ │ │ └── cipher v0.4.4 (*) -│ │ ├── ecdsa v0.16.9 (*) -│ │ ├── ed25519 v2.2.3 -│ │ │ └── signature v2.2.0 (*) -│ │ ├── ed25519-dalek v2.1.1 -│ │ │ ├── curve25519-dalek v4.1.3 -│ │ │ │ ├── cfg-if v1.0.0 -│ │ │ │ ├── digest v0.10.7 (*) -│ │ │ │ ├── subtle v2.5.0 -│ │ │ │ └── zeroize v1.8.1 (*) -│ │ │ │ [build-dependencies] -│ │ │ │ └── rustc_version v0.4.0 -│ │ │ │ └── semver v1.0.23 -│ │ │ ├── ed25519 v2.2.3 (*) -│ │ │ ├── rand_core v0.6.4 (*) -│ │ │ ├── sha2 v0.10.8 (*) -│ │ │ ├── subtle v2.5.0 -│ │ │ └── zeroize v1.8.1 (*) -│ │ ├── idea v0.5.1 -│ │ │ └── cipher v0.4.4 (*) -│ │ ├── idna v0.5.0 (*) -│ │ ├── lalrpop-util v0.20.2 -│ │ ├── lazy_static v1.4.0 (*) -│ │ ├── libc v0.2.155 -│ │ ├── md-5 v0.10.6 (*) -│ │ ├── memsec v0.6.3 -│ │ ├── num-bigint-dig v0.8.4 (*) -│ │ ├── once_cell v1.19.0 -│ │ ├── p256 v0.13.2 (*) -│ │ ├── rand v0.8.5 (*) -│ │ ├── rand_core v0.6.4 (*) -│ │ ├── regex v1.10.5 (*) -│ │ ├── regex-syntax v0.8.4 -│ │ ├── ripemd v0.1.3 -│ │ │ └── digest v0.10.7 (*) -│ │ ├── rsa v0.9.6 (*) -│ │ ├── sha1collisiondetection v0.3.4 -│ │ │ ├── const-oid v0.9.6 -│ │ │ ├── digest v0.10.7 (*) -│ │ │ └── generic-array v1.0.0 -│ │ │ └── typenum v1.17.0 -│ │ ├── sha2 v0.10.8 (*) -│ │ ├── thiserror v1.0.61 (*) -│ │ ├── twofish v0.7.1 -│ │ │ └── cipher v0.4.4 (*) -│ │ ├── typenum v1.17.0 -│ │ ├── x25519-dalek v2.0.1 -│ │ │ ├── curve25519-dalek v4.1.3 (*) -│ │ │ ├── rand_core v0.6.4 (*) -│ │ │ └── zeroize v1.8.1 (*) -│ │ └── xxhash-rust v0.8.10 -│ │ [build-dependencies] -│ │ └── lalrpop v0.20.2 -│ │ ├── ascii-canvas v3.0.0 -│ │ │ └── term v0.7.0 -│ │ │ └── dirs-next v2.0.0 -│ │ │ ├── cfg-if v1.0.0 -│ │ │ └── dirs-sys-next v0.1.2 -│ │ │ └── libc v0.2.155 -│ │ ├── bit-set v0.5.3 -│ │ │ └── bit-vec v0.6.3 -│ │ ├── ena v0.14.3 -│ │ │ └── log v0.4.21 -│ │ ├── itertools v0.11.0 -│ │ │ └── either v1.12.0 -│ │ ├── lalrpop-util v0.20.2 -│ │ ├── petgraph v0.6.5 -│ │ │ ├── fixedbitset v0.4.2 -│ │ │ └── indexmap v2.2.6 (*) -│ │ ├── regex v1.10.5 (*) -│ │ ├── regex-syntax v0.8.4 -│ │ ├── string_cache v0.8.7 -│ │ │ ├── new_debug_unreachable v1.0.6 -│ │ │ ├── once_cell v1.19.0 -│ │ │ ├── parking_lot v0.12.3 (*) -│ │ │ ├── phf_shared v0.10.0 -│ │ │ │ └── siphasher v0.3.11 -│ │ │ └── precomputed-hash v0.1.1 -│ │ ├── term v0.7.0 (*) -│ │ ├── tiny-keccak v2.0.2 (*) -│ │ ├── unicode-xid v0.2.4 -│ │ └── walkdir v2.5.0 -│ │ └── same-file v1.0.6 -│ ├── serde v1.0.203 (*) -│ ├── serde_json v1.0.117 (*) -│ ├── sha1 v0.10.6 (*) -│ ├── sha2 v0.10.8 (*) -│ ├── sieve-rs v0.5.0 (*) -│ ├── smtp v0.8.2 (/Users/me/code/mail-server/crates/smtp) -│ │ ├── ahash v0.8.11 (*) -│ │ ├── bincode v1.3.3 (*) -│ │ ├── blake3 v1.5.1 (*) -│ │ ├── chrono v0.4.38 (*) -│ │ ├── common v0.8.2 (/Users/me/code/mail-server/crates/common) (*) -│ │ ├── dashmap v5.5.3 (*) -│ │ ├── directory v0.8.2 (/Users/me/code/mail-server/crates/directory) (*) -│ │ ├── form_urlencoded v1.2.1 (*) -│ │ ├── http-body-util v0.1.2 (*) -│ │ ├── hyper v1.3.1 (*) -│ │ ├── hyper-util v0.1.5 (*) -│ │ ├── lazy_static v1.4.0 (*) -│ │ ├── lru-cache v0.1.2 (*) -│ │ ├── mail-auth v0.4.3 (*) -│ │ ├── mail-builder v0.3.1 (*) -│ │ ├── mail-parser v0.9.3 (*) -│ │ ├── mail-send v0.4.8 (*) -│ │ ├── md5 v0.7.0 -│ │ ├── nlp v0.8.2 (/Users/me/code/mail-server/crates/nlp) (*) -│ │ ├── num_cpus v1.16.0 (*) -│ │ ├── parking_lot v0.12.3 (*) -│ │ ├── rand v0.8.5 (*) -│ │ ├── rayon v1.10.0 (*) -│ │ ├── regex v1.10.5 (*) -│ │ ├── reqwest v0.12.5 (*) -│ │ ├── rustls v0.22.4 (*) -│ │ ├── rustls-pemfile v2.1.2 (*) -│ │ ├── rustls-pki-types v1.7.0 -│ │ ├── serde v1.0.203 (*) -│ │ ├── serde_json v1.0.117 (*) -│ │ ├── sha1 v0.10.6 (*) -│ │ ├── sha2 v0.10.8 (*) -│ │ ├── sieve-rs v0.5.0 (*) -│ │ ├── smtp-proto v0.1.5 (*) -│ │ ├── store v0.8.2 (/Users/me/code/mail-server/crates/store) (*) -│ │ ├── tokio v1.38.0 (*) -│ │ ├── tokio-rustls v0.25.0 (*) -│ │ ├── tracing v0.1.40 (*) -│ │ ├── utils v0.8.2 (/Users/me/code/mail-server/crates/utils) (*) -│ │ ├── webpki-roots v0.26.3 (*) -│ │ └── x509-parser v0.16.0 (*) -│ ├── smtp-proto v0.1.5 (*) -│ ├── store v0.8.2 (/Users/me/code/mail-server/crates/store) (*) -│ ├── tokio v1.38.0 (*) -│ ├── tokio-tungstenite v0.21.0 -│ │ ├── futures-util v0.3.30 (*) -│ │ ├── log v0.4.21 -│ │ ├── rustls v0.22.4 (*) -│ │ ├── rustls-pki-types v1.7.0 -│ │ ├── tokio v1.38.0 (*) -│ │ ├── tokio-rustls v0.25.0 (*) -│ │ ├── tungstenite v0.21.0 -│ │ │ ├── byteorder v1.5.0 -│ │ │ ├── bytes v1.6.0 -│ │ │ ├── data-encoding v2.6.0 -│ │ │ ├── http v1.1.0 (*) -│ │ │ ├── httparse v1.9.4 -│ │ │ ├── log v0.4.21 -│ │ │ ├── rand v0.8.5 (*) -│ │ │ ├── rustls v0.22.4 (*) -│ │ │ ├── rustls-pki-types v1.7.0 -│ │ │ ├── sha1 v0.10.6 (*) -│ │ │ ├── thiserror v1.0.61 (*) -│ │ │ ├── url v2.5.2 (*) -│ │ │ └── utf-8 v0.7.6 -│ │ └── webpki-roots v0.26.3 (*) -│ ├── tracing v0.1.40 (*) -│ ├── tungstenite v0.21.0 (*) -│ ├── utils v0.8.2 (/Users/me/code/mail-server/crates/utils) (*) -│ └── x509-parser v0.16.0 (*) -├── jmap_proto v0.1.0 (/Users/me/code/mail-server/crates/jmap-proto) (*) -├── mail-parser v0.9.3 (*) -├── mail-send v0.4.8 (*) -├── md5 v0.7.0 -├── nlp v0.8.2 (/Users/me/code/mail-server/crates/nlp) (*) -├── parking_lot v0.12.3 (*) -├── rand v0.8.5 (*) -├── rustls v0.22.4 (*) -├── rustls-pemfile v2.1.2 (*) -├── store v0.8.2 (/Users/me/code/mail-server/crates/store) (*) -├── tokio v1.38.0 (*) -├── tokio-rustls v0.25.0 (*) -├── tracing v0.1.40 (*) -└── utils v0.8.2 (/Users/me/code/mail-server/crates/utils) (*) - -imap_proto v0.1.0 (/Users/me/code/mail-server/crates/imap-proto) (*) - -jmap v0.8.2 (/Users/me/code/mail-server/crates/jmap) (*) - -jmap_proto v0.1.0 (/Users/me/code/mail-server/crates/jmap-proto) (*) - -mail-server v0.8.2 (/Users/me/code/mail-server/crates/main) -├── common v0.8.2 (/Users/me/code/mail-server/crates/common) (*) -├── directory v0.8.2 (/Users/me/code/mail-server/crates/directory) (*) -├── imap v0.8.2 (/Users/me/code/mail-server/crates/imap) (*) -├── jemallocator v0.5.4 -│ ├── jemalloc-sys v0.5.4+5.3.0-patched -│ │ └── libc v0.2.155 -│ │ [build-dependencies] -│ │ └── cc v1.0.99 (*) -│ └── libc v0.2.155 -├── jmap v0.8.2 (/Users/me/code/mail-server/crates/jmap) (*) -├── jmap_proto v0.1.0 (/Users/me/code/mail-server/crates/jmap-proto) (*) -├── managesieve v0.8.2 (/Users/me/code/mail-server/crates/managesieve) -│ ├── ahash v0.8.11 (*) -│ ├── bincode v1.3.3 (*) -│ ├── common v0.8.2 (/Users/me/code/mail-server/crates/common) (*) -│ ├── directory v0.8.2 (/Users/me/code/mail-server/crates/directory) (*) -│ ├── imap v0.8.2 (/Users/me/code/mail-server/crates/imap) (*) -│ ├── imap_proto v0.1.0 (/Users/me/code/mail-server/crates/imap-proto) (*) -│ ├── jmap v0.8.2 (/Users/me/code/mail-server/crates/jmap) (*) -│ ├── jmap_proto v0.1.0 (/Users/me/code/mail-server/crates/jmap-proto) (*) -│ ├── mail-parser v0.9.3 (*) -│ ├── mail-send v0.4.8 (*) -│ ├── md5 v0.7.0 -│ ├── parking_lot v0.12.3 (*) -│ ├── rustls v0.22.4 (*) -│ ├── rustls-pemfile v2.1.2 (*) -│ ├── sieve-rs v0.5.0 (*) -│ ├── store v0.8.2 (/Users/me/code/mail-server/crates/store) (*) -│ ├── tokio v1.38.0 (*) -│ ├── tokio-rustls v0.25.0 (*) -│ ├── tracing v0.1.40 (*) -│ └── utils v0.8.2 (/Users/me/code/mail-server/crates/utils) (*) -├── pop3 v0.8.2 (/Users/me/code/mail-server/crates/pop3) -│ ├── common v0.8.2 (/Users/me/code/mail-server/crates/common) (*) -│ ├── imap v0.8.2 (/Users/me/code/mail-server/crates/imap) (*) -│ ├── jmap v0.8.2 (/Users/me/code/mail-server/crates/jmap) (*) -│ ├── jmap_proto v0.1.0 (/Users/me/code/mail-server/crates/jmap-proto) (*) -│ ├── mail-parser v0.9.3 (*) -│ ├── mail-send v0.4.8 (*) -│ ├── rustls v0.22.4 (*) -│ ├── store v0.8.2 (/Users/me/code/mail-server/crates/store) (*) -│ ├── tokio v1.38.0 (*) -│ ├── tokio-rustls v0.25.0 (*) -│ ├── tracing v0.1.40 (*) -│ └── utils v0.8.2 (/Users/me/code/mail-server/crates/utils) (*) -├── smtp v0.8.2 (/Users/me/code/mail-server/crates/smtp) (*) -├── store v0.8.2 (/Users/me/code/mail-server/crates/store) (*) -├── tokio v1.38.0 (*) -├── tracing v0.1.40 (*) -└── utils v0.8.2 (/Users/me/code/mail-server/crates/utils) (*) - -managesieve v0.8.2 (/Users/me/code/mail-server/crates/managesieve) (*) - -nlp v0.8.2 (/Users/me/code/mail-server/crates/nlp) (*) - -pop3 v0.8.2 (/Users/me/code/mail-server/crates/pop3) (*) - -smtp v0.8.2 (/Users/me/code/mail-server/crates/smtp) (*) - -stalwart-cli v0.8.2 (/Users/me/code/mail-server/crates/cli) -├── clap v4.5.7 -│ ├── clap_builder v4.5.7 -│ │ ├── anstream v0.6.14 -│ │ │ ├── anstyle v1.0.7 -│ │ │ ├── anstyle-parse v0.2.4 -│ │ │ │ └── utf8parse v0.2.2 -│ │ │ ├── anstyle-query v1.1.0 -│ │ │ ├── colorchoice v1.0.1 -│ │ │ ├── is_terminal_polyfill v1.70.0 -│ │ │ └── utf8parse v0.2.2 -│ │ ├── anstyle v1.0.7 -│ │ ├── clap_lex v0.7.1 -│ │ └── strsim v0.11.1 -│ └── clap_derive v4.5.5 (proc-macro) -│ ├── heck v0.5.0 -│ ├── proc-macro2 v1.0.85 (*) -│ ├── quote v1.0.36 (*) -│ └── syn v2.0.66 (*) -├── console v0.15.8 -│ ├── lazy_static v1.4.0 (*) -│ ├── libc v0.2.155 -│ └── unicode-width v0.1.13 -├── csv v1.3.0 -│ ├── csv-core v0.1.11 -│ │ └── memchr v2.7.4 -│ ├── itoa v1.0.11 -│ ├── ryu v1.0.18 -│ └── serde v1.0.203 (*) -├── form_urlencoded v1.2.1 (*) -├── futures v0.3.30 (*) -├── human-size v0.4.3 -├── indicatif v0.17.8 -│ ├── console v0.15.8 (*) -│ ├── number_prefix v0.4.0 -│ ├── portable-atomic v1.6.0 -│ └── unicode-width v0.1.13 -├── jmap-client v0.3.2 -│ ├── ahash v0.8.11 (*) -│ ├── async-stream v0.3.5 (*) -│ ├── base64 v0.13.1 -│ ├── chrono v0.4.38 (*) -│ ├── futures-util v0.3.30 (*) -│ ├── maybe-async v0.2.10 (proc-macro) (*) -│ ├── parking_lot v0.12.3 (*) -│ ├── reqwest v0.11.27 (*) -│ ├── rustls v0.22.4 (*) -│ ├── rustls-pki-types v1.7.0 -│ ├── serde v1.0.203 (*) -│ ├── serde_json v1.0.117 (*) -│ ├── tokio v1.38.0 (*) -│ └── tokio-tungstenite v0.21.0 (*) -├── mail-auth v0.4.3 (*) -├── mail-parser v0.9.3 (*) -├── num_cpus v1.16.0 (*) -├── prettytable-rs v0.10.0 -│ ├── csv v1.3.0 (*) -│ ├── encode_unicode v1.0.0 -│ ├── is-terminal v0.4.12 -│ │ └── libc v0.2.155 -│ ├── lazy_static v1.4.0 (*) -│ ├── term v0.7.0 (*) -│ └── unicode-width v0.1.13 -├── pwhash v1.0.0 (*) -├── rand v0.8.5 (*) -├── reqwest v0.12.5 (*) -├── rpassword v7.3.1 -│ ├── libc v0.2.155 -│ └── rtoolbox v0.0.2 -│ └── libc v0.2.155 -├── serde v1.0.203 (*) -├── serde_json v1.0.117 (*) -└── tokio v1.38.0 (*) - -store v0.8.2 (/Users/me/code/mail-server/crates/store) (*) - -tests v0.1.0 (/Users/me/code/mail-server/tests) -└── jemallocator v0.5.4 (*) -[dev-dependencies] -├── ahash v0.8.11 (*) -├── async-trait v0.1.80 (proc-macro) (*) -├── base64 v0.22.1 -├── bytes v1.6.0 -├── chrono v0.4.38 (*) -├── common v0.8.2 (/Users/me/code/mail-server/crates/common) (*) -├── csv v1.3.0 (*) -├── dashmap v5.5.3 (*) -├── directory v0.8.2 (/Users/me/code/mail-server/crates/directory) (*) -├── flate2 v1.0.30 (*) -├── futures v0.3.30 (*) -├── http-body-util v0.1.2 (*) -├── hyper v1.3.1 (*) -├── hyper-util v0.1.5 (*) -├── imap v0.8.2 (/Users/me/code/mail-server/crates/imap) (*) -├── imap_proto v0.1.0 (/Users/me/code/mail-server/crates/imap-proto) (*) -├── jmap v0.8.2 (/Users/me/code/mail-server/crates/jmap) (*) -├── jmap-client v0.3.2 (*) -├── jmap_proto v0.1.0 (/Users/me/code/mail-server/crates/jmap-proto) (*) -├── mail-auth v0.4.3 (*) -├── mail-parser v0.9.3 (*) -├── mail-send v0.4.8 (*) -├── managesieve v0.8.2 (/Users/me/code/mail-server/crates/managesieve) (*) -├── nlp v0.8.2 (/Users/me/code/mail-server/crates/nlp) (*) -├── num_cpus v1.16.0 (*) -├── pop3 v0.8.2 (/Users/me/code/mail-server/crates/pop3) (*) -├── rayon v1.10.0 (*) -├── reqwest v0.12.5 (*) -├── ring v0.17.8 (*) -├── rustls v0.22.4 (*) -├── rustls-pemfile v2.1.2 (*) -├── rustls-pki-types v1.7.0 -├── serde v1.0.203 (*) -├── serde_json v1.0.117 (*) -├── serial_test v3.1.1 -│ ├── futures v0.3.30 (*) -│ ├── log v0.4.21 -│ ├── once_cell v1.19.0 -│ ├── parking_lot v0.12.3 (*) -│ ├── scc v2.1.1 -│ │ └── sdd v0.2.0 -│ └── serial_test_derive v3.1.1 (proc-macro) -│ ├── proc-macro2 v1.0.85 (*) -│ ├── quote v1.0.36 (*) -│ └── syn v2.0.66 (*) -├── sieve-rs v0.5.0 (*) -├── smtp v0.8.2 (/Users/me/code/mail-server/crates/smtp) (*) -├── smtp-proto v0.1.5 (*) -├── store v0.8.2 (/Users/me/code/mail-server/crates/store) (*) -├── tokio v1.38.0 (*) -├── tokio-rustls v0.25.0 (*) -├── tracing v0.1.40 (*) -├── tracing-subscriber v0.3.18 (*) -└── utils v0.8.2 (/Users/me/code/mail-server/crates/utils) (*) - -utils v0.8.2 (/Users/me/code/mail-server/crates/utils) (*) diff --git a/tests/Cargo.toml b/tests/Cargo.toml index 3fe5e529..45120716 100644 --- a/tests/Cargo.toml +++ b/tests/Cargo.toml @@ -50,6 +50,7 @@ tracing-subscriber = { version = "0.3", features = ["env-filter"] } reqwest = { version = "0.12", default-features = false, features = ["rustls-tls-webpki-roots", "multipart", "http2"]} bytes = "1.4.0" futures = "0.3" +ece = "2.2" hyper = { version = "1.0.1", features = ["server", "http1", "http2"] } hyper-util = { version = "0.1.1", features = ["tokio"] } http-body-util = "0.1.0" diff --git a/tests/src/jmap/push_subscription.rs b/tests/src/jmap/push_subscription.rs index ee1741be..1d41f176 100644 --- a/tests/src/jmap/push_subscription.rs +++ b/tests/src/jmap/push_subscription.rs @@ -29,25 +29,20 @@ use std::{ time::Duration, }; -#[cfg(feature = "test_push_encryption")] use base64::{engine::general_purpose, Engine}; use common::{config::server::Servers, listener::SessionData, Core}; use directory::backend::internal::manage::ManageDirectory; -#[cfg(feature = "test_push_encryption")] use ece::EcKeyComponents; -#[cfg(feature = "test_push_encryption")] -use hyper::header::CONTENT_ENCODING; -use hyper::{body, server::conn::http1, service::service_fn, StatusCode}; +use hyper::{body, header::CONTENT_ENCODING, server::conn::http1, service::service_fn, StatusCode}; use hyper_util::rt::TokioIo; -use jmap::api::{ - http::{fetch_body, ToHttpResponse}, - HtmlResponse, StateChangeResponse, +use jmap::{ + api::{ + http::{fetch_body, ToHttpResponse}, + HtmlResponse, StateChangeResponse, + }, + push::ece::ece_encrypt, }; - -#[cfg(feature = "test_push_encryption")] -use jmap_client::push_subscription::Keys; - -use jmap_client::mailbox::Role; +use jmap_client::{mailbox::Role, push_subscription::Keys}; use jmap_proto::types::{id::Id, type_state::DataType}; use store::ahash::AHashSet; @@ -106,17 +101,12 @@ pub async fn test(params: &mut JMAPTest) { let (event_tx, mut event_rx) = mpsc::channel::(100); // Create subscription keys - #[cfg(feature = "test_push_encryption")] let (keypair, auth_secret) = ece::generate_keypair_and_auth_secret().unwrap(); - #[cfg(feature = "test_push_encryption")] let pubkey = keypair.pub_as_raw().unwrap(); - #[cfg(feature = "test_push_encryption")] let keys = Keys::new(&pubkey, &auth_secret); let push_server = Arc::new(PushServer { - #[cfg(feature = "test_push_encryption")] keypair: keypair.raw_components().unwrap(), - #[cfg(feature = "test_push_encryption")] auth_secret: auth_secret.to_vec(), tx: event_tx, fail_requests: false.into(), @@ -195,10 +185,7 @@ pub async fn test(params: &mut JMAPTest) { .push_subscription_create( "123", "https://127.0.0.1:9000/push?skip_checks=true", // skip_checks only works in cfg(test) - #[cfg(feature = "test_push_encryption")] keys.into(), - #[cfg(not(feature = "test_push_encryption"))] - None, ) .await .unwrap() @@ -262,9 +249,7 @@ impl From> for SessionManager { } } pub struct PushServer { - #[cfg(feature = "test_push_encryption")] keypair: EcKeyComponents, - #[cfg(feature = "test_push_encryption")] auth_secret: Vec, tx: mpsc::Sender, fail_requests: AtomicBool, @@ -331,7 +316,6 @@ impl common::listener::SessionManager for SessionManager { ) .into_http_response()); } - #[cfg(feature = "test_push_encryption")] let is_encrypted = req .headers() .get(CONTENT_ENCODING) @@ -339,7 +323,6 @@ impl common::listener::SessionManager for SessionManager { encoding.to_str().unwrap() == "aes128gcm" }); let body = fetch_body(&mut req, 1024 * 1024).await.unwrap(); - #[cfg(feature = "test_push_encryption")] let message = serde_json::from_slice::(&if is_encrypted { ece::decrypt( &push.keypair, @@ -351,8 +334,6 @@ impl common::listener::SessionManager for SessionManager { body }) .unwrap(); - #[cfg(not(feature = "test_push_encryption"))] - let message = serde_json::from_slice::(&body).unwrap(); //println!("Push received ({}): {:?}", is_encrypted, message); @@ -410,7 +391,6 @@ async fn assert_state(event_rx: &mut mpsc::Receiver, id: &Id, state ); } -#[cfg(feature = "test_push_encryption")] #[test] fn ece_roundtrip() { for len in [1, 2, 5, 16, 256, 1024, 2048, 4096, 1024 * 1024] { @@ -419,7 +399,7 @@ fn ece_roundtrip() { let bytes: Vec = (0..len).map(|_| store::rand::random::()).collect(); let encrypted_bytes = - push::ece::ece_encrypt(&keypair.pub_as_raw().unwrap(), &auth_secret, &bytes).unwrap(); + ece_encrypt(&keypair.pub_as_raw().unwrap(), &auth_secret, &bytes).unwrap(); let decrypted_bytes = ece::decrypt( &keypair.raw_components().unwrap(),