summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormdecimus <mauro@stalw.art>2024-06-22 10:22:09 +0200
committermdecimus <mauro@stalw.art>2024-06-22 10:22:09 +0200
commitb357bbcba87b148769c584082cfaeb576552d2de (patch)
tree2c588be99b67265c10a93d64bb8515c70df34759
parenta9a3925e882f1b669a4156406a982bf9e6bd29ca (diff)
Removed ece dev dependency
-rw-r--r--Cargo.lock128
-rw-r--r--crates/jmap/Cargo.toml3
-rw-r--r--pepe.txt2257
-rw-r--r--tests/Cargo.toml1
-rw-r--r--tests/src/jmap/push_subscription.rs38
5 files changed, 2340 insertions, 87 deletions
diff --git a/Cargo.lock b/Cargo.lock
index c3b465d5..aae2b842 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -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(),