Files
matrix-rust-sdk/crates/matrix-sdk-base/Cargo.toml
2026-06-02 13:29:09 +02:00

127 lines
3.8 KiB
TOML

[package]
authors = ["Damir Jelić <poljar@termina.org.uk>"]
description = "The base component to build a Matrix client library."
edition = "2024"
homepage = "https://github.com/matrix-org/matrix-rust-sdk"
keywords = ["matrix", "chat", "messaging", "ruma", "nio"]
license = "Apache-2.0"
name = "matrix-sdk-base"
readme = "README.md"
repository = "https://github.com/matrix-org/matrix-rust-sdk"
rust-version.workspace = true
version = "0.18.0"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs", "--generate-link-to-definition"]
[features]
default = []
e2e-encryption = ["dep:matrix-sdk-crypto"]
js = [
"matrix-sdk-common/js",
"matrix-sdk-crypto?/js",
"ruma/js",
"matrix-sdk-store-encryption/js",
]
qrcode = ["matrix-sdk-crypto?/qrcode"]
automatic-room-key-forwarding = [
"matrix-sdk-crypto?/automatic-room-key-forwarding",
]
experimental-send-custom-to-device = [
"matrix-sdk-crypto?/experimental-send-custom-to-device",
]
# Enable experimental support for encrypting state events; see
# https://github.com/matrix-org/matrix-rust-sdk/issues/5397.
experimental-encrypted-state-events = [
"e2e-encryption",
"ruma/unstable-msc4362",
"matrix-sdk-crypto?/experimental-encrypted-state-events"
]
# Enable experimental support for pushing secrets
experimental-push-secrets = [
"e2e-encryption",
"matrix-sdk-crypto?/experimental-push-secrets"
]
uniffi = ["dep:uniffi", "matrix-sdk-crypto?/uniffi", "matrix-sdk-common/uniffi"]
# Private feature, see
# https://github.com/matrix-org/matrix-rust-sdk/pull/3749#issuecomment-2312939823 for the gory
# details.
test-send-sync = [
"matrix-sdk-common/test-send-sync",
"matrix-sdk-crypto?/test-send-sync",
]
# helpers for testing features build upon this
testing = [
"dep:assert_matches",
"dep:assert_matches2",
"dep:http",
"dep:matrix-sdk-test",
"matrix-sdk-crypto?/testing",
]
# Add support for inline media galleries via msgtypes
unstable-msc4274 = []
experimental-element-recent-emojis = []
[dependencies]
as_variant.workspace = true
assert_matches = { workspace = true, optional = true }
assert_matches2 = { workspace = true, optional = true }
async-trait.workspace = true
bitflags = { workspace = true, features = ["serde"] }
decancer = { version = "3.3.3", default-features = false }
eyeball = { workspace = true, features = ["async-lock"] }
eyeball-im.workspace = true
futures-util.workspace = true
growable-bloom-filter.workspace = true
http = { workspace = true, optional = true }
matrix-sdk-common.workspace = true
matrix-sdk-crypto = { workspace = true, optional = true }
matrix-sdk-store-encryption.workspace = true
matrix-sdk-test = { workspace = true, optional = true }
regex.workspace = true
ruma = { workspace = true, features = [
"unstable-msc2867",
"unstable-msc3381",
"unstable-msc4186",
"rand",
] }
serde = { workspace = true, features = ["rc"] }
serde_json.workspace = true
thiserror.workspace = true
tokio.workspace = true
tracing.workspace = true
unicode-normalization.workspace = true
uniffi = { workspace = true, optional = true }
[dev-dependencies]
anyhow.workspace = true
assert_matches.workspace = true
assert_matches2.workspace = true
assign = "1.1.1"
futures-executor.workspace = true
http.workspace = true
matrix-sdk-test.workspace = true
matrix-sdk-test-utils.workspace = true
proptest.workspace = true
similar-asserts.workspace = true
stream_assert.workspace = true
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
[target.'cfg(target_family = "wasm")'.dev-dependencies]
wasm-bindgen-test.workspace = true
getrandom3 = { version = "0.3.4", package = "getrandom", default-features = false, features = ["wasm_js"] }
gloo-timers = { workspace = true, features = ["futures"] }
[lints]
workspace = true