[package]
name = "tuwunel_router"
categories.workspace = true
description.workspace = true
edition.workspace = true
keywords.workspace = true
license.workspace = true
readme.workspace = true
repository.workspace = true
version.workspace = true

[lib]
path = "mod.rs"
crate-type = [
	"rlib",
#	"dylib",
]

[features]
brotli_compression = [
	"tuwunel-admin/brotli_compression",
	"tuwunel-api/brotli_compression",
	"tuwunel-core/brotli_compression",
	"tuwunel-service/brotli_compression",
	"tower-http/compression-br",
]
bzip2_compression = [
	"tuwunel-admin/bzip2_compression",
	"tuwunel-api/bzip2_compression",
	"tuwunel-service/bzip2_compression",
]
direct_tls = [
	"axum-server/tls-rustls",
	"dep:rustls",
	"dep:axum-server-dual-protocol",
]
gzip_compression = [
	"tuwunel-admin/gzip_compression",
	"tuwunel-api/gzip_compression",
	"tuwunel-core/gzip_compression",
	"tuwunel-service/gzip_compression",
	"tower-http/compression-gzip",
]
io_uring = [
	"tuwunel-admin/io_uring",
	"tuwunel-api/io_uring",
	"tuwunel-service/io_uring",
]
jemalloc = [
	"tuwunel-admin/jemalloc",
	"tuwunel-api/jemalloc",
	"tuwunel-core/jemalloc",
	"tuwunel-service/jemalloc",
]
jemalloc_conf = [
	"tuwunel-admin/jemalloc_conf",
	"tuwunel-api/jemalloc_conf",
	"tuwunel-core/jemalloc_conf",
	"tuwunel-service/jemalloc_conf",
]
jemalloc_prof = [
	"tuwunel-admin/jemalloc_prof",
	"tuwunel-api/jemalloc_prof",
	"tuwunel-core/jemalloc_prof",
	"tuwunel-service/jemalloc_prof",
]
jemalloc_stats = [
	"tuwunel-admin/jemalloc_stats",
	"tuwunel-api/jemalloc_stats",
	"tuwunel-core/jemalloc_stats",
	"tuwunel-service/jemalloc_stats",
]
lz4_compression = [
	"tuwunel-admin/lz4_compression",
	"tuwunel-api/lz4_compression",
	"tuwunel-service/lz4_compression",
]
release_max_log_level = [
	"tuwunel-admin/release_max_log_level",
	"tuwunel-api/release_max_log_level",
	"tuwunel-core/release_max_log_level",
	"tuwunel-service/release_max_log_level",
	"tracing/max_level_trace",
	"tracing/release_max_level_info",
	"log/max_level_trace",
	"log/release_max_level_info",
]
sentry_telemetry = [
	"tuwunel-core/sentry_telemetry",
	"dep:sentry",
	"dep:sentry-tracing",
	"dep:sentry-tower",
]
systemd = [
	"dep:sd-notify",
]
zstd_compression = [
	"tuwunel-api/zstd_compression",
	"tuwunel-core/zstd_compression",
	"tuwunel-service/zstd_compression",
	"tower-http/compression-zstd",
]

[dependencies]
axum-client-ip.workspace = true
axum-server-dual-protocol.workspace = true
axum-server-dual-protocol.optional = true
axum-server.workspace = true
axum.workspace = true
bytes.workspace = true
const-str.workspace = true
ctor.workspace = true
futures.workspace = true
http.workspace = true
http-body-util.workspace = true
hyper.workspace = true
hyper-util.workspace = true
log.workspace = true
ruma.workspace = true
rustls.workspace = true
rustls.optional = true
sentry.optional = true
sentry-tower.optional = true
sentry-tower.workspace = true
sentry-tracing.optional = true
sentry-tracing.workspace = true
sentry.workspace = true
serde_json.workspace = true
tokio.workspace = true
tower.workspace = true
tower-http.workspace = true
tracing.workspace = true
tuwunel-admin.workspace = true
tuwunel-api.workspace = true
tuwunel-core.workspace = true
tuwunel-service.workspace = true

[target.'cfg(all(unix, target_os = "linux"))'.dependencies]
sd-notify.workspace = true
sd-notify.optional = true

[lints]
workspace = true
