-
Notifications
You must be signed in to change notification settings - Fork 2
/
Cargo.toml
118 lines (106 loc) · 3.34 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
[package]
name = "crymap"
version = "2.0.0"
authors = ["Jason Lingle <jason@lin.gl>"]
license = "GPL-3.0"
edition = "2021"
readme = "README.md"
repository = "https://github.com/altsysrq/crymap"
homepage = "https://altsysrq.github.io/crymap/index.html"
keywords = ["imap", "lmtp"]
exclude = ["/gen-*.sh", "/readme-*.md", "book", "*.org"]
description = "A simple, secure IMAP server with encrypted data at rest"
[dependencies]
# Newer versions of base64 have a substantially inferior API in exchange for no
# improvements useful to crymap.
base64 = "0.12"
bitflags = "2.4.1"
byteorder = "1.5.0"
clap = { version = "2.33", default-features = false }
crossbeam = "0.7"
encoding_rs = "0.8.33"
# Using the zlib backend and not miniz_oxide is a hard requirement currently
# because with miniz_oxide, it sometimes blocks for more data when a full frame
# is available. This is reproduceable by connecting thunderbird and doing a
# bulk copy from another IMAP server.
# TODO Investigate more so we can file a bug report with whichever repo is
# causing the problem here.
flate2 = { version = "1.0", default-features = false, features = ["zlib"] }
futures = "0.3.29"
hickory-resolver = "0.24.0"
itertools = "0.12.0"
lazy_static = "1.4"
log = "0.4.8"
memchr = "2.6.4"
nom = { version = "7.1.3" }
num_cpus = "1.13"
openssl = "0.10.60"
rand = "0.8.5"
regex = "1.10.2"
rpassword = "7.3.1"
rust-argon2 = "0.8"
secstr = "0.5.1"
serde = { version = "<=1.0.171", features = ["derive"] }
serde_bytes = "0.11"
serde_cbor = "0.11"
serde_repr = "0.1"
structopt = { version = "0.3.15", default-features = false }
syslog = "5.0"
tempfile = "3.8.1"
thiserror = "1.0"
tiny-keccak = { version = "2.0", features = ["sha3", "kmac"] }
toml = "0.5"
walkdir = "2.4.0"
zstd = "0.13.0"
libsqlite3-sys = { version = "0.27.0", features = ["bundled"] }
rusqlite = { version = "0.30.0", features = ["bundled"] }
[dependencies.chrono]
version = "0.4.31"
default-features = false
features = [ "std", "clock", "serde" ]
[dependencies.log4rs]
version = "1.2.0"
default-features = false
features = [
"console_appender",
"file_appender",
"rolling_file_appender",
"compound_policy",
"delete_roller",
"fixed_window_roller",
"size_trigger",
"threshold_filter",
"toml_format",
"config_parsing",
]
[dependencies.nix]
version = "0.27.1"
features = [ "event", "fs", "hostname", "inotify", "net", "poll", "process", "user" ]
[dependencies.tokio]
version = "1.35.1"
default-features = false
# We deliberately exclude things like `fs` and `io-std` which cause tokio to
# spin up a thread pool. Filesystem operations are done synchronously, even
# within the async context. stdio operations used for networking are done by
# manually implementing the async interfaces by hand on the raw file
# descriptors.
features = [ "rt", "net", "time", "macros", "sync", "io-util" ]
[dev-dependencies]
proptest = "0.10"
rayon = "1.3"
# rust-argon2 and openssl can be quite slow without optimisations. We don't
# need to debug them, so optimise even in dev/test builds.
[profile.dev.package.rust-argon2]
opt-level = 3
[profile.dev.package.openssl]
opt-level = 3
[profile.dev.package.tiny-keccak]
opt-level = 3
[profile.release]
panic = "abort"
[features]
# Enable tooling which is mainly useful for the development of Crymap.
dev-tools = []
# Build and run tests that require a live network. This does not change the
# non-test build.
live-network-tests = []