mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-05-09 00:15:23 -04:00
189 lines
6.1 KiB
TOML
189 lines
6.1 KiB
TOML
[package]
|
|
authors = ["Damir Jelić <poljar@termina.org.uk>"]
|
|
description = "A high level Matrix client-server library."
|
|
edition = "2021"
|
|
homepage = "https://github.com/matrix-org/matrix-rust-sdk"
|
|
keywords = ["matrix", "chat", "messaging", "ruma", "nio"]
|
|
license = "Apache-2.0"
|
|
name = "matrix-sdk"
|
|
readme = "README.md"
|
|
repository = "https://github.com/matrix-org/matrix-rust-sdk"
|
|
rust-version.workspace = true
|
|
version = "0.14.0"
|
|
|
|
[package.metadata.docs.rs]
|
|
features = ["docsrs"]
|
|
rustdoc-args = ["--cfg", "docsrs", "--generate-link-to-definition"]
|
|
|
|
[features]
|
|
default = ["e2e-encryption", "automatic-room-key-forwarding", "sqlite", "native-tls", "experimental-search"]
|
|
testing = [
|
|
"matrix-sdk-sqlite?/testing",
|
|
"matrix-sdk-indexeddb?/testing",
|
|
"matrix-sdk-base/testing",
|
|
"wiremock",
|
|
"matrix-sdk-test",
|
|
"assert_matches2",
|
|
]
|
|
|
|
e2e-encryption = [
|
|
"matrix-sdk-base/e2e-encryption",
|
|
# activate crypto-store on sqlite if given
|
|
"matrix-sdk-sqlite?/crypto-store",
|
|
# activate on indexeddb if given
|
|
"matrix-sdk-indexeddb?/e2e-encryption",
|
|
]
|
|
js = ["matrix-sdk-common/js", "matrix-sdk-base/js"]
|
|
|
|
sqlite = [
|
|
"dep:matrix-sdk-sqlite",
|
|
"matrix-sdk-sqlite?/state-store",
|
|
"matrix-sdk-sqlite?/event-cache",
|
|
]
|
|
bundled-sqlite = ["sqlite", "matrix-sdk-sqlite?/bundled"]
|
|
indexeddb = ["matrix-sdk-indexeddb/state-store"]
|
|
|
|
qrcode = ["e2e-encryption", "matrix-sdk-base/qrcode"]
|
|
automatic-room-key-forwarding = ["e2e-encryption", "matrix-sdk-base/automatic-room-key-forwarding"]
|
|
experimental-send-custom-to-device = ["e2e-encryption", "matrix-sdk-base/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",
|
|
"matrix-sdk-base/experimental-encrypted-state-events",
|
|
"matrix-sdk-sqlite/experimental-encrypted-state-events"
|
|
]
|
|
|
|
markdown = ["ruma/markdown"]
|
|
native-tls = ["reqwest/native-tls"]
|
|
rustls-tls = ["reqwest/rustls-tls"]
|
|
socks = ["reqwest/socks"]
|
|
local-server = ["dep:axum", "dep:rand", "dep:tower"]
|
|
sso-login = ["local-server"]
|
|
|
|
uniffi = ["dep:uniffi", "matrix-sdk-base/uniffi", "dep:matrix-sdk-ffi-macros"]
|
|
|
|
experimental-widgets = ["dep:uuid", "experimental-send-custom-to-device"]
|
|
|
|
docsrs = ["e2e-encryption", "sqlite", "indexeddb", "sso-login", "qrcode"]
|
|
|
|
# Add support for inline media galleries via msgtypes
|
|
unstable-msc4274 = ["ruma/unstable-msc4274", "matrix-sdk-base/unstable-msc4274"]
|
|
|
|
experimental-search = ["matrix-sdk-search"]
|
|
|
|
[dependencies]
|
|
anyhow = { workspace = true, optional = true }
|
|
anymap2 = "0.13.0"
|
|
aquamarine.workspace = true
|
|
as_variant.workspace = true
|
|
assert_matches2 = { workspace = true, optional = true }
|
|
async-channel = "2.5.0"
|
|
async-stream.workspace = true
|
|
async-trait.workspace = true
|
|
axum = { version = "0.8.4", optional = true }
|
|
bytes = "1.10.1"
|
|
bytesize = "2.0.1"
|
|
cfg-if = "1.0.3"
|
|
event-listener = "5.4.1"
|
|
eyeball.workspace = true
|
|
eyeball-im.workspace = true
|
|
eyre = { version = "0.6.12", optional = true }
|
|
futures-core.workspace = true
|
|
futures-util.workspace = true
|
|
http.workspace = true
|
|
imbl = { workspace = true, features = ["serde"] }
|
|
indexmap.workspace = true
|
|
itertools.workspace = true
|
|
js_int = "0.2.2"
|
|
language-tags = { version = "0.3.2" }
|
|
matrix-sdk-base.workspace = true
|
|
matrix-sdk-common.workspace = true
|
|
matrix-sdk-ffi-macros = { workspace = true, optional = true }
|
|
matrix-sdk-indexeddb = { workspace = true, optional = true }
|
|
matrix-sdk-search = { workspace = true, optional = true }
|
|
matrix-sdk-sqlite = { workspace = true, optional = true }
|
|
matrix-sdk-test = { workspace = true, optional = true }
|
|
mime.workspace = true
|
|
mime2ext = "0.1.54"
|
|
oauth2.workspace = true
|
|
once_cell.workspace = true
|
|
percent-encoding = "2.3.2"
|
|
pin-project-lite.workspace = true
|
|
rand = { workspace = true, optional = true }
|
|
ruma = { workspace = true, features = [
|
|
"rand",
|
|
"federation-api-c",
|
|
"unstable-msc2448",
|
|
"unstable-msc4191",
|
|
"unstable-msc3930",
|
|
"unstable-msc3245-v1-compat",
|
|
"unstable-msc4230",
|
|
"unstable-msc2967",
|
|
"unstable-msc4108",
|
|
"unstable-msc4133",
|
|
"unstable-msc4278",
|
|
] }
|
|
serde.workspace = true
|
|
serde_html_form.workspace = true
|
|
serde_json.workspace = true
|
|
sha2.workspace = true
|
|
tempfile.workspace = true
|
|
thiserror.workspace = true
|
|
tokio-stream = { workspace = true, features = ["sync"] }
|
|
tokio-util = "0.7.16"
|
|
tower = { version = "0.5.2", features = ["util"], optional = true }
|
|
tracing = { workspace = true, features = ["attributes"] }
|
|
uniffi = { workspace = true, optional = true }
|
|
url = { workspace = true, features = ["serde"] }
|
|
urlencoding = "2.1.3"
|
|
uuid = { workspace = true, features = ["serde", "v4"], optional = true }
|
|
vodozemac.workspace = true
|
|
zeroize.workspace = true
|
|
|
|
[target.'cfg(not(target_family = "wasm"))'.dependencies]
|
|
backon = "1.5.2"
|
|
# only activate reqwest's stream feature on non-wasm, the wasm part seems to not
|
|
# support *sending* streams, which makes it useless for us.
|
|
reqwest = { workspace = true, features = ["stream", "gzip", "http2"] }
|
|
tokio = { workspace = true, features = ["fs", "rt", "macros"] }
|
|
wiremock = { workspace = true, optional = true }
|
|
|
|
[target.'cfg(target_family = "wasm")'.dependencies]
|
|
gloo-timers = { workspace = true, features = ["futures"] }
|
|
reqwest = { workspace = true, features = ["gzip", "http2"] }
|
|
tokio = { workspace = true, features = ["macros"] }
|
|
|
|
[dev-dependencies]
|
|
anyhow.workspace = true
|
|
assert-json-diff.workspace = true
|
|
assert_matches.workspace = true
|
|
assert_matches2.workspace = true
|
|
dirs = "6.0.0"
|
|
futures-executor.workspace = true
|
|
insta.workspace = true
|
|
matrix-sdk-base = { workspace = true, features = ["testing"] }
|
|
matrix-sdk-test.workspace = true
|
|
matrix-sdk-test-utils.workspace = true
|
|
serde_urlencoded = "0.7.1"
|
|
similar-asserts.workspace = true
|
|
stream_assert.workspace = true
|
|
tokio-test = "0.4.4"
|
|
tracing-subscriber = { workspace = true, features = ["env-filter"] }
|
|
|
|
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
|
|
proptest.workspace = true
|
|
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
|
|
wiremock.workspace = true
|
|
|
|
[target.'cfg(target_family = "wasm")'.dev-dependencies]
|
|
wasm-bindgen-test.workspace = true
|
|
|
|
[[test]]
|
|
name = "integration"
|
|
required-features = ["testing"]
|
|
|
|
[lints]
|
|
workspace = true
|