mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-04-20 23:27:44 -04:00
This patch updates `async-rx` to fix a possible panic in `Switch`. It now requires the outer stream to implement `FusedStream` (for the moment).
241 lines
12 KiB
TOML
241 lines
12 KiB
TOML
[workspace]
|
|
members = [
|
|
"benchmarks",
|
|
"bindings/matrix-sdk-crypto-ffi",
|
|
"bindings/matrix-sdk-ffi",
|
|
"crates/*",
|
|
"examples/*",
|
|
"labs/*",
|
|
"testing/*",
|
|
"uniffi-bindgen",
|
|
"xtask",
|
|
]
|
|
exclude = ["testing/data"]
|
|
# xtask, multiverse, testing and the bindings should only be built when invoked explicitly.
|
|
default-members = ["benchmarks", "crates/*"]
|
|
resolver = "3"
|
|
|
|
[workspace.package]
|
|
rust-version = "1.93"
|
|
|
|
[workspace.dependencies]
|
|
anyhow = { version = "1.0.100", default-features = false }
|
|
aquamarine = { version = "0.6.0", default-features = false }
|
|
as_variant = { version = "1.3.0", default-features = false }
|
|
assert-json-diff = { version = "2.0.2", default-features = false }
|
|
assert_matches = { version = "1.5.0", default-features = false }
|
|
assert_matches2 = { version = "0.1.2", default-features = false }
|
|
async_cell = { version = "0.2.3", default-features = false }
|
|
async-compat = { version = "0.2.5", default-features = false }
|
|
async-once-cell = { version = "0.5.4", default-features = false }
|
|
async-rx = { version = "0.2.0", default-features = false }
|
|
# Bumping this to 0.3.6 produces a test failure because the semantic between the
|
|
# versions changed subtly: https://github.com/matrix-org/matrix-rust-sdk/issues/4599
|
|
async-stream = { version = "0.3.6", default-features = false }
|
|
async-trait = { version = "0.1.89", default-features = false }
|
|
base64 = { version = "0.22.1", default-features = false, features = ["std"] }
|
|
bitflags = { version = "2.10.0", default-features = false }
|
|
byteorder = { version = "1.5.0", default-features = false, features = ["std"] }
|
|
cfg-if = { version = "1.0.4", default-features = false }
|
|
clap = { version = "4.5.53", default-features = false, features = ["std", "help", "usage"] }
|
|
chrono = { version = "0.4.42", default-features = false, features = ["clock", "std", "oldtime", "wasmbind"] }
|
|
dirs = { version = "6.0.0", default-features = false }
|
|
eyeball = { version = "0.8.8", default-features = false, features = ["tracing"] }
|
|
eyeball-im = { version = "0.8.0", default-features = false, features = ["tracing"] }
|
|
eyeball-im-util = { version = "0.10.0", default-features = false }
|
|
futures-core = { version = "0.3.31", default-features = false, features = ["std"] }
|
|
futures-executor = { version = "0.3.31", default-features = false, features = ["std"] }
|
|
futures-util = { version = "0.3.31", default-features = false, features = ["std"] }
|
|
getrandom = { version = "0.4.2", default-features = false }
|
|
gloo-timers = { version = "0.3.0", default-features = false }
|
|
gloo-utils = { version = "0.2.0", default-features = false, features = ["serde"] }
|
|
growable-bloom-filter = { version = "2.1.1", default-features = false }
|
|
hkdf = { version = "0.12.4", default-features = false }
|
|
hmac = { version = "0.12.1", default-features = false }
|
|
http = { version = "1.3.1", default-features = false }
|
|
imbl = { version = "6.1.0", default-features = false }
|
|
indexed_db_futures = { version = "0.7.0", package = "matrix_indexed_db_futures", default-features = false }
|
|
indexmap = { version = "2.12.1", default-features = false }
|
|
insta = { version = "1.44.1", features = ["json", "redactions"] }
|
|
itertools = { version = "0.14.0", default-features = false, features = ["use_std"] }
|
|
js-sys = { version = "0.3.82", default-features = false, features = ["std"] }
|
|
mime = { version = "0.3.17", default-features = false }
|
|
oauth2 = { version = "5.0.0", default-features = false, features = ["timing-resistant-secret-traits"] }
|
|
oauth2-reqwest = { version = "0.1.0-alpha.3", default-features = false }
|
|
pbkdf2 = { version = "0.12.2", default-features = false }
|
|
pin-project-lite = { version = "0.2.16", default-features = false }
|
|
proc-macro2 = { version = "1.0.106", default-features = false }
|
|
proptest = { version = "1.9.0", default-features = false, features = ["std"] }
|
|
quote = { version = "1.0.37", default-features = false }
|
|
rand = { version = "0.10.1", default-features = false, features = ["std", "std_rng", "thread_rng"] }
|
|
regex = { version = "1.12.2", default-features = false }
|
|
reqwest = { version = "0.13.1", default-features = false }
|
|
rmp-serde = { version = "1.3.0", default-features = false }
|
|
ruma = { git = "https://github.com/ruma/ruma", rev = "7680eebd9586669e1a4e5b1fd1c2c691221369d4", features = [
|
|
"client-api-c",
|
|
"compat-unset-avatar",
|
|
"compat-upload-signatures",
|
|
"compat-arbitrary-length-ids",
|
|
"compat-tag-info",
|
|
"compat-encrypted-stickers",
|
|
"compat-lax-room-create-deser",
|
|
"compat-lax-room-topic-deser",
|
|
"unstable-msc3230",
|
|
"unstable-msc3401",
|
|
"unstable-msc3417",
|
|
"unstable-msc3488",
|
|
"unstable-msc3489",
|
|
"unstable-msc4075",
|
|
"unstable-msc4140",
|
|
"unstable-msc4143",
|
|
"unstable-msc4171",
|
|
"unstable-msc4278",
|
|
"unstable-msc4286",
|
|
"unstable-msc4306",
|
|
"unstable-msc4308",
|
|
"unstable-msc4310",
|
|
] }
|
|
sentry = { version = "0.47.0", default-features = false }
|
|
sentry-tracing = { version = "0.47.0", default-features = false }
|
|
serde = { version = "1.0.228", default-features = false, features = ["std", "rc", "derive"] }
|
|
serde_html_form = { version = "0.2.8", default-features = false }
|
|
serde_json = { version = "1.0.145", default-features = false, features = ["std"] }
|
|
sha2 = { version = "0.10.9", default-features = false }
|
|
similar-asserts = { version = "1.7.0", default-features = false }
|
|
stream_assert = { version = "0.1.1", default-features = false }
|
|
syn = { version = "2.0.43", default-features = false, features = ["derive", "parsing", "printing", "clone-impls"] }
|
|
tempfile = { version = "3.23.0", default-features = false }
|
|
thiserror = { version = "2.0.17", default-features = false }
|
|
tokio = { version = "1.48.0", default-features = false, features = ["sync"] }
|
|
tokio-stream = { version = "0.1.17", default-features = false }
|
|
tracing = { version = "0.1.41", default-features = false, features = ["std"] }
|
|
tracing-appender = { version = "0.2.3", default-features = false }
|
|
tracing-core = { version = "0.1.34", default-features = false }
|
|
tracing-subscriber = { version = "0.3.20", default-features = false, features = ["std", "smallvec", "fmt"] }
|
|
unicode-normalization = { version = "0.1.25", default-features = false }
|
|
unicode-segmentation = { version = "1.12.0", default-features = false }
|
|
uniffi = { version = "0.31.0", default-features = false, features = ["cargo-metadata"] }
|
|
uniffi_bindgen = { version = "0.31.0", default-features = false, features = ["cargo-metadata"] }
|
|
url = { version = "2.5.7", default-features = false }
|
|
uuid = { version = "1.18.1", default-features = false }
|
|
vergen-gitcl = { version = "1.0.8", default-features = false }
|
|
vodozemac = { version = "0.9.0", default-features = false, features = ["libolm-compat", "insecure-pk-encryption"] }
|
|
wasm-bindgen = { version = "0.2.105", default-features = false }
|
|
wasm-bindgen-test = { version = "0.3.55", default-features = false, features = ["std"] }
|
|
web-sys = { version = "0.3.82", default-features = false }
|
|
wiremock = { version = "0.6.5", default-features = false }
|
|
zeroize = { version = "1.8.2", default-features = false }
|
|
|
|
matrix-sdk = { path = "crates/matrix-sdk", version = "0.16.0", default-features = false }
|
|
matrix-sdk-base = { path = "crates/matrix-sdk-base", version = "0.16.0" }
|
|
matrix-sdk-common = { path = "crates/matrix-sdk-common", version = "0.16.0" }
|
|
matrix-sdk-crypto = { path = "crates/matrix-sdk-crypto", version = "0.16.0" }
|
|
matrix-sdk-ffi-macros = { path = "bindings/matrix-sdk-ffi-macros", version = "0.7.0" }
|
|
matrix-sdk-indexeddb = { path = "crates/matrix-sdk-indexeddb", version = "0.16.0", default-features = false }
|
|
matrix-sdk-qrcode = { path = "crates/matrix-sdk-qrcode", version = "0.16.0" }
|
|
matrix-sdk-sqlite = { path = "crates/matrix-sdk-sqlite", version = "0.16.0", default-features = false }
|
|
matrix-sdk-store-encryption = { path = "crates/matrix-sdk-store-encryption", version = "0.16.0" }
|
|
matrix-sdk-test = { path = "testing/matrix-sdk-test", version = "0.16.0" }
|
|
matrix-sdk-test-utils = { path = "testing/matrix-sdk-test-utils", version = "0.16.0" }
|
|
matrix-sdk-ui = { path = "crates/matrix-sdk-ui", version = "0.16.0", default-features = false }
|
|
matrix-sdk-search = { path = "crates/matrix-sdk-search", version = "0.16.0" }
|
|
|
|
[workspace.lints.rust]
|
|
rust_2018_idioms = "warn"
|
|
semicolon_in_expressions_from_macros = "warn"
|
|
unexpected_cfgs = { level = "warn", check-cfg = [
|
|
'cfg(tarpaulin_include)', # Used by tarpaulin (code coverage)
|
|
'cfg(ruma_unstable_exhaustive_types)', # Used by Ruma's EventContent derive macro
|
|
] }
|
|
unused_extern_crates = "warn"
|
|
unused_import_braces = "warn"
|
|
unused_qualifications = "warn"
|
|
trivial_casts = "warn"
|
|
trivial_numeric_casts = "warn"
|
|
|
|
[workspace.lints.clippy]
|
|
assigning_clones = "allow"
|
|
box_default = "allow"
|
|
cloned_instead_of_copied = "warn"
|
|
dbg_macro = "warn"
|
|
inefficient_to_string = "warn"
|
|
macro_use_imports = "warn"
|
|
manual_let_else = "warn"
|
|
mut_mut = "warn"
|
|
needless_borrow = "warn"
|
|
nonstandard_macro_braces = "warn"
|
|
redundant_clone = "warn"
|
|
str_to_string = "warn"
|
|
todo = "warn"
|
|
unnecessary_semicolon = "warn"
|
|
unused_async = "warn"
|
|
|
|
# Default development profile; default for most Cargo commands, otherwise
|
|
# selected with `--debug`
|
|
[profile.dev]
|
|
# Saves a lot of disk space. If symbols are needed, use the dbg profile.
|
|
debug = 0
|
|
|
|
# Profile for debug builds with full optimization and minimal debug symbols.
|
|
# This should be just enough to have proper backtraces, having way smaller binaries
|
|
# (10% of the size with full debug symbols profile, like `reldbg`).
|
|
# This profile differs from `reldbg` in not containing the debug symbols needed for
|
|
# debugging with LLDB/GDB, trading that for binary size, allowing quick iterations
|
|
# of building the bindings, installing in a real device, testing your changes, repeat.
|
|
# It's also different from `dev` in having enough debug symbols to display backtraces.
|
|
[profile.reldev]
|
|
inherits = "dev"
|
|
opt-level = 3
|
|
debug = "line-tables-only"
|
|
strip = "debuginfo"
|
|
|
|
[profile.dev.package]
|
|
# Optimize quote even in debug mode. Speeds up proc-macros enough to account
|
|
# for the extra time of optimizing it for a clean build of matrix-sdk-ffi.
|
|
quote = { opt-level = 2 }
|
|
sha2 = { opt-level = 2 }
|
|
# faster runs for insta.rs snapshot testing
|
|
insta.opt-level = 3
|
|
similar.opt-level = 3
|
|
|
|
# Custom profile with full debugging info, use `--profile dbg` to select
|
|
[profile.dbg]
|
|
inherits = "dev"
|
|
debug = 2
|
|
|
|
# Custom profile for use in (debug) builds of the binding crates, use
|
|
# `--profile reldbg` to select
|
|
[profile.reldbg]
|
|
inherits = "dbg"
|
|
opt-level = 3
|
|
|
|
[profile.dist]
|
|
# Use release profile as a base
|
|
inherits = "release"
|
|
# Strip the minimal debug info, while still allowing us to have proper backtraces, but it will affect debuggers
|
|
strip = "debuginfo"
|
|
# Use link time optimizations
|
|
lto = true
|
|
# Use binary size optimization, since this is intended for distributed copies of the SDK
|
|
opt-level = "s"
|
|
|
|
[profile.profiling]
|
|
inherits = "release"
|
|
# LTO is too slow to compile.
|
|
lto = false
|
|
# Get symbol names for profiling purposes.
|
|
debug = true
|
|
|
|
[profile.bench]
|
|
inherits = "release"
|
|
lto = false
|
|
|
|
[patch.crates-io]
|
|
async-compat = { git = "https://github.com/element-hq/async-compat", rev = "5a27c8b290f1f1dcfc0c4ec22c464e38528aa591" }
|
|
const_panic = { git = "https://github.com/jplatte/const_panic", rev = "e0b317a9a7bde2d48a7d15b6a60d70e4a41d3b5f" }
|
|
# Needed to fix rotation log issue on Android (https://github.com/tokio-rs/tracing/issues/2937)
|
|
tracing = { git = "https://github.com/tokio-rs/tracing.git", rev = "20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05" }
|
|
tracing-core = { git = "https://github.com/tokio-rs/tracing.git", rev = "20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05" }
|
|
tracing-subscriber = { git = "https://github.com/tokio-rs/tracing.git", rev = "20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05" }
|
|
tracing-appender = { git = "https://github.com/tokio-rs/tracing.git", rev = "20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05" }
|