reformat and improve cargo.toml significantly

makes it a LOT more readable, and found some ways
to reduce unnecessary crates being built.

Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
strawberry 2024-03-09 15:49:51 -05:00 committed by June
parent 04e5d2c20a
commit 3f06725261
3 changed files with 412 additions and 149 deletions

215
Cargo.lock generated
View file

@ -437,17 +437,17 @@ dependencies = [
"lru-cache",
"nix",
"num_cpus",
"opentelemetry",
"opentelemetry 0.21.0",
"opentelemetry-jaeger",
"opentelemetry_sdk",
"opentelemetry_sdk 0.21.2",
"parking_lot",
"rand",
"regex",
"reqwest",
"ring",
"rocksdb",
"ruma",
"rusqlite",
"rust-rocksdb",
"sd-notify",
"serde",
"serde_html_form",
@ -876,13 +876,19 @@ dependencies = [
"futures-sink",
"futures-util",
"http",
"indexmap",
"indexmap 2.2.5",
"slab",
"tokio",
"tokio-util",
"tracing",
]
[[package]]
name = "hashbrown"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
[[package]]
name = "hashbrown"
version = "0.14.3"
@ -899,7 +905,7 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "692eaaf7f7607518dd3cef090f1474b61edc5301d8012f09579920df68b725ee"
dependencies = [
"hashbrown",
"hashbrown 0.14.3",
]
[[package]]
@ -1102,6 +1108,16 @@ dependencies = [
"png",
]
[[package]]
name = "indexmap"
version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
dependencies = [
"autocfg",
"hashbrown 0.12.3",
]
[[package]]
name = "indexmap"
version = "2.2.5"
@ -1109,7 +1125,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
dependencies = [
"equivalent",
"hashbrown",
"hashbrown 0.14.3",
"serde",
]
@ -1286,23 +1302,6 @@ dependencies = [
"windows-targets 0.52.4",
]
[[package]]
name = "librocksdb-sys"
version = "0.16.0+8.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce3d60bc059831dc1c83903fb45c103f75db65c5a7bf22272764d9cc683e348c"
dependencies = [
"bindgen",
"bzip2-sys",
"cc",
"glob",
"libc",
"libz-sys",
"lz4-sys",
"pkg-config",
"zstd-sys",
]
[[package]]
name = "libsqlite3-sys"
version = "0.28.0"
@ -1613,6 +1612,16 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
[[package]]
name = "opentelemetry"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9591d937bc0e6d2feb6f71a559540ab300ea49955229c347a517a28d27784c54"
dependencies = [
"opentelemetry_api",
"opentelemetry_sdk 0.20.0",
]
[[package]]
name = "opentelemetry"
version = "0.21.0"
@ -1621,7 +1630,7 @@ checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a"
dependencies = [
"futures-core",
"futures-sink",
"indexmap",
"indexmap 2.2.5",
"js-sys",
"once_cell",
"pin-project-lite",
@ -1638,9 +1647,9 @@ dependencies = [
"async-trait",
"futures-core",
"futures-util",
"opentelemetry",
"opentelemetry 0.21.0",
"opentelemetry-semantic-conventions",
"opentelemetry_sdk",
"opentelemetry_sdk 0.21.2",
"thrift",
"tokio",
]
@ -1651,7 +1660,43 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f5774f1ef1f982ef2a447f6ee04ec383981a3ab99c8e77a1a7b30182e65bbc84"
dependencies = [
"opentelemetry",
"opentelemetry 0.21.0",
]
[[package]]
name = "opentelemetry_api"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a81f725323db1b1206ca3da8bb19874bbd3f57c3bcd59471bfb04525b265b9b"
dependencies = [
"futures-channel",
"futures-util",
"indexmap 1.9.3",
"js-sys",
"once_cell",
"pin-project-lite",
"thiserror",
"urlencoding",
]
[[package]]
name = "opentelemetry_sdk"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa8e705a0612d48139799fcbaba0d4a90f06277153e43dd2bdc16c6f0edd8026"
dependencies = [
"async-trait",
"crossbeam-channel",
"futures-channel",
"futures-executor",
"futures-util",
"once_cell",
"opentelemetry_api",
"ordered-float 3.9.2",
"percent-encoding",
"rand",
"regex",
"thiserror",
]
[[package]]
@ -1665,9 +1710,8 @@ dependencies = [
"futures-channel",
"futures-executor",
"futures-util",
"glob",
"once_cell",
"opentelemetry",
"opentelemetry 0.21.0",
"ordered-float 4.2.0",
"percent-encoding",
"rand",
@ -1685,6 +1729,15 @@ dependencies = [
"num-traits",
]
[[package]]
name = "ordered-float"
version = "3.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc"
dependencies = [
"num-traits",
]
[[package]]
name = "ordered-float"
version = "4.2.0"
@ -2099,20 +2152,10 @@ dependencies = [
"windows-sys 0.52.0",
]
[[package]]
name = "rocksdb"
version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6bd13e55d6d7b8cd0ea569161127567cd587676c99f4472f779a0279aa60a7a7"
dependencies = [
"libc",
"librocksdb-sys",
]
[[package]]
name = "ruma"
version = "0.9.4"
source = "git+https://github.com/girlbossceo/ruma?rev=13b8386812679b33235c68fa1ec0b50c4647d05a#13b8386812679b33235c68fa1ec0b50c4647d05a"
source = "git+https://github.com/girlbossceo/ruma?branch=conduwuit-changes#13b8386812679b33235c68fa1ec0b50c4647d05a"
dependencies = [
"assign",
"js_int",
@ -2131,7 +2174,7 @@ dependencies = [
[[package]]
name = "ruma-appservice-api"
version = "0.9.0"
source = "git+https://github.com/girlbossceo/ruma?rev=13b8386812679b33235c68fa1ec0b50c4647d05a#13b8386812679b33235c68fa1ec0b50c4647d05a"
source = "git+https://github.com/girlbossceo/ruma?branch=conduwuit-changes#13b8386812679b33235c68fa1ec0b50c4647d05a"
dependencies = [
"js_int",
"ruma-common",
@ -2143,7 +2186,7 @@ dependencies = [
[[package]]
name = "ruma-client-api"
version = "0.17.4"
source = "git+https://github.com/girlbossceo/ruma?rev=13b8386812679b33235c68fa1ec0b50c4647d05a#13b8386812679b33235c68fa1ec0b50c4647d05a"
source = "git+https://github.com/girlbossceo/ruma?branch=conduwuit-changes#13b8386812679b33235c68fa1ec0b50c4647d05a"
dependencies = [
"as_variant",
"assign",
@ -2162,14 +2205,14 @@ dependencies = [
[[package]]
name = "ruma-common"
version = "0.12.1"
source = "git+https://github.com/girlbossceo/ruma?rev=13b8386812679b33235c68fa1ec0b50c4647d05a#13b8386812679b33235c68fa1ec0b50c4647d05a"
source = "git+https://github.com/girlbossceo/ruma?branch=conduwuit-changes#13b8386812679b33235c68fa1ec0b50c4647d05a"
dependencies = [
"as_variant",
"base64 0.21.7",
"bytes",
"form_urlencoded",
"http",
"indexmap",
"indexmap 2.2.5",
"js_int",
"konst",
"percent-encoding",
@ -2190,10 +2233,10 @@ dependencies = [
[[package]]
name = "ruma-events"
version = "0.27.11"
source = "git+https://github.com/girlbossceo/ruma?rev=13b8386812679b33235c68fa1ec0b50c4647d05a#13b8386812679b33235c68fa1ec0b50c4647d05a"
source = "git+https://github.com/girlbossceo/ruma?branch=conduwuit-changes#13b8386812679b33235c68fa1ec0b50c4647d05a"
dependencies = [
"as_variant",
"indexmap",
"indexmap 2.2.5",
"js_int",
"js_option",
"percent-encoding",
@ -2212,7 +2255,7 @@ dependencies = [
[[package]]
name = "ruma-federation-api"
version = "0.8.0"
source = "git+https://github.com/girlbossceo/ruma?rev=13b8386812679b33235c68fa1ec0b50c4647d05a#13b8386812679b33235c68fa1ec0b50c4647d05a"
source = "git+https://github.com/girlbossceo/ruma?branch=conduwuit-changes#13b8386812679b33235c68fa1ec0b50c4647d05a"
dependencies = [
"js_int",
"ruma-common",
@ -2224,7 +2267,7 @@ dependencies = [
[[package]]
name = "ruma-identifiers-validation"
version = "0.9.3"
source = "git+https://github.com/girlbossceo/ruma?rev=13b8386812679b33235c68fa1ec0b50c4647d05a#13b8386812679b33235c68fa1ec0b50c4647d05a"
source = "git+https://github.com/girlbossceo/ruma?branch=conduwuit-changes#13b8386812679b33235c68fa1ec0b50c4647d05a"
dependencies = [
"js_int",
"thiserror",
@ -2233,7 +2276,7 @@ dependencies = [
[[package]]
name = "ruma-identity-service-api"
version = "0.8.0"
source = "git+https://github.com/girlbossceo/ruma?rev=13b8386812679b33235c68fa1ec0b50c4647d05a#13b8386812679b33235c68fa1ec0b50c4647d05a"
source = "git+https://github.com/girlbossceo/ruma?branch=conduwuit-changes#13b8386812679b33235c68fa1ec0b50c4647d05a"
dependencies = [
"js_int",
"ruma-common",
@ -2243,7 +2286,7 @@ dependencies = [
[[package]]
name = "ruma-macros"
version = "0.12.0"
source = "git+https://github.com/girlbossceo/ruma?rev=13b8386812679b33235c68fa1ec0b50c4647d05a#13b8386812679b33235c68fa1ec0b50c4647d05a"
source = "git+https://github.com/girlbossceo/ruma?branch=conduwuit-changes#13b8386812679b33235c68fa1ec0b50c4647d05a"
dependencies = [
"once_cell",
"proc-macro-crate",
@ -2258,7 +2301,7 @@ dependencies = [
[[package]]
name = "ruma-push-gateway-api"
version = "0.8.0"
source = "git+https://github.com/girlbossceo/ruma?rev=13b8386812679b33235c68fa1ec0b50c4647d05a#13b8386812679b33235c68fa1ec0b50c4647d05a"
source = "git+https://github.com/girlbossceo/ruma?branch=conduwuit-changes#13b8386812679b33235c68fa1ec0b50c4647d05a"
dependencies = [
"js_int",
"ruma-common",
@ -2270,7 +2313,7 @@ dependencies = [
[[package]]
name = "ruma-signatures"
version = "0.14.0"
source = "git+https://github.com/girlbossceo/ruma?rev=13b8386812679b33235c68fa1ec0b50c4647d05a#13b8386812679b33235c68fa1ec0b50c4647d05a"
source = "git+https://github.com/girlbossceo/ruma?branch=conduwuit-changes#13b8386812679b33235c68fa1ec0b50c4647d05a"
dependencies = [
"base64 0.21.7",
"ed25519-dalek",
@ -2286,7 +2329,7 @@ dependencies = [
[[package]]
name = "ruma-state-res"
version = "0.10.0"
source = "git+https://github.com/girlbossceo/ruma?rev=13b8386812679b33235c68fa1ec0b50c4647d05a#13b8386812679b33235c68fa1ec0b50c4647d05a"
source = "git+https://github.com/girlbossceo/ruma?branch=conduwuit-changes#13b8386812679b33235c68fa1ec0b50c4647d05a"
dependencies = [
"itertools 0.11.0",
"js_int",
@ -2311,6 +2354,31 @@ dependencies = [
"smallvec",
]
[[package]]
name = "rust-librocksdb-sys"
version = "0.18.1+8.11.3"
source = "git+https://github.com/zaidoon1/rust-rocksdb?rev=3e4a0f632a8c0c2839c7d183725c53895110d907#3e4a0f632a8c0c2839c7d183725c53895110d907"
dependencies = [
"bindgen",
"bzip2-sys",
"cc",
"glob",
"libc",
"libz-sys",
"lz4-sys",
"pkg-config",
"zstd-sys",
]
[[package]]
name = "rust-rocksdb"
version = "0.22.7"
source = "git+https://github.com/zaidoon1/rust-rocksdb?rev=3e4a0f632a8c0c2839c7d183725c53895110d907#3e4a0f632a8c0c2839c7d183725c53895110d907"
dependencies = [
"libc",
"rust-librocksdb-sys",
]
[[package]]
name = "rustc-demangle"
version = "0.1.23"
@ -2474,7 +2542,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20e1066e1cfa6692a722cf40386a2caec36da5ddc4a2c16df592f0f609677e8c"
dependencies = [
"form_urlencoded",
"indexmap",
"indexmap 2.2.5",
"itoa",
"ryu",
"serde",
@ -2538,7 +2606,7 @@ version = "0.9.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f"
dependencies = [
"indexmap",
"indexmap 2.2.5",
"itoa",
"ryu",
"serde",
@ -3009,7 +3077,7 @@ version = "0.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
dependencies = [
"indexmap",
"indexmap 2.2.5",
"serde",
"serde_spanned",
"toml_datetime",
@ -3110,6 +3178,17 @@ dependencies = [
"tracing-subscriber",
]
[[package]]
name = "tracing-log"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2"
dependencies = [
"log",
"once_cell",
"tracing-core",
]
[[package]]
name = "tracing-log"
version = "0.2.0"
@ -3123,20 +3202,16 @@ dependencies = [
[[package]]
name = "tracing-opentelemetry"
version = "0.22.0"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c67ac25c5407e7b961fafc6f7e9aa5958fd297aada2d20fa2ae1737357e55596"
checksum = "fc09e402904a5261e42cf27aea09ccb7d5318c6717a9eec3d8e2e65c56b18f19"
dependencies = [
"js-sys",
"once_cell",
"opentelemetry",
"opentelemetry_sdk",
"smallvec",
"opentelemetry 0.20.0",
"tracing",
"tracing-core",
"tracing-log",
"tracing-log 0.1.4",
"tracing-subscriber",
"web-time",
]
[[package]]
@ -3154,7 +3229,7 @@ dependencies = [
"thread_local",
"tracing",
"tracing-core",
"tracing-log",
"tracing-log 0.2.0",
]
[[package]]
@ -3413,16 +3488,6 @@ dependencies = [
"wasm-bindgen",
]
[[package]]
name = "web-time"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
dependencies = [
"js-sys",
"wasm-bindgen",
]
[[package]]
name = "webpage"
version = "2.0.0"

View file

@ -12,103 +12,47 @@ edition = "2021"
# See also `rust-toolchain.toml`
rust-version = "1.75.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
# Web framework
axum = { version = "0.6.20", default-features = false, features = ["form", "headers", "http1", "http2", "json", "matched-path"], optional = true }
axum-server = { version = "0.5.1", features = ["tls-rustls"] }
tower = { version = "0.4.13", features = ["util"] }
tower-http = { version = "0.4.4", features = ["add-extension", "cors", "sensitive-headers", "trace", "util", "compression-zstd"] }
# Used for matrix spec type definitions and helpers
#ruma = { version = "0.4.0", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-pre-spec", "unstable-exhaustive-types"] }
#ruma = { git = "https://github.com/ruma/ruma", rev = "4d9f754657a099df8e61533787b8eebd12946435", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-msc2448", "unstable-msc3575", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified", "unstable-msc2870", "unstable-msc3061", "unstable-msc2867", "unstable-extensible-events"] }
ruma = { git = "https://github.com/girlbossceo/ruma", rev = "13b8386812679b33235c68fa1ec0b50c4647d05a", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-msc2448", "unstable-msc3575", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified", "unstable-msc2870", "unstable-msc3061", "unstable-msc2867", "unstable-extensible-events"] }
#ruma = { path = "../ruma/crates/ruma", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-msc2448", "unstable-msc3575", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified" ] }
# Async runtime and utilities
hyperlocal = { git = "https://github.com/softprops/hyperlocal", rev = "2ee4d149644600d326559af0d2b235c945b05c04", features = [
"server",
] }
hyper = { version = "0.14", features = ["server", "http1", "http2"] }
tokio = { version = "1.36.0", features = ["fs", "macros", "signal", "sync"] }
# Used for the http request / response body type for Ruma endpoints used with reqwest
bytes = "1.5.0"
http = "0.2.12"
# Used for ruma wrapper
serde_json = { version = "1.0.114", features = ["raw_value"] }
# Used for appservice registration files
serde_yaml = "0.9.32"
# Used for pdu definition
serde = { version = "1.0.197", features = ["rc"] }
# Used for secure identifiers
rand = "0.8.5"
# Used to hash passwords
argon2 = { version = "0.5.3", features = ["alloc", "rand"], default-features = false }
reqwest = { version = "0.11.25", default-features = false, features = ["rustls-tls-native-roots", "socks"] }
# Used for conduit::Error type
thiserror = "1.0.57"
# Used to generate thumbnails for images
image = { version = "0.24.9", default-features = false, features = ["jpeg", "png", "gif", "webp"] }
# Used to encode server public key
base64 = "0.22.0"
# Used when hashing the state
ring = "0.17.8"
# Used when querying the SRV record of other servers
trust-dns-resolver = "0.23.2"
# Used to find matching events for appservices
regex = "1.10.3"
# Used to load forbidden room/user regex from config
serde_regex = "1.1.0"
itertools = "0.12.1"
# jwt jsonwebtokens
jsonwebtoken = "9.2.0"
# Performance measurements
tracing = { version = "0.1.40", features = [] }
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
tracing-flame = "0.2.0"
opentelemetry = "0.21.0"
opentelemetry_sdk = { version = "0.21.2", features = ["rt-tokio"] }
opentelemetry-jaeger = { version = "0.20.0", features = ["rt-tokio"] }
tracing-opentelemetry = "0.22.0"
lru-cache = "0.1.2"
rusqlite = { git = "https://github.com/rusqlite/rusqlite", rev = "def8e9460d8376a5c0c9f4f9846d413a9cd4581a", optional = true, features = ["bundled"] }
parking_lot = { version = "0.12.1", optional = true }
num_cpus = "1.16.0"
# Used for ruma wrapper
serde_html_form = "0.2.4"
thread_local = "1.1.8"
# used for TURN server authentication
hmac = "0.12.1"
sha-1 = "0.10.1"
sha2 = { version = "0.10.8" }
# used for conduit's CLI and admin room command parsing
clap = { version = "4.5.2", default-features = false, features = ["std", "derive", "help", "usage", "error-context"] }
futures-util = { version = "0.3.30", default-features = false }
# Used for reading the configuration from conduit.toml & environment variables
figment = { version = "0.10.14", features = ["env", "toml"] }
tikv-jemalloc-ctl = { version = "0.5.4", features = ["use_std"], optional = true }
tikv-jemallocator = { version = "0.5.4", features = ["unprefixed_malloc_on_supported_platforms"], optional = true }
async-trait = "0.1.77"
# used for checking if an IP is in specific subnets / CIDR ranges
# used for checking if an IP is in specific subnets / CIDR ranges easier
ipaddress = "0.1.3"
sd-notify = { version = "0.4.1", optional = true }
webpage = { version = "2.0", default-features = false }
rocksdb = { version = "0.22.0", default-features = true, features = ["multi-threaded-cf", "zstd"], optional = true }
either = { version = "1.10.0", features = ["serde"] }
# to listen on both HTTP and HTTPS
axum-server-dual-protocol = { version = "0.5.2", optional = true }
# to encode/decode percent URIs when conduwuit is running without a reverse proxy
#urlencoding = "2.1.3"
@ -118,25 +62,275 @@ axum-server-dual-protocol = { version = "0.5.2", optional = true }
# to parse user-friendly time durations in admin commands
cyborgtime = "2.1.1"
# all the web/HTTP dependencies
# Used for the http request / response body type for Ruma endpoints used with reqwest
bytes = "1.5.0"
http = "0.2.12"
# Web framework
[dependencies.axum]
version = "0.6.20"
default-features = false
features = ["form", "headers", "http1", "http2", "json", "matched-path"]
optional = true
[dependencies.axum-server]
version = "0.5.1"
features = ["tls-rustls"]
[dependencies.tower]
version = "0.4.13"
features = ["util"]
[dependencies.tower-http]
version = "0.4.4"
features = [
"add-extension",
"cors",
"sensitive-headers",
"trace",
"util",
]
# unix socket support
[dependencies.hyperlocal]
git = "https://github.com/softprops/hyperlocal"
rev = "2ee4d149644600d326559af0d2b235c945b05c04"
features = ["server"]
[dependencies.hyper]
version = "0.14"
features = [
"server",
"http1",
"http2",
]
[dependencies.reqwest]
version = "0.11.25"
default-features = false
features = [
"rustls-tls-native-roots",
"socks",
]
# all the serde stuff
# Used for pdu definition
[dependencies.serde]
version = "1.0.197"
features = ["rc"]
# Used for appservice registration files
[dependencies.serde_yaml]
version = "0.9.32"
# Used for ruma wrapper
[dependencies.serde_json]
version = "1.0.114"
features = ["raw_value"]
# Used for password hashing
[dependencies.argon2]
version = "0.5.3"
features = [
"alloc",
"rand",
]
default-features = false
# Used to generate thumbnails for images
[dependencies.image]
version = "0.24.9"
default-features = false
features = [
"jpeg",
"png",
"gif",
"webp",
]
# logging
[dependencies.tracing]
version = "0.1.40"
default-features = false
[dependencies.tracing-subscriber]
version = "0.3.18"
features = ["env-filter"]
# optional SHA256 media keys feature
[dependencies.sha2]
version = "0.10.8"
optional = true
# optional opentelemetry, performance measurements, flamegraphs, etc for performance measurements and monitoring
[dependencies.opentelemetry]
version = "0.21.0"
optional = true
[dependencies.tracing-flame]
version = "0.2.0"
optional = true
[dependencies.tracing-opentelemetry]
version = "0.20.0"
optional = true
[dependencies.opentelemetry_sdk]
version = "0.21.2"
optional = true
features = ["rt-tokio"]
[dependencies.opentelemetry-jaeger]
version = "0.20.0"
optional = true
features = ["rt-tokio"]
# optional jemalloc usage
[dependencies.tikv-jemallocator]
version = "0.5.4"
optional = true
default-features = false
features = ["unprefixed_malloc_on_supported_platforms"]
[dependencies.tikv-jemalloc-ctl]
version = "0.5.4"
optional = true
default-features = false
features = ["use_std"]
# for URL previews
[dependencies.webpage]
version = "2.0"
default-features = false
# to support multiple variations of setting a config option
[dependencies.either]
version = "1.10.0"
features = ["serde"]
# to listen on both HTTP and HTTPS if listening on TLS dierctly from conduwuit for complement or sytest
[dependencies.axum-server-dual-protocol]
version = "0.5.2"
optional = true
# used for conduit's CLI and admin room command parsing
[dependencies.clap]
version = "4.5.2"
default-features = false
features = [
"std",
"derive",
"help",
"usage",
"error-context",
]
[dependencies.futures-util]
version = "0.3.30"
default-features = false
# Used for reading the configuration from conduit.toml & environment variables
[dependencies.figment]
version = "0.10.14"
features = [
"env",
"toml",
]
# Used for matrix spec type definitions and helpers
#ruma = { version = "0.4.0", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-pre-spec", "unstable-exhaustive-types"] }
#ruma = { git = "https://github.com/ruma/ruma", rev = "4d9f754657a099df8e61533787b8eebd12946435", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-msc2448", "unstable-msc3575", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified", "unstable-msc2870", "unstable-msc3061", "unstable-msc2867", "unstable-extensible-events"] }
#ruma = { path = "../ruma/crates/ruma", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-msc2448", "unstable-msc3575", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified" ] }
[dependencies.ruma]
git = "https://github.com/girlbossceo/ruma"
branch = "conduwuit-changes"
features = [
"compat",
"rand",
"appservice-api-c",
"client-api",
"federation-api",
"push-gateway-api-c",
"state-res",
"unstable-msc2448",
"unstable-msc3575",
"unstable-exhaustive-types",
"ring-compat",
"unstable-unspecified",
"unstable-msc2870",
"unstable-msc3061",
"unstable-msc2867",
"unstable-extensible-events",
]
[dependencies.rust-rocksdb]
git = "https://github.com/zaidoon1/rust-rocksdb"
#branch = "master"
rev = "3e4a0f632a8c0c2839c7d183725c53895110d907"
optional = true
features = [
"multi-threaded-cf",
"zstd",
]
[dependencies.rusqlite]
git = "https://github.com/rusqlite/rusqlite"
#branch = "master"
rev = "def8e9460d8376a5c0c9f4f9846d413a9cd4581a"
optional = true
features = ["bundled"]
# used only by rusqlite
[dependencies.parking_lot]
version = "0.12.1"
optional = true
# used only by rusqlite
[dependencies.thread_local]
version = "1.1.8"
optional = true
# used only by rusqlite and rust-rocksdb
[dependencies.num_cpus]
version = "1.16.0"
optional = true
[target.'cfg(not(unix))'.dependencies]
tokio = { version = "1.36.0", features = ["fs",
"macros",
"sync",
] } # tokio signals are not used on non-*nix platforms
# *nix-specific dependencies
[target.'cfg(unix)'.dependencies]
nix = { version = "0.28.0", features = ["resource"] }
sd-notify = { version = "0.4.1", optional = true } # systemd is only available/relevant on *nix platforms
tokio = { version = "1.36.0", features = [
"fs",
"macros",
"sync",
"signal",
] }
[features]
default = ["conduit_bin", "backend_rocksdb", "systemd", "zstd_compression"]
default = ["conduit_bin", "backend_rocksdb", "systemd"]
backend_sqlite = ["sqlite"]
backend_rocksdb = ["rocksdb"]
backend_rocksdb = ["rust-rocksdb", "num_cpus"]
jemalloc = ["tikv-jemalloc-ctl", "tikv-jemallocator"]
sqlite = ["rusqlite", "parking_lot", "tokio/signal"]
sqlite = ["rusqlite", "parking_lot", "thread_local", "num_cpus"]
conduit_bin = ["axum"]
systemd = ["sd-notify"]
#gzip_compression = ["tower-http/compression-gzip"]
zstd_compression = []
zstd_compression = ["tower-http/compression-zstd"]
#brotli_compression = ["tower-http/compression-br"]
#compression = ["tower-http/compression-full"]
sha256_media = []
io_uring = ["rocksdb/io-uring"]
#all_compression = ["tower-http/compression-full"] # all compression algos
sha256_media = ["sha2"]
io_uring = ["rust-rocksdb/io-uring"]
axum_dual_protocol = ["axum-server-dual-protocol"]
perf_measurements = ["opentelemetry", "tracing-flame", "tracing-opentelemetry", "opentelemetry_sdk", "opentelemetry-jaeger"]
[[bin]]
name = "conduit"
path = "src/main.rs"
@ -167,6 +361,8 @@ conf-files = [
maintainer-scripts = "debian/"
systemd-units = { unit-name = "matrix-conduit" }
[profile.dev]
debug = 0
lto = 'off'
@ -203,6 +399,8 @@ debug = 0
opt-level = 3
codegen-units = 1
[lints]
workspace = true
@ -230,7 +428,6 @@ unit_bindings = "warn"
# this seems to suggest broken code and is not working correctly
unused_braces = "allow"
[workspace.lints.clippy]
# pedantic = "warn"

View file

@ -85,6 +85,7 @@ max_request_size = 20_000_000 # in bytes
#unix_socket_perms = 660
# Set this to true for conduwuit to compress HTTP response bodies using zstd.
# This option does nothing if conduwuit was not built with `zstd_compression` feature.
# Please be aware that enabling HTTP compression may weaken or even defeat TLS.
# Most users should not need to enable this.
# See https://breachattack.com/ and https://wikipedia.org/wiki/BREACH before deciding to enable this.