diff --git a/Cargo.lock b/Cargo.lock index 71b6cc3f9..b8289b005 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -485,17 +485,19 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.73.2" +version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "787ef8ef523575546b106a58213d6e6b06198a05c2f757258c68a74273670cfa" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ "bitflags", "cexpr", "clang-sys", + "itertools 0.13.0", "proc-macro2", "quote", "regex", "rustc-hash", + "shlex 1.3.0", "shlex", "syn 3.0.10", ] @@ -677,7 +679,7 @@ dependencies = [ "find-msvc-tools", "jobserver", "libc", - "shlex", + "shlex 2.0.1", ] [[package]] @@ -867,9 +869,13 @@ dependencies = [ name = "conduwuit" version = "26.11.0-alpha.1" dependencies = [ + "aws-lc-rs", "clap", + "conduwuit_admin", + "conduwuit_api", "conduwuit_build_metadata", "conduwuit_core", + "conduwuit_database", "conduwuit_macros", "conduwuit_router", "conduwuit_service", @@ -877,6 +883,8 @@ dependencies = [ "const-str", "ctor", "dtor", + "hardened_malloc-rs", + "log", "opentelemetry", "opentelemetry-otlp", "opentelemetry-prometheus", @@ -884,10 +892,13 @@ dependencies = [ "opentelemetry_sdk", "parking_lot", "prometheus", + "reqwest 0.13.5", "rustls", "sentry", + "sentry-tower", "sentry-tracing", "tokio", + "tokio-metrics", "tracing", "tracing-flame", "tracing-journald", @@ -1126,7 +1137,6 @@ dependencies = [ "p256 0.14.0", "rand 0.10.3", "regex", - "reqwest 0.12.28", "reqwest 0.13.5", "resolvematrix", "ruma", @@ -2703,10 +2713,10 @@ dependencies = [ "hyper", "hyper-util", "rustls", - "rustls-native-certs", "tokio", "tokio-rustls", "tower-service", + "webpki-roots", ] [[package]] @@ -2980,6 +2990,15 @@ dependencies = [ "serde", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.14.0" @@ -3250,9 +3269,9 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libz-sys" -version = "1.1.32" +version = "1.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69965d2409bff8c8cea3829009fff66a86f05a0570656552ef70f616e8e4bd85" +checksum = "85bc9657773828b90eeb625adff10eeac83cc21bbfd8e23a03eaa8a33c9e28d9" dependencies = [ "cc", "pkg-config", @@ -4163,6 +4182,12 @@ dependencies = [ "phc", ] +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + [[package]] name = "pear" version = "0.2.9" @@ -4826,8 +4851,8 @@ dependencies = [ "log", "percent-encoding", "pin-project-lite", + "quinn", "rustls", - "rustls-native-certs", "rustls-pki-types", "serde", "serde_json", @@ -4842,6 +4867,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", + "webpki-roots", ] [[package]] @@ -5179,8 +5205,8 @@ dependencies = [ [[package]] name = "rust-librocksdb-sys" -version = "0.49.0+11.12.0" -source = "git+https://forgejo.ellis.link/continuwuation/rust-rocksdb-zaidoon1?rev=6021299f3e0e9455dc3f2e39c65e1dc217be8903#6021299f3e0e9455dc3f2e39c65e1dc217be8903" +version = "0.45.1+11.1.1" +source = "git+https://forgejo.ellis.link/continuwuation/rust-rocksdb-zaidoon1?rev=0a25ff92f7c09b55eec496b9c192c7d5136ab2b8#0a25ff92f7c09b55eec496b9c192c7d5136ab2b8" dependencies = [ "bindgen", "bzip2-sys", @@ -5190,15 +5216,14 @@ dependencies = [ "libz-sys", "lz4-sys", "pkg-config", - "rustflags", "tikv-jemalloc-sys", "zstd-sys", ] [[package]] name = "rust-rocksdb" -version = "0.54.0" -source = "git+https://forgejo.ellis.link/continuwuation/rust-rocksdb-zaidoon1?rev=6021299f3e0e9455dc3f2e39c65e1dc217be8903#6021299f3e0e9455dc3f2e39c65e1dc217be8903" +version = "0.49.1" +source = "git+https://forgejo.ellis.link/continuwuation/rust-rocksdb-zaidoon1?rev=0a25ff92f7c09b55eec496b9c192c7d5136ab2b8#0a25ff92f7c09b55eec496b9c192c7d5136ab2b8" dependencies = [ "libc", "parking_lot", @@ -5226,12 +5251,6 @@ dependencies = [ "semver", ] -[[package]] -name = "rustflags" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a39e0e9135d7a7208ee80aa4e3e4b88f0f5ad7be92153ed70686c38a03db2e63" - [[package]] name = "rustix" version = "1.1.6" @@ -5860,6 +5879,12 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "shlex" version = "2.0.1" @@ -6219,17 +6244,18 @@ dependencies = [ [[package]] name = "tikv-jemalloc-ctl" -version = "0.7.0" -source = "git+https://forgejo.ellis.link/continuwuation/jemallocator?rev=ac4d4861b335b199f812807996e8c9166961041a#ac4d4861b335b199f812807996e8c9166961041a" +version = "0.6.1" +source = "git+https://forgejo.ellis.link/continuwuation/jemallocator?rev=df86ff89d4b1e223b9f7d2dd2fbb7f202da7f554#df86ff89d4b1e223b9f7d2dd2fbb7f202da7f554" dependencies = [ "libc", + "paste", "tikv-jemalloc-sys", ] [[package]] name = "tikv-jemalloc-sys" -version = "0.7.0+5.4.0-0-g7a34f18502e7b222724097cdcd499b437d189acc" -source = "git+https://forgejo.ellis.link/continuwuation/jemallocator?rev=ac4d4861b335b199f812807996e8c9166961041a#ac4d4861b335b199f812807996e8c9166961041a" +version = "0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7" +source = "git+https://forgejo.ellis.link/continuwuation/jemallocator?rev=df86ff89d4b1e223b9f7d2dd2fbb7f202da7f554#df86ff89d4b1e223b9f7d2dd2fbb7f202da7f554" dependencies = [ "cc", "libc", @@ -6237,8 +6263,8 @@ dependencies = [ [[package]] name = "tikv-jemallocator" -version = "0.7.0" -source = "git+https://forgejo.ellis.link/continuwuation/jemallocator?rev=ac4d4861b335b199f812807996e8c9166961041a#ac4d4861b335b199f812807996e8c9166961041a" +version = "0.6.1" +source = "git+https://forgejo.ellis.link/continuwuation/jemallocator?rev=df86ff89d4b1e223b9f7d2dd2fbb7f202da7f554#df86ff89d4b1e223b9f7d2dd2fbb7f202da7f554" dependencies = [ "libc", "tikv-jemalloc-sys", @@ -7096,6 +7122,15 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "webpki-roots" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5f280bbb2b287bc8e7de7e3852945a0ff50d1bbcb5ed42b6c7a568c546df171" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "weezl" version = "0.1.12" diff --git a/Cargo.toml b/Cargo.toml index 214b9b984..9a432565f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -166,15 +166,6 @@ features = [ "form", ] -# Needed for as long as openidconnect is on an outdated reqwest -[workspace.dependencies.reqwest_0_12] -package = "reqwest" -version = "0.12" -default-features = false -features = [ - "rustls-tls-native-roots-no-provider", -] - [workspace.dependencies.serde] version = "1.0.229" default-features = false @@ -403,7 +394,7 @@ features = [ [workspace.dependencies.rust-rocksdb] git = "https://forgejo.ellis.link/continuwuation/rust-rocksdb-zaidoon1" -rev = "6021299f3e0e9455dc3f2e39c65e1dc217be8903" +rev = "0a25ff92f7c09b55eec496b9c192c7d5136ab2b8" default-features = false features = [ "multi-threaded-cf", @@ -423,8 +414,6 @@ default-features = false [workspace.dependencies.openidconnect] version = "4.1.0" -default-features = false -features = ["reqwest"] # optional opentelemetry, performance measurements, flamegraphs, etc for performance measurements and monitoring [workspace.dependencies.opentelemetry] @@ -486,7 +475,7 @@ version = "0.49.5" # jemalloc usage [workspace.dependencies.tikv-jemalloc-sys] git = "https://forgejo.ellis.link/continuwuation/jemallocator" -rev = "ac4d4861b335b199f812807996e8c9166961041a" +rev = "df86ff89d4b1e223b9f7d2dd2fbb7f202da7f554" default-features = false features = [ "background_threads_runtime_support", @@ -494,7 +483,7 @@ features = [ ] [workspace.dependencies.tikv-jemallocator] git = "https://forgejo.ellis.link/continuwuation/jemallocator" -rev = "ac4d4861b335b199f812807996e8c9166961041a" +rev = "df86ff89d4b1e223b9f7d2dd2fbb7f202da7f554" default-features = false features = [ "background_threads_runtime_support", @@ -502,7 +491,7 @@ features = [ ] [workspace.dependencies.tikv-jemalloc-ctl] git = "https://forgejo.ellis.link/continuwuation/jemallocator" -rev = "ac4d4861b335b199f812807996e8c9166961041a" +rev = "df86ff89d4b1e223b9f7d2dd2fbb7f202da7f554" default-features = false features = ["use_std"] diff --git a/src/main/Cargo.toml b/src/main/Cargo.toml index 18cc054a7..394076898 100644 --- a/src/main/Cargo.toml +++ b/src/main/Cargo.toml @@ -77,6 +77,7 @@ full = [ ] brotli_compression = [ + "conduwuit-api/brotli_compression", "conduwuit-core/brotli_compression", "conduwuit-router/brotli_compression", "conduwuit-service/brotli_compression", @@ -88,10 +89,11 @@ direct_tls = [ "conduwuit-router/direct_tls" ] element_hacks = [ + "conduwuit-api/element_hacks", "conduwuit-service/element_hacks", - "conduwuit-router/element_hacks", ] gzip_compression = [ + "conduwuit-api/gzip_compression", "conduwuit-core/gzip_compression", "conduwuit-router/gzip_compression", "conduwuit-service/gzip_compression", @@ -100,21 +102,21 @@ hardened_malloc = [ "conduwuit-core/hardened_malloc", ] http3 = [ - "conduwuit-service/http3" + "reqwest/http3" ] ring = [ - "rustls/ring", + "rustls/ring" ] - aws_lc_rs = [ "rustls/aws_lc_rs", + "dep:aws-lc-rs" ] io_uring = [ - "conduwuit-service/io_uring", + "conduwuit-database/io_uring", ] jemalloc = [ "conduwuit-core/jemalloc", - "conduwuit-service/jemalloc", + "conduwuit-database/jemalloc", ] jemalloc_prof = [ "conduwuit-core/jemalloc_prof", @@ -143,13 +145,19 @@ perf_measurements = [ release_max_log_level = [ "tracing/max_level_trace", "tracing/release_max_level_info", + "log/max_level_trace", + "log/release_max_level_info", + "conduwuit-admin/release_max_log_level", + "conduwuit-api/release_max_log_level", "conduwuit-core/release_max_log_level", + "conduwuit-database/release_max_log_level", "conduwuit-router/release_max_log_level", "conduwuit-service/release_max_log_level", ] sentry_telemetry = [ "dep:sentry", "dep:sentry-tracing", + "dep:sentry-tower", "conduwuit-core/sentry_telemetry", "conduwuit-router/sentry_telemetry", ] @@ -172,7 +180,9 @@ url_preview = [ "conduwuit-service/url_preview", ] zstd_compression = [ + "conduwuit-api/zstd_compression", "conduwuit-core/zstd_compression", + "conduwuit-database/zstd_compression", "conduwuit-router/zstd_compression", "conduwuit-service/zstd_compression", ] @@ -182,10 +192,10 @@ conduwuit_mods = [ bindgen-static = [ # "bindgen/static" # "clang-sys/static" - "conduwuit-service/bindgen-static" + "conduwuit-database/bindgen-static" ] bindgen-runtime = [ - "conduwuit-service/bindgen-runtime" + "conduwuit-database/bindgen-runtime" ] [build-dependencies] @@ -193,7 +203,10 @@ bindgen-runtime = [ # clang-sys = {version = "1", default-features = false} [dependencies] +conduwuit-admin.workspace = true +conduwuit-api.workspace = true conduwuit-core.workspace = true +conduwuit-database.workspace = true conduwuit-router.workspace = true conduwuit-service.workspace = true conduwuit-build-metadata.workspace = true @@ -205,6 +218,7 @@ dtor.workspace = true console-subscriber.optional = true console-subscriber.workspace = true const-str.workspace = true +log.workspace = true opentelemetry.workspace = true opentelemetry-otlp.optional = true opentelemetry-otlp.workspace = true @@ -212,10 +226,14 @@ opentelemetry-prometheus.workspace = true opentelemetry-semantic-conventions.workspace = true opentelemetry_sdk.workspace = true prometheus.workspace = true +sentry-tower.optional = true +sentry-tower.workspace = true sentry-tracing.optional = true sentry-tracing.workspace = true sentry.optional = true sentry.workspace = true +tokio-metrics.optional = true +tokio-metrics.workspace = true tokio.workspace = true tracing-flame.optional = true tracing-flame.workspace = true @@ -225,7 +243,14 @@ tracing-subscriber.workspace = true tracing.workspace = true tracing-journald = { workspace = true, optional = true } parking_lot.workspace = true +reqwest = { workspace = true, default-features = false } rustls = { workspace = true, default-features = false } +aws-lc-rs = { version = "1.19.0", default-features = false, 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 diff --git a/src/service/Cargo.toml b/src/service/Cargo.toml index 41d1220fd..0e3670134 100644 --- a/src/service/Cargo.toml +++ b/src/service/Cargo.toml @@ -16,12 +16,6 @@ crate-type = [ ] [features] -bindgen-runtime = [ - "conduwuit-database/bindgen-runtime" -] -bindgen-static = [ - "conduwuit-database/bindgen-static" -] brotli_compression = [ "conduwuit-core/brotli_compression", "reqwest/brotli", @@ -35,9 +29,6 @@ gzip_compression = [ "conduwuit-core/gzip_compression", "reqwest/gzip", ] -http3 = [ - "reqwest/http3" -] io_uring = [ "conduwuit-database/io_uring", ] @@ -131,9 +122,6 @@ lettre.workspace = true resolvematrix.workspace = true serde_urlencoded.workspace = true openidconnect.workspace = true -# We use this to set TLS backend features on the outdated reqwest bundled by openidconnect, -# which is necessary to call `danger_accept_invalid_certs`. -reqwest_0_12.workspace = true rand.workspace = true [target.'cfg(all(unix, target_os = "linux"))'.dependencies]