Files
kumomta/Cargo.toml
T
Wez Furlong 4b12c4ca1c add kumo-address crate for HostAddress and SocketAddress types
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
2024-12-17 09:53:35 -07:00

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" }