continuwuity/src/main/Cargo.toml
Jason Volk 9bb52cb3ec add missing dev_release_log_level feature projection
Signed-off-by: Jason Volk <jason@zemos.net>
2024-06-06 18:21:40 +00:00

198 lines
5 KiB
TOML

[package]
# TODO: when can we rename to conduwuit?
name = "conduit"
default-run = "conduit"
authors.workspace = true
categories.workspace = true
description.workspace = true
edition.workspace = true
homepage.workspace = true
keywords.workspace = true
license.workspace = true
readme.workspace = true
repository.workspace = true
rust-version.workspace = true
version.workspace = true
metadata.crane.workspace = true
[package.metadata.deb]
name = "conduwuit"
maintainer = "strawberry <strawberry@puppygock.gay>"
copyright = "2024, strawberry <strawberry@puppygock.gay>"
license-file = ["../../LICENSE", "3"]
depends = "$auto, ca-certificates"
extended-description = """\
a cool hard fork of Conduit, a Matrix homeserver written in Rust"""
section = "net"
priority = "optional"
conf-files = ["/etc/conduwuit/conduwuit.toml"]
maintainer-scripts = "../../debian/"
systemd-units = { unit-name = "conduwuit", start = false }
assets = [
["../../debian/README.md", "usr/share/doc/conduwuit/README.Debian", "644"],
["../../README.md", "usr/share/doc/conduwuit/", "644"],
["../../target/release/conduwuit", "usr/sbin/conduwuit", "755"],
["../../conduwuit-example.toml", "etc/conduwuit/conduwuit.toml", "640"],
]
[features]
default = [
"brotli_compression",
"element_hacks",
"gzip_compression",
"io_uring",
"jemalloc",
"release_max_log_level",
"rocksdb",
"sentry_telemetry",
"systemd",
"zstd_compression",
]
axum_dual_protocol = [
"conduit-router/axum_dual_protocol",
]
brotli_compression = [
"conduit-api/brotli_compression",
"conduit-core/brotli_compression",
"conduit-router/brotli_compression",
"conduit-service/brotli_compression",
]
dev_release_log_level = [
"conduit-admin/dev_release_log_level",
"conduit-api/dev_release_log_level",
"conduit-core/dev_release_log_level",
"conduit-database/dev_release_log_level",
"conduit-router/dev_release_log_level",
"conduit-service/dev_release_log_level",
]
element_hacks = [
"conduit-api/element_hacks",
"conduit-service/element_hacks",
]
gzip_compression = [
"conduit-api/gzip_compression",
"conduit-router/gzip_compression",
"conduit-service/gzip_compression",
]
hardened_malloc = [
"conduit-core/hardened_malloc",
]
io_uring = [
"conduit-admin/io_uring",
"conduit-core/io_uring",
"conduit-database/io_uring",
]
jemalloc = [
"conduit-admin/jemalloc",
"conduit-core/jemalloc",
"conduit-database/jemalloc",
]
jemalloc_prof = [
"conduit-core/jemalloc_prof",
]
perf_measurements = [
"dep:opentelemetry",
"dep:tracing-flame",
"dep:tracing-opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-jaeger",
"conduit-core/perf_measurements",
"conduit-core/sentry_telemetry",
]
# increases performance, reduces build times, and reduces binary size by not compiling or
# genreating code for log level filters that users will generally not use (debug and trace)
release_max_log_level = [
"tracing/max_level_trace",
"tracing/release_max_level_info",
"log/max_level_trace",
"log/release_max_level_info",
"conduit-admin/release_max_log_level",
"conduit-api/release_max_log_level",
"conduit-core/release_max_log_level",
"conduit-database/release_max_log_level",
"conduit-router/release_max_log_level",
"conduit-service/release_max_log_level",
]
rocksdb = [
"conduit-admin/rocksdb",
"conduit-core/rocksdb",
"conduit-database/rocksdb",
]
sentry_telemetry = [
"dep:sentry",
"dep:sentry-tracing",
"dep:sentry-tower",
"conduit-core/sentry_telemetry",
"conduit-router/sentry_telemetry",
]
sha256_media = [
"conduit-service/sha256_media",
]
sqlite = [
"conduit-core/sqlite",
"conduit-database/sqlite",
]
systemd = [
"conduit-router/systemd",
]
# enable the tokio_console server ncompatible with release_max_log_level
tokio_console = [
"dep:console-subscriber",
"tokio/tracing",
]
zstd_compression = [
"conduit-admin/zstd_compression",
"conduit-core/zstd_compression",
"conduit-database/zstd_compression",
"conduit-router/zstd_compression",
]
[dependencies]
conduit-admin.workspace = true
conduit-api.workspace = true
conduit-core.workspace = true
conduit-database.workspace = true
conduit-router.workspace = true
conduit-service.workspace = true
tokio.workspace = true
log.workspace = true
tracing.workspace = true
tracing-subscriber.workspace = true
clap.workspace = true
opentelemetry.workspace = true
opentelemetry.optional = true
tracing-flame.workspace = true
tracing-flame.optional = true
tracing-opentelemetry.workspace = true
tracing-opentelemetry.optional = true
opentelemetry_sdk.workspace = true
opentelemetry_sdk.optional = true
opentelemetry-jaeger.workspace = true
opentelemetry-jaeger.optional = true
sentry.workspace = true
sentry.optional = true
sentry-tracing.workspace = true
sentry-tracing.optional = true
sentry-tower.workspace = true
sentry-tower.optional = true
tokio-metrics.workspace = true
tokio-metrics.optional = true
console-subscriber.workspace = true
console-subscriber.optional = true
[target.'cfg(all(not(target_env = "msvc"), target_os = "linux"))'.dependencies]
hardened_malloc-rs.workspace = true
hardened_malloc-rs.optional = true
[lints]
workspace = true
[[bin]]
name = "conduit"
path = "main.rs"