mirror of
https://gitlab.computer.surgery/matrix/grapevine.git
synced 2025-12-16 15:21:24 +01:00
* OTel v0.25.0 requires downgrading Tokio to 1.38 [0] * They have a fix for this but aren't cutting a release just for release schedule reasons [1] * Prometheus support (at least for server-pull) was dropped at OTel v0.23 and isn't planned to be picked up again until OTel v1 [2] * No real reasoning was provided for this decision AFAICT [3] [4] * So many compiler errors * Unhelpful changelogs The last two points are what made me give up on trying to upgrade to OTel v0.24 too. RocksDB isn't updated because we'd need to update our nixpkgs too but that causes other problems, such as an upstream bug in liburing when building for musl. [0]: https://github.com/open-telemetry/opentelemetry-rust/issues/2094 [1]: https://github.com/open-telemetry/opentelemetry-rust/issues/2094#issuecomment-2346834030 [2]: https://docs.rs/opentelemetry-prometheus/0.17.0/opentelemetry_prometheus/index.html [3]: https://github.com/open-telemetry/opentelemetry-rust/pull/1792 [4]: https://github.com/open-telemetry/opentelemetry-rust/pull/1792#issuecomment-2121514344
155 lines
5.3 KiB
TOML
155 lines
5.3 KiB
TOML
# Keep alphabetically sorted
|
|
[workspace.lints.rust]
|
|
elided_lifetimes_in_paths = "warn"
|
|
explicit_outlives_requirements = "warn"
|
|
macro_use_extern_crate = "warn"
|
|
missing_abi = "warn"
|
|
noop_method_call = "warn"
|
|
single_use_lifetimes = "warn"
|
|
unreachable_pub = "warn"
|
|
unsafe_op_in_unsafe_fn = "warn"
|
|
unused_extern_crates = "warn"
|
|
unused_import_braces = "warn"
|
|
unused_lifetimes = "warn"
|
|
unused_macro_rules = "warn"
|
|
unused_qualifications = "warn"
|
|
|
|
[workspace.lints.clippy]
|
|
# Groups. Keep alphabetically sorted
|
|
pedantic = { level = "warn", priority = -1 }
|
|
|
|
# Lints. Keep alphabetically sorted
|
|
as_conversions = "warn"
|
|
assertions_on_result_states = "warn"
|
|
dbg_macro = "warn"
|
|
default_union_representation = "warn"
|
|
deref_by_slicing = "warn"
|
|
empty_drop = "warn"
|
|
empty_structs_with_brackets = "warn"
|
|
error_impl_error = "warn"
|
|
filetype_is_file = "warn"
|
|
float_cmp_const = "warn"
|
|
format_push_string = "warn"
|
|
get_unwrap = "warn"
|
|
if_then_some_else_none = "warn"
|
|
impl_trait_in_params = "warn"
|
|
let_underscore_must_use = "warn"
|
|
lossy_float_literal = "warn"
|
|
mem_forget = "warn"
|
|
missing_assert_message = "warn"
|
|
mod_module_files = "warn"
|
|
multiple_inherent_impl = "warn"
|
|
mutex_atomic = "warn"
|
|
negative_feature_names = "warn"
|
|
pub_without_shorthand = "warn"
|
|
rc_buffer = "warn"
|
|
rc_mutex = "warn"
|
|
redundant_feature_names = "warn"
|
|
redundant_type_annotations = "warn"
|
|
ref_patterns = "warn"
|
|
rest_pat_in_fully_bound_structs = "warn"
|
|
same_name_method = "warn"
|
|
semicolon_inside_block = "warn"
|
|
str_to_string = "warn"
|
|
string_add = "warn"
|
|
string_lit_chars_any = "warn"
|
|
string_slice = "warn"
|
|
string_to_string = "warn"
|
|
suspicious_xor_used_as_pow = "warn"
|
|
tests_outside_test_module = "warn"
|
|
try_err = "warn"
|
|
undocumented_unsafe_blocks = "warn"
|
|
unnecessary_safety_comment = "warn"
|
|
unnecessary_safety_doc = "warn"
|
|
unnecessary_self_imports = "warn"
|
|
unneeded_field_pattern = "warn"
|
|
unseparated_literal_suffix = "warn"
|
|
verbose_file_reads = "warn"
|
|
wildcard_dependencies = "warn"
|
|
|
|
# TODO: Remove these:
|
|
missing_errors_doc = "allow"
|
|
missing_panics_doc = "allow"
|
|
|
|
[package]
|
|
name = "grapevine"
|
|
description = "A Matrix homeserver written in Rust"
|
|
license = "Apache-2.0"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
# See also `rust-toolchain.toml`
|
|
rust-version = "1.81.0"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
# Keep sorted
|
|
[dependencies]
|
|
argon2 = "0.5.3"
|
|
async-trait = "0.1.82"
|
|
axum = { version = "0.7.6", default-features = false, features = ["form", "http1", "http2", "json", "matched-path", "tracing"] }
|
|
axum-extra = { version = "0.9.4", features = ["typed-header"] }
|
|
axum-server = { version = "0.7.1", features = ["tls-rustls"] }
|
|
base64 = "0.22.1"
|
|
bytes = "1.7.2"
|
|
clap = { version = "4.5.18", default-features = false, features = ["std", "derive", "help", "usage", "error-context", "string", "wrap_help"] }
|
|
futures-util = { version = "0.3.30", default-features = false }
|
|
hmac = "0.12.1"
|
|
html-escape = "0.2.13"
|
|
http = "1.1.0"
|
|
http-body-util = "0.1.2"
|
|
hyper = "1.4.1"
|
|
hyper-util = { version = "0.1.8", features = ["client", "client-legacy", "service"] }
|
|
image = { version = "0.25.2", default-features = false, features = ["jpeg", "png", "gif"] }
|
|
jsonwebtoken = "9.3.0"
|
|
lru-cache = "0.1.2"
|
|
num_cpus = "1.16.0"
|
|
once_cell = "1.19.0"
|
|
opentelemetry = "0.23.0"
|
|
opentelemetry-jaeger-propagator = "0.2.0"
|
|
opentelemetry-otlp = "0.16.0"
|
|
opentelemetry-prometheus = "0.16.0"
|
|
opentelemetry_sdk = { version = "0.23.0", features = ["rt-tokio"] }
|
|
parking_lot = { version = "0.12.3", optional = true }
|
|
phf = { version = "0.11.2", features = ["macros"] }
|
|
prometheus = "0.13.4"
|
|
rand = "0.8.5"
|
|
regex = "1.10.6"
|
|
reqwest = { version = "0.12.7", default-features = false, features = ["http2", "rustls-tls-native-roots", "socks"] }
|
|
ring = "0.17.8"
|
|
rocksdb = { package = "rust-rocksdb", version = "0.26.0", features = ["lz4", "multi-threaded-cf", "zstd"], optional = true }
|
|
ruma = { git = "https://github.com/ruma/ruma", branch = "main", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "server-util", "state-res", "unstable-msc2448", "unstable-msc3575", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified" ] }
|
|
rusqlite = { version = "0.32.1", optional = true, features = ["bundled"] }
|
|
sd-notify = { version = "0.4.2", optional = true }
|
|
serde = { version = "1.0.210", features = ["rc"] }
|
|
serde_html_form = "0.2.6"
|
|
serde_json = { version = "1.0.128", features = ["raw_value"] }
|
|
serde_yaml = "0.9.34"
|
|
sha-1 = "0.10.1"
|
|
strum = { version = "0.26.3", features = ["derive"] }
|
|
thiserror = "1.0.64"
|
|
thread_local = "1.1.8"
|
|
tikv-jemallocator = { version = "0.6.0", features = ["unprefixed_malloc_on_supported_platforms"], optional = true }
|
|
tokio = { version = "1.40.0", features = ["fs", "macros", "signal", "sync"] }
|
|
toml = "0.8.19"
|
|
tower = { version = "0.5.1", features = ["util"] }
|
|
tower-http = { version = "0.6.0", features = ["add-extension", "cors", "sensitive-headers", "trace", "util"] }
|
|
tracing = { version = "0.1.40", features = [] }
|
|
tracing-flame = "0.2.0"
|
|
tracing-opentelemetry = "0.24.0"
|
|
tracing-subscriber = { version = "0.3.18", features = ["env-filter", "json"] }
|
|
trust-dns-resolver = "0.23.2"
|
|
xdg = "2.5.2"
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
nix = { version = "0.29", features = ["resource"] }
|
|
|
|
[features]
|
|
default = ["rocksdb", "sqlite", "systemd"]
|
|
|
|
# Keep sorted
|
|
jemalloc = ["dep:tikv-jemallocator"]
|
|
rocksdb = ["dep:rocksdb"]
|
|
sqlite = ["dep:rusqlite", "dep:parking_lot", "tokio/signal"]
|
|
systemd = ["dep:sd-notify"]
|