diff options
author | mdecimus <mauro@stalw.art> | 2024-06-22 10:22:09 +0200 |
---|---|---|
committer | mdecimus <mauro@stalw.art> | 2024-06-22 10:22:09 +0200 |
commit | b357bbcba87b148769c584082cfaeb576552d2de (patch) | |
tree | 2c588be99b67265c10a93d64bb8515c70df34759 | |
parent | a9a3925e882f1b669a4156406a982bf9e6bd29ca (diff) |
Removed ece dev dependency
-rw-r--r-- | Cargo.lock | 128 | ||||
-rw-r--r-- | crates/jmap/Cargo.toml | 3 | ||||
-rw-r--r-- | pepe.txt | 2257 | ||||
-rw-r--r-- | tests/Cargo.toml | 1 | ||||
-rw-r--r-- | tests/src/jmap/push_subscription.rs | 38 |
5 files changed, 2340 insertions, 87 deletions
@@ -278,7 +278,7 @@ checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", "synstructure 0.13.1", ] @@ -301,7 +301,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -325,7 +325,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -347,7 +347,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -358,7 +358,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -551,7 +551,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.66", + "syn 2.0.67", "which", ] @@ -703,7 +703,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", "syn_derive", ] @@ -959,7 +959,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -1325,7 +1325,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -1373,7 +1373,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -1395,7 +1395,7 @@ checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" dependencies = [ "darling_core 0.20.9", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -1546,7 +1546,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -1567,7 +1567,7 @@ dependencies = [ "darling 0.20.9", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -1577,7 +1577,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "206868b8242f27cecce124c19fd88157fbd0dd334df2587f36417bafbc85097b" dependencies = [ "derive_builder_core", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -1668,13 +1668,13 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -1765,24 +1765,6 @@ dependencies = [ ] [[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" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1899,7 +1881,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -2082,7 +2064,7 @@ checksum = "f8db6653cbc621a3810d95d55bd342be3e71181d6df21a4eb29ef986202d3f9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", "try_map", ] @@ -2121,7 +2103,7 @@ checksum = "b0fa992f1656e1707946bbba340ad244f0814009ef8c0118eb7b658395f19a2e" dependencies = [ "frunk_proc_macro_helpers", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -2133,7 +2115,7 @@ dependencies = [ "frunk_core", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -2145,7 +2127,7 @@ dependencies = [ "frunk_core", "frunk_proc_macro_helpers", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -2210,7 +2192,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -2891,7 +2873,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -3165,7 +3147,6 @@ dependencies = [ "common", "dashmap", "directory", - "ece", "form-data", "form_urlencoded", "futures-util", @@ -3324,11 +3305,11 @@ dependencies = [ [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin 0.5.2", + "spin 0.9.8", ] [[package]] @@ -3667,7 +3648,7 @@ checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -3774,7 +3755,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", "termcolor", "thiserror", ] @@ -4090,7 +4071,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -4364,7 +4345,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -4402,7 +4383,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -4534,7 +4515,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -4605,9 +4586,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.85" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] @@ -4632,7 +4613,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -5778,7 +5759,7 @@ checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -5848,7 +5829,7 @@ checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -6247,9 +6228,9 @@ dependencies = [ [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "0d0208408ba0c3df17ed26eb06992cb1a1268d41b2c0e12e65203fbe3972cee5" [[package]] name = "syn" @@ -6264,9 +6245,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.66" +version = "2.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +checksum = "ff8655ed1d86f3af4ee3fd3263786bc14245ad17c4c7e85ba7187fb3ae028c90" dependencies = [ "proc-macro2", "quote", @@ -6282,7 +6263,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -6317,7 +6298,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -6392,7 +6373,6 @@ dependencies = [ "csv", "dashmap", "directory", - "ece", "flate2", "futures", "http-body-util", @@ -6448,7 +6428,7 @@ checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -6573,7 +6553,7 @@ checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -6791,7 +6771,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -7185,7 +7165,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", "wasm-bindgen-shared", ] @@ -7219,7 +7199,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -7652,7 +7632,7 @@ checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", "synstructure 0.13.1", ] @@ -7673,7 +7653,7 @@ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -7693,7 +7673,7 @@ checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", "synstructure 0.13.1", ] @@ -7714,7 +7694,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -7736,7 +7716,7 @@ checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] diff --git a/crates/jmap/Cargo.toml b/crates/jmap/Cargo.toml index 98407e2f..727e4510 100644 --- a/crates/jmap/Cargo.toml +++ b/crates/jmap/Cargo.toml @@ -58,8 +58,5 @@ rev_lines = "0.3.0" x509-parser = "0.16.0" quick-xml = "0.31" -[dev-dependencies] -ece = "2.2" - [features] test_mode = [] diff --git a/pepe.txt b/pepe.txt new file mode 100644 index 00000000..f660e159 --- /dev/null +++ b/pepe.txt @@ -0,0 +1,2257 @@ +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 45120716..3fe5e529 100644 --- a/tests/Cargo.toml +++ b/tests/Cargo.toml @@ -50,7 +50,6 @@ 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 1d41f176..ee1741be 100644 --- a/tests/src/jmap/push_subscription.rs +++ b/tests/src/jmap/push_subscription.rs @@ -29,20 +29,25 @@ 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; -use hyper::{body, header::CONTENT_ENCODING, server::conn::http1, service::service_fn, StatusCode}; +#[cfg(feature = "test_push_encryption")] +use hyper::header::CONTENT_ENCODING; +use hyper::{body, server::conn::http1, service::service_fn, StatusCode}; use hyper_util::rt::TokioIo; -use jmap::{ - api::{ - http::{fetch_body, ToHttpResponse}, - HtmlResponse, StateChangeResponse, - }, - push::ece::ece_encrypt, +use jmap::api::{ + http::{fetch_body, ToHttpResponse}, + HtmlResponse, StateChangeResponse, }; -use jmap_client::{mailbox::Role, push_subscription::Keys}; + +#[cfg(feature = "test_push_encryption")] +use jmap_client::push_subscription::Keys; + +use jmap_client::mailbox::Role; use jmap_proto::types::{id::Id, type_state::DataType}; use store::ahash::AHashSet; @@ -101,12 +106,17 @@ pub async fn test(params: &mut JMAPTest) { let (event_tx, mut event_rx) = mpsc::channel::<PushMessage>(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(), @@ -185,7 +195,10 @@ 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() @@ -249,7 +262,9 @@ impl From<Arc<PushServer>> for SessionManager { } } pub struct PushServer { + #[cfg(feature = "test_push_encryption")] keypair: EcKeyComponents, + #[cfg(feature = "test_push_encryption")] auth_secret: Vec<u8>, tx: mpsc::Sender<PushMessage>, fail_requests: AtomicBool, @@ -316,6 +331,7 @@ impl common::listener::SessionManager for SessionManager { ) .into_http_response()); } + #[cfg(feature = "test_push_encryption")] let is_encrypted = req .headers() .get(CONTENT_ENCODING) @@ -323,6 +339,7 @@ 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::<PushMessage>(&if is_encrypted { ece::decrypt( &push.keypair, @@ -334,6 +351,8 @@ impl common::listener::SessionManager for SessionManager { body }) .unwrap(); + #[cfg(not(feature = "test_push_encryption"))] + let message = serde_json::from_slice::<PushMessage>(&body).unwrap(); //println!("Push received ({}): {:?}", is_encrypted, message); @@ -391,6 +410,7 @@ async fn assert_state(event_rx: &mut mpsc::Receiver<PushMessage>, 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] { @@ -399,7 +419,7 @@ fn ece_roundtrip() { let bytes: Vec<u8> = (0..len).map(|_| store::rand::random::<u8>()).collect(); let encrypted_bytes = - ece_encrypt(&keypair.pub_as_raw().unwrap(), &auth_secret, &bytes).unwrap(); + push::ece::ece_encrypt(&keypair.pub_as_raw().unwrap(), &auth_secret, &bytes).unwrap(); let decrypted_bytes = ece::decrypt( &keypair.raw_components().unwrap(), |