We standarized on using `rustls` as a TLS implementation across the monorepo, which is written in Rust and has better ergonomics, integration with the Rust ecosystem, and consistent behavior among platforms. However, the Labrinth Clickhouse client was the last remaining exception to this, using the native, OS-provided TLS implementation, which on Linux is OpenSSL and requires developers and Docker images to install OpenSSL development packages to build Labrinth, in addition to introducing an additional runtime dependency to Labrinth. Let's make the process of building Labrinth slightly simpler by switching such client to `rustls` as well, which results in finally using the same TLS implementation for everything, a simplified build and distribution process, less transitive dependencies, and potentially smaller binaries (since `rustls` was already being pulled in for, e.g., the SMTP client).
137 lines
3.5 KiB
TOML
137 lines
3.5 KiB
TOML
[package]
|
|
name = "labrinth"
|
|
version = "2.7.0"
|
|
authors = ["geometrically <jai@modrinth.com>"]
|
|
edition.workspace = true
|
|
license = "AGPL-3.0"
|
|
|
|
# This seems redundant, but it's necessary for Docker to work
|
|
[[bin]]
|
|
name = "labrinth"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
actix-web.workspace = true
|
|
actix-rt.workspace = true
|
|
actix-multipart.workspace = true
|
|
actix-cors.workspace = true
|
|
actix-ws.workspace = true
|
|
actix-files.workspace = true
|
|
prometheus.workspace = true
|
|
actix-web-prom = { workspace = true, features = ["process"] }
|
|
|
|
tracing.workspace = true
|
|
tracing-actix-web.workspace = true
|
|
console-subscriber.workspace = true
|
|
|
|
tokio = { workspace = true, features = ["sync", "rt-multi-thread"] }
|
|
tokio-stream.workspace = true
|
|
|
|
futures.workspace = true
|
|
futures-util.workspace = true
|
|
async-trait.workspace = true
|
|
dashmap.workspace = true
|
|
paste.workspace = true
|
|
|
|
meilisearch-sdk = { workspace = true, features = ["reqwest"] }
|
|
rust-s3.workspace = true
|
|
reqwest = { workspace = true, features = ["http2", "rustls-tls-webpki-roots", "json", "multipart"] }
|
|
hyper-rustls.workspace = true
|
|
hyper-util.workspace = true
|
|
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json.workspace = true
|
|
serde_with.workspace = true
|
|
chrono = { workspace = true, features = ["serde"] }
|
|
yaserde = { workspace = true, features = ["derive"] }
|
|
|
|
rand.workspace = true
|
|
rand_chacha.workspace = true
|
|
bytes.workspace = true
|
|
base64.workspace = true
|
|
sha1.workspace = true
|
|
sha2.workspace = true
|
|
hmac.workspace = true
|
|
argon2.workspace = true
|
|
murmur2.workspace = true
|
|
bitflags.workspace = true
|
|
hex.workspace = true
|
|
zxcvbn.workspace = true
|
|
totp-rs = { workspace = true, features = ["gen_secret"] }
|
|
|
|
url.workspace = true
|
|
urlencoding.workspace = true
|
|
|
|
zip.workspace = true
|
|
|
|
itertools.workspace = true
|
|
|
|
validator = { workspace = true, features = ["derive"] }
|
|
regex.workspace = true
|
|
censor.workspace = true
|
|
spdx = { workspace = true, features = ["text"] }
|
|
|
|
dotenvy.workspace = true
|
|
thiserror.workspace = true
|
|
either.workspace = true
|
|
|
|
sqlx = { workspace = true, features = [
|
|
"runtime-tokio",
|
|
"tls-rustls-ring",
|
|
"postgres",
|
|
"chrono",
|
|
"macros",
|
|
"migrate",
|
|
"rust_decimal",
|
|
"json",
|
|
] }
|
|
rust_decimal = { workspace = true, features = [
|
|
"serde-with-float",
|
|
"serde-with-str",
|
|
] }
|
|
redis = { workspace = true, features = ["tokio-comp", "ahash", "r2d2"] }
|
|
deadpool-redis.workspace = true
|
|
clickhouse = { workspace = true, features = ["uuid", "time"] }
|
|
uuid = { workspace = true, features = ["v4", "fast-rng", "serde"] }
|
|
|
|
maxminddb.workspace = true
|
|
flate2.workspace = true
|
|
tar.workspace = true
|
|
|
|
sentry.workspace = true
|
|
sentry-actix.workspace = true
|
|
|
|
image = { workspace = true, features = ["avif", "bmp", "dds", "exr", "ff", "gif", "hdr", "ico", "jpeg", "png", "pnm", "qoi", "tga", "tiff", "webp"] }
|
|
color-thief.workspace = true
|
|
webp.workspace = true
|
|
|
|
woothee.workspace = true
|
|
|
|
lettre.workspace = true
|
|
|
|
rust_iso3166.workspace = true
|
|
|
|
async-stripe = { workspace = true, features = ["billing", "checkout", "connect", "webhook-events"] }
|
|
rusty-money.workspace = true
|
|
json-patch.workspace = true
|
|
|
|
ariadne.workspace = true
|
|
|
|
clap = { workspace = true, features = ["derive"] }
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
tikv-jemallocator = { workspace = true, features = ["profiling", "unprefixed_malloc_on_supported_platforms"] }
|
|
tikv-jemalloc-ctl = { workspace = true, features = ["stats"] }
|
|
jemalloc_pprof = { workspace = true, features = ["flamegraph"] }
|
|
|
|
[dev-dependencies]
|
|
actix-http.workspace = true
|
|
|
|
[build-dependencies]
|
|
dotenv-build.workspace = true
|
|
chrono.workspace = true
|
|
iana-time-zone.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|