mirror of
https://github.com/mailscope/kumomta.git
synced 2026-10-28 09:16:15 +00:00
One frustration I have with the Rust standard library types is that while it has a SocketAddr type, that type doesn't include unix domain addressing like the underlying unix OS does in the underlying system type. I understand why it is that way, it's still a bit of a PITA. Since we want to enable the use of unix domain sockets for outbound LMTP support, our internal addressing type needs to be able to represent a unix domain address. This commit introduces our own HostAddress (equivalent to IpAddr, but not limited to IP addresses) and SocketAddress (equivalent to SockAddr, but not limited to IP sockets) types. The ResolvedAddress type has been cut over from IpAddr to HostAddress and the fan out addressed. This commit does not add support for establishing unix domain connections, it is merely the ability to recognize/report on them. refs: https://github.com/KumoCorp/kumomta/issues/267
203 lines
5.7 KiB
TOML
203 lines
5.7 KiB
TOML
[workspace]
|
|
members = [
|
|
"crates/bounce-classify",
|
|
"crates/cidr-map",
|
|
"crates/domain-map",
|
|
"crates/integration-tests",
|
|
"crates/kcli",
|
|
"crates/kumo-chrono-helper",
|
|
"crates/kumo-prometheus",
|
|
"crates/kumod",
|
|
"crates/mailparsing",
|
|
"crates/mod-uuid",
|
|
"crates/mta-sts",
|
|
"crates/proxy-server",
|
|
"crates/regex-set-map",
|
|
"crates/rfc5321",
|
|
"crates/kumo-spf",
|
|
"crates/spool",
|
|
"crates/spool-util",
|
|
"crates/tailer",
|
|
"crates/throttle",
|
|
"crates/timeq",
|
|
"crates/tls-probe",
|
|
"crates/toml2jsonc",
|
|
"crates/traffic-gen",
|
|
"crates/tsa-daemon",
|
|
"crates/uuid-helper",
|
|
"crates/validate-bounces",
|
|
"crates/validate-shaping",
|
|
"crates/version-info",
|
|
"crates/kumo-dmarc",
|
|
"crates/kumo-template",
|
|
"crates/summarize-memory",
|
|
"crates/kumo-address",
|
|
]
|
|
resolver = "2"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
debug = 1 # include line tables for more meaningful backtraces
|
|
|
|
[workspace.dependencies]
|
|
ahash = "0.8.11"
|
|
amqprs = {version="2.0", features=["tls", "traces"]}
|
|
anyhow = "1.0"
|
|
arc-swap = "1.6"
|
|
async-stream = "0.3"
|
|
async-trait = "0.1"
|
|
axum = "0.7"
|
|
axum-client-ip = "0.6"
|
|
axum-server = "0.7"
|
|
axum-streams = {version="0.19", features=["text"]}
|
|
backtrace = "0.3"
|
|
batch-channel = "0.4.2"
|
|
bitflags = "2.3"
|
|
bitstring = "0.2"
|
|
bytes = "1.0"
|
|
camino = "1.1"
|
|
caps = "0.5"
|
|
cgroups-rs = "0.3"
|
|
charset = "0.1"
|
|
chrono = { version = "0.4.26", default-features = false }
|
|
chrono-tz = {version="0.10", features=["serde"]}
|
|
cidr = {version="0.3", features=["serde", "bitstring"]}
|
|
clap = {version="4.5", features=["derive", "wrap_help"]}
|
|
clap-markdown = "0.1"
|
|
criterion = "0.5"
|
|
crossbeam-queue= "0.3"
|
|
crossbeam-skiplist= "0.1"
|
|
crossterm = { version = "0.27.0", features = ["event-stream"] }
|
|
data-encoding = "2.6"
|
|
data-encoding-macro = "0.1"
|
|
deadpool = {version="0.12", features=["rt_tokio_1"]}
|
|
ed25519-dalek = "2.0"
|
|
env_logger = "0.11"
|
|
fancy-regex = "0.14"
|
|
filenamegen = "0.2.7"
|
|
flume = "0.11"
|
|
foreign-types = "0.3"
|
|
futures = "0.3.28"
|
|
futures-util = "0.3"
|
|
futures-lite = "2.3"
|
|
gcd = "2.3"
|
|
gethostname = "0.5"
|
|
getrandom = "0.2"
|
|
git2 = { version = "0.19", default-features = false }
|
|
hdrhistogram = "7.5"
|
|
hex = "0.4"
|
|
# Be sure to update the link to the docs in docs/reference/kumo.dns/configure_resolver.md
|
|
# to match the version that we are using when you update this dep
|
|
hickory-resolver = "0.24"
|
|
hickory-proto = "0.24"
|
|
hierarchical_hash_wheel_timer = {version="1.2", default-features=false, features=["fx-hash"]}
|
|
human_bytes = "0.4.3"
|
|
humanize-rs = "0.1"
|
|
humantime = "2.1"
|
|
humansize = "2.1"
|
|
incr_stats = "1.0"
|
|
indexmap = "2.2"
|
|
indoc = "2.0.5"
|
|
instant-xml = "0.5"
|
|
intrusive-collections = "0.9.7"
|
|
json_comments = "0.2"
|
|
jwalk = "0.8"
|
|
k9 = "0.12"
|
|
lapin = {version="2.5", default-features=false, features=["native-tls"]}
|
|
lexicmp = "0.1"
|
|
libc = "0.2.139"
|
|
libunbound = {git="https://github.com/KumoCorp/libunbound-rs.git", rev="514258fa097d04236761fff2f97b4221ff4965e0"}
|
|
lipsum = "0.9"
|
|
log = "0.4"
|
|
lru-cache = "0.1"
|
|
mac_address = "1.1"
|
|
mail-builder = "0.2"
|
|
mailparse = "0.14"
|
|
maplit = "1.0"
|
|
map_vec = "0.6"
|
|
memchr = "2.5"
|
|
metrics = "0.24"
|
|
metrics-prometheus = "0.8"
|
|
metrics-tracing-context = "0.17"
|
|
minijinja = {version="2.0.1",features=["loader", "builtins", "json"]}
|
|
minijinja-contrib = {version="2.0.1",features=["datetime", "timezone"]}
|
|
mlua = "0.10"
|
|
nix = "0.28"
|
|
nom = "7.1.0"
|
|
nom_locate = "4.1"
|
|
notify = "7"
|
|
num-format = "0.4.4"
|
|
openssl = { version="=0.10.65" } # pinned; see patch below
|
|
openssl-sys = { version="0.9" }
|
|
ordermap = {version="0.5", features=["serde"]}
|
|
parking_lot = "0.12"
|
|
paste = "1"
|
|
percent-encoding = "2.3"
|
|
pest = "2.7"
|
|
pest_derive = "2.7"
|
|
ppp = "2.2"
|
|
prometheus = "0.13"
|
|
psl = "2.1.46"
|
|
quoted_printable = "0.5"
|
|
rand = "0.8"
|
|
ratatui = { version = "0.26.2", features = ["crossterm", "unstable-widget-ref"] }
|
|
rcgen = "0.13"
|
|
rdkafka = "0.36"
|
|
redis = {version="0.27", features=["cluster", "cluster-async", "connection-manager", "tokio-comp", "tls-native-tls", "tokio-native-tls-comp"]}
|
|
regex = "1.7"
|
|
reqwest = {version="0.12", default-features=false, features=["rustls-tls"]}
|
|
ring = "0.17"
|
|
rocksdb = {version="0.22", features=["jemalloc"]}
|
|
rustls = "0.23"
|
|
rustls-platform-verifier = "0.4"
|
|
self_cell = "1.0"
|
|
serde = {version="1.0", features=["derive"]}
|
|
serde_json = "1.0"
|
|
serde_path_to_error = "0.1"
|
|
serde_with = "3.4"
|
|
serde_yaml = "0.9"
|
|
sha-1 = { version = "0.10", features = ["oid"] }
|
|
sha2 = "0.10"
|
|
slog = "2.7"
|
|
socksv5 = {version="0.3", default-features=false, features=["tokio"]}
|
|
sqlite = "0.36"
|
|
strum = { version = "0.26", features = ["derive"] }
|
|
tabout = "0.3"
|
|
tempfile = "3.10"
|
|
testcontainers-modules = { version = "0.11", default-features = false }
|
|
textwrap = "0.16"
|
|
thiserror = "1"
|
|
tikv-jemallocator = {version="0.5", features=["background_threads", "stats"]}
|
|
tikv-jemalloc-ctl = {version="0.5"}
|
|
tikv-jemalloc-sys = {version="0.5", features=["profiling", "unprefixed_malloc_on_supported_platforms", "stats"]}
|
|
tokio = "1.32"
|
|
tokio-executor-trait = "2.1.0"
|
|
tokio-metrics = "0.3.1"
|
|
tokio-metrics-collector = "0.2.1"
|
|
tokio-openssl = "0.6.4"
|
|
tokio-reactor-trait = "1.1.0"
|
|
tokio-rustls = "0.26"
|
|
tokio-splice = "0.2"
|
|
tokio-tungstenite = "0.24"
|
|
toml = "0.8"
|
|
toml_edit = "0.22"
|
|
tower-http = {version="0.6", features=["trace", "compression-deflate", "compression-gzip"]}
|
|
tracing = "0.1"
|
|
tracing-appender = "0.2"
|
|
tracing-subscriber = {version="0.3", features=["env-filter", "std", "fmt", "json"]}
|
|
utoipa = {version="4", features=["axum_extras", "time", "uuid"]}
|
|
utoipa-rapidoc = { version="4.0", features = ["axum"] }
|
|
url = "2.4"
|
|
uuid = "1.4"
|
|
vaultrs = "0.7"
|
|
walkdir = "2.3"
|
|
which = "7"
|
|
zstd = "0.13"
|
|
zstd-safe = {version="7.0", features=["std"]}
|
|
|
|
[patch.crates-io]
|
|
# Can be removed once dane support is upstreamed
|
|
openssl = { version="0.10.65", git="https://github.com/KumoCorp/rust-openssl.git", branch="dane" }
|
|
# Can be removed once dane support is upstreamed
|
|
openssl-sys = { version="0.9", git="https://github.com/KumoCorp/rust-openssl.git", branch="dane" }
|