[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 " copyright = "2024, strawberry " 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", ] console = [ "conduit-service/console", ] 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", ] 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"