atagen

matrix-rust-sdk

public
Star0
Watch0
ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk.git

Blame: crates/matrix-sdk/Cargo.toml

7ff8adafe9e4atagen2026-10-22 12:30 UTC1
[package]
7ff8adafe9e4atagen2026-10-22 12:30 UTC2
authors = ["Damir Jelić <poljar@termina.org.uk>"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC3
description = "A high level Matrix client-server library."
7ff8adafe9e4atagen2026-10-22 12:30 UTC4
edition = "2024"
7ff8adafe9e4atagen2026-10-22 12:30 UTC5
homepage = "https://github.com/matrix-org/matrix-rust-sdk"
7ff8adafe9e4atagen2026-10-22 12:30 UTC6
keywords = ["matrix", "chat", "messaging", "ruma", "nio"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC7
license = "Apache-2.0"
7ff8adafe9e4atagen2026-10-22 12:30 UTC8
name = "matrix-sdk"
7ff8adafe9e4atagen2026-10-22 12:30 UTC9
readme = "README.md"
7ff8adafe9e4atagen2026-10-22 12:30 UTC10
repository = "https://github.com/matrix-org/matrix-rust-sdk"
7ff8adafe9e4atagen2026-10-22 12:30 UTC11
rust-version.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC12
version = "0.18.0"
7ff8adafe9e4atagen2026-10-22 12:30 UTC13
7ff8adafe9e4atagen2026-10-22 12:30 UTC14
[package.metadata.docs.rs]
7ff8adafe9e4atagen2026-10-22 12:30 UTC15
features = ["docsrs"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC16
rustdoc-args = ["--cfg", "docsrs", "--generate-link-to-definition"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC17
7ff8adafe9e4atagen2026-10-22 12:30 UTC18
[features]
7ff8adafe9e4atagen2026-10-22 12:30 UTC19
default = ["e2e-encryption", "automatic-room-key-forwarding", "sqlite"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC20
testing = [
7ff8adafe9e4atagen2026-10-22 12:30 UTC21
    "matrix-sdk-sqlite?/testing",
7ff8adafe9e4atagen2026-10-22 12:30 UTC22
    "matrix-sdk-indexeddb?/testing",
7ff8adafe9e4atagen2026-10-22 12:30 UTC23
    "matrix-sdk-base/testing",
7ff8adafe9e4atagen2026-10-22 12:30 UTC24
    "wiremock",
7ff8adafe9e4atagen2026-10-22 12:30 UTC25
    "matrix-sdk-test",
7ff8adafe9e4atagen2026-10-22 12:30 UTC26
    "assert_matches2",
7ff8adafe9e4atagen2026-10-22 12:30 UTC27
]
7ff8adafe9e4atagen2026-10-22 12:30 UTC28
7ff8adafe9e4atagen2026-10-22 12:30 UTC29
e2e-encryption = [
7ff8adafe9e4atagen2026-10-22 12:30 UTC30
    "matrix-sdk-base/e2e-encryption",
7ff8adafe9e4atagen2026-10-22 12:30 UTC31
    # activate crypto-store on sqlite if given
7ff8adafe9e4atagen2026-10-22 12:30 UTC32
    "matrix-sdk-sqlite?/crypto-store",
7ff8adafe9e4atagen2026-10-22 12:30 UTC33
    # activate on indexeddb if given
7ff8adafe9e4atagen2026-10-22 12:30 UTC34
    "matrix-sdk-indexeddb?/e2e-encryption",
7ff8adafe9e4atagen2026-10-22 12:30 UTC35
]
7ff8adafe9e4atagen2026-10-22 12:30 UTC36
js = [
7ff8adafe9e4atagen2026-10-22 12:30 UTC37
    "matrix-sdk-common/js",
7ff8adafe9e4atagen2026-10-22 12:30 UTC38
    "matrix-sdk-base/js",
7ff8adafe9e4atagen2026-10-22 12:30 UTC39
]
7ff8adafe9e4atagen2026-10-22 12:30 UTC40
7ff8adafe9e4atagen2026-10-22 12:30 UTC41
sqlite = [
7ff8adafe9e4atagen2026-10-22 12:30 UTC42
    "dep:matrix-sdk-sqlite",
7ff8adafe9e4atagen2026-10-22 12:30 UTC43
    "matrix-sdk-sqlite?/state-store",
7ff8adafe9e4atagen2026-10-22 12:30 UTC44
    "matrix-sdk-sqlite?/event-cache",
7ff8adafe9e4atagen2026-10-22 12:30 UTC45
]
7ff8adafe9e4atagen2026-10-22 12:30 UTC46
bundled-sqlite = ["sqlite", "matrix-sdk-sqlite?/bundled"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC47
indexeddb = [
7ff8adafe9e4atagen2026-10-22 12:30 UTC48
    "matrix-sdk-indexeddb/state-store",
7ff8adafe9e4atagen2026-10-22 12:30 UTC49
    "matrix-sdk-indexeddb/event-cache-store",
7ff8adafe9e4atagen2026-10-22 12:30 UTC50
    "matrix-sdk-indexeddb/media-store"
7ff8adafe9e4atagen2026-10-22 12:30 UTC51
]
7ff8adafe9e4atagen2026-10-22 12:30 UTC52
7ff8adafe9e4atagen2026-10-22 12:30 UTC53
qrcode = ["e2e-encryption", "matrix-sdk-base/qrcode"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC54
automatic-room-key-forwarding = ["e2e-encryption", "matrix-sdk-base/automatic-room-key-forwarding"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC55
experimental-send-custom-to-device = ["e2e-encryption", "matrix-sdk-base/experimental-send-custom-to-device"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC56
7ff8adafe9e4atagen2026-10-22 12:30 UTC57
# Enable experimental support for encrypting state events; see
7ff8adafe9e4atagen2026-10-22 12:30 UTC58
# https://github.com/matrix-org/matrix-rust-sdk/issues/5397.
7ff8adafe9e4atagen2026-10-22 12:30 UTC59
experimental-encrypted-state-events = [
7ff8adafe9e4atagen2026-10-22 12:30 UTC60
    "e2e-encryption",
7ff8adafe9e4atagen2026-10-22 12:30 UTC61
    "matrix-sdk-base/experimental-encrypted-state-events",
7ff8adafe9e4atagen2026-10-22 12:30 UTC62
    "matrix-sdk-sqlite/experimental-encrypted-state-events",
7ff8adafe9e4atagen2026-10-22 12:30 UTC63
    "matrix-sdk-test?/experimental-encrypted-state-events",
7ff8adafe9e4atagen2026-10-22 12:30 UTC64
]
7ff8adafe9e4atagen2026-10-22 12:30 UTC65
7ff8adafe9e4atagen2026-10-22 12:30 UTC66
experimental-push-secrets = [
7ff8adafe9e4atagen2026-10-22 12:30 UTC67
    "e2e-encryption",
7ff8adafe9e4atagen2026-10-22 12:30 UTC68
    "matrix-sdk-base/experimental-push-secrets",
7ff8adafe9e4atagen2026-10-22 12:30 UTC69
    "matrix-sdk-sqlite?/experimental-push-secrets",
7ff8adafe9e4atagen2026-10-22 12:30 UTC70
    "matrix-sdk-indexeddb?/experimental-push-secrets",
7ff8adafe9e4atagen2026-10-22 12:30 UTC71
    "ruma/unstable-msc4385",
7ff8adafe9e4atagen2026-10-22 12:30 UTC72
]
7ff8adafe9e4atagen2026-10-22 12:30 UTC73
7ff8adafe9e4atagen2026-10-22 12:30 UTC74
markdown = ["ruma/markdown"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC75
socks = ["reqwest/socks"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC76
local-server = ["dep:axum", "dep:rand", "dep:tower"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC77
sso-login = ["local-server"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC78
# Enable methods that make calls to the federation API.
7ff8adafe9e4atagen2026-10-22 12:30 UTC79
federation-api = ["ruma/federation-api-c"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC80
7ff8adafe9e4atagen2026-10-22 12:30 UTC81
uniffi = ["dep:uniffi", "matrix-sdk-base/uniffi", "dep:matrix-sdk-ffi-macros"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC82
7ff8adafe9e4atagen2026-10-22 12:30 UTC83
experimental-widgets = ["dep:uuid", "experimental-send-custom-to-device"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC84
7ff8adafe9e4atagen2026-10-22 12:30 UTC85
docsrs = ["e2e-encryption", "sqlite", "indexeddb", "sso-login", "qrcode", "federation-api"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC86
7ff8adafe9e4atagen2026-10-22 12:30 UTC87
# Add support for inline media galleries via msgtypes
7ff8adafe9e4atagen2026-10-22 12:30 UTC88
unstable-msc4274 = ["ruma/unstable-msc4274", "matrix-sdk-base/unstable-msc4274"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC89
7ff8adafe9e4atagen2026-10-22 12:30 UTC90
experimental-search = ["matrix-sdk-search"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC91
7ff8adafe9e4atagen2026-10-22 12:30 UTC92
experimental-element-recent-emojis = ["matrix-sdk-base/experimental-element-recent-emojis"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC93
7ff8adafe9e4atagen2026-10-22 12:30 UTC94
[dependencies]
7ff8adafe9e4atagen2026-10-22 12:30 UTC95
anyhow = { workspace = true, optional = true }
7ff8adafe9e4atagen2026-10-22 12:30 UTC96
anymap2 = { version = "0.13.0", default-features = false }
7ff8adafe9e4atagen2026-10-22 12:30 UTC97
aquamarine.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC98
as_variant.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC99
assert_matches2 = { workspace = true, optional = true }
7ff8adafe9e4atagen2026-10-22 12:30 UTC100
async-channel = "2.5.0"
7ff8adafe9e4atagen2026-10-22 12:30 UTC101
async-stream.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC102
async-trait.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC103
async-once-cell.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC104
axum = { version = "0.8.4", optional = true }
7ff8adafe9e4atagen2026-10-22 12:30 UTC105
bytes = { version = "1.11.1", default-features = false, features = ["std"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC106
bytesize = { version = "2.3.0", default-features = false, features = ["std"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC107
cfg-if.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC108
event-listener = "5.4.1"
7ff8adafe9e4atagen2026-10-22 12:30 UTC109
eyeball.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC110
eyeball-im.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC111
eyre = { version = "0.6.12", optional = true }
7ff8adafe9e4atagen2026-10-22 12:30 UTC112
futures-core.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC113
futures-util = { workspace = true, features = ["async-await-macro"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC114
http.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC115
imbl = { workspace = true, features = ["serde"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC116
indexmap.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC117
itertools.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC118
js_int = "0.2.2"
7ff8adafe9e4atagen2026-10-22 12:30 UTC119
language-tags = { version = "0.3.2" }
7ff8adafe9e4atagen2026-10-22 12:30 UTC120
matrix-sdk-base.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC121
matrix-sdk-common.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC122
matrix-sdk-ffi-macros = { workspace = true, optional = true }
7ff8adafe9e4atagen2026-10-22 12:30 UTC123
matrix-sdk-indexeddb = { workspace = true, optional = true }
7ff8adafe9e4atagen2026-10-22 12:30 UTC124
matrix-sdk-search = { workspace = true, optional = true }
7ff8adafe9e4atagen2026-10-22 12:30 UTC125
matrix-sdk-sqlite = { workspace = true, optional = true }
7ff8adafe9e4atagen2026-10-22 12:30 UTC126
matrix-sdk-test = { workspace = true, optional = true }
7ff8adafe9e4atagen2026-10-22 12:30 UTC127
mime.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC128
mime2ext = "0.1.54"
7ff8adafe9e4atagen2026-10-22 12:30 UTC129
oauth2.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC130
oauth2-reqwest.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC131
percent-encoding = "2.3.2"
7ff8adafe9e4atagen2026-10-22 12:30 UTC132
pin-project-lite.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC133
rand = { workspace = true, optional = true }
7ff8adafe9e4atagen2026-10-22 12:30 UTC134
ruma = { workspace = true, features = [
7ff8adafe9e4atagen2026-10-22 12:30 UTC135
    "rand",
7ff8adafe9e4atagen2026-10-22 12:30 UTC136
    "unstable-msc2448",
7ff8adafe9e4atagen2026-10-22 12:30 UTC137
    "unstable-msc3930",
7ff8adafe9e4atagen2026-10-22 12:30 UTC138
    "unstable-msc3245-v1-compat",
7ff8adafe9e4atagen2026-10-22 12:30 UTC139
    "unstable-msc4108",
7ff8adafe9e4atagen2026-10-22 12:30 UTC140
    "unstable-msc4278",
7ff8adafe9e4atagen2026-10-22 12:30 UTC141
] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC142
serde.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC143
serde_html_form.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC144
serde_json.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC145
sha2.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC146
tempfile.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC147
thiserror.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC148
tokio-stream = { workspace = true, features = ["sync"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC149
tokio-util = "0.7.17"
7ff8adafe9e4atagen2026-10-22 12:30 UTC150
tower = { version = "0.5.2", features = ["util"], optional = true }
7ff8adafe9e4atagen2026-10-22 12:30 UTC151
tracing = { workspace = true, features = ["attributes"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC152
uniffi = { workspace = true, optional = true }
7ff8adafe9e4atagen2026-10-22 12:30 UTC153
url = { workspace = true, features = ["serde"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC154
urlencoding = "2.1.3"
7ff8adafe9e4atagen2026-10-22 12:30 UTC155
uuid = { workspace = true, features = ["serde", "v4"], optional = true }
7ff8adafe9e4atagen2026-10-22 12:30 UTC156
vodozemac.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC157
zeroize.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC158
7ff8adafe9e4atagen2026-10-22 12:30 UTC159
[target.'cfg(not(target_family = "wasm"))'.dependencies]
7ff8adafe9e4atagen2026-10-22 12:30 UTC160
backon = "1.6.0"
7ff8adafe9e4atagen2026-10-22 12:30 UTC161
# only activate reqwest's stream feature on non-wasm, the wasm part seems to not
7ff8adafe9e4atagen2026-10-22 12:30 UTC162
# support *sending* streams, which makes it useless for us.
7ff8adafe9e4atagen2026-10-22 12:30 UTC163
reqwest = { workspace = true, features = ["stream", "gzip", "http2", "rustls"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC164
tokio = { workspace = true, features = ["fs", "rt", "macros"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC165
wiremock = { workspace = true, optional = true }
7ff8adafe9e4atagen2026-10-22 12:30 UTC166
7ff8adafe9e4atagen2026-10-22 12:30 UTC167
[target.'cfg(target_family = "wasm")'.dependencies]
7ff8adafe9e4atagen2026-10-22 12:30 UTC168
gloo-timers = { workspace = true, features = ["futures"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC169
reqwest = { workspace = true, features = ["gzip", "http2", "rustls"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC170
tokio = { workspace = true, features = ["macros"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC171
7ff8adafe9e4atagen2026-10-22 12:30 UTC172
[dev-dependencies]
7ff8adafe9e4atagen2026-10-22 12:30 UTC173
anyhow.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC174
assert-json-diff.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC175
assert_matches.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC176
assert_matches2.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC177
dirs = "6.0.0"
7ff8adafe9e4atagen2026-10-22 12:30 UTC178
futures-executor.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC179
insta.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC180
matrix-sdk-base = { workspace = true, features = ["testing"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC181
matrix-sdk-test.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC182
matrix-sdk-test-utils.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC183
serde_urlencoded = "0.7.1"
7ff8adafe9e4atagen2026-10-22 12:30 UTC184
similar-asserts.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC185
stream_assert.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC186
tokio-test = "0.4.4"
7ff8adafe9e4atagen2026-10-22 12:30 UTC187
tracing-subscriber = { workspace = true, features = ["env-filter"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC188
7ff8adafe9e4atagen2026-10-22 12:30 UTC189
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
7ff8adafe9e4atagen2026-10-22 12:30 UTC190
ctor = "0.2.9"
7ff8adafe9e4atagen2026-10-22 12:30 UTC191
proptest.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC192
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
7ff8adafe9e4atagen2026-10-22 12:30 UTC193
wiremock.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC194
7ff8adafe9e4atagen2026-10-22 12:30 UTC195
[target.'cfg(target_family = "wasm")'.dev-dependencies]
7ff8adafe9e4atagen2026-10-22 12:30 UTC196
wasm-bindgen-test.workspace = true
7ff8adafe9e4atagen2026-10-22 12:30 UTC197
7ff8adafe9e4atagen2026-10-22 12:30 UTC198
[target.'cfg(target_os = "android")'.dependencies]
7ff8adafe9e4atagen2026-10-22 12:30 UTC199
rustls = "0.23.38"
7ff8adafe9e4atagen2026-10-22 12:30 UTC200
rustls-pki-types = "1.14.0"
7ff8adafe9e4atagen2026-10-22 12:30 UTC201
rustls-native-certs = "0.8.3"
7ff8adafe9e4atagen2026-10-22 12:30 UTC202
webpki-roots = "1.0.6"
7ff8adafe9e4atagen2026-10-22 12:30 UTC203
7ff8adafe9e4atagen2026-10-22 12:30 UTC204
[[test]]
7ff8adafe9e4atagen2026-10-22 12:30 UTC205
name = "integration"
7ff8adafe9e4atagen2026-10-22 12:30 UTC206
required-features = ["testing"]
7ff8adafe9e4atagen2026-10-22 12:30 UTC207
7aace883fbe0atagen2026-10-24 23:37 UTC208
[[test]]
7aace883fbe0atagen2026-10-24 23:37 UTC209
name = "response_commit"
7aace883fbe0atagen2026-10-24 23:37 UTC210
required-features = ["testing", "e2e-encryption"]
7aace883fbe0atagen2026-10-24 23:37 UTC211
ef3c294b31ccatagen2026-10-25 02:15 UTC212
[[test]]
ef3c294b31ccatagen2026-10-25 02:15 UTC213
name = "history_reseed"
ef3c294b31ccatagen2026-10-25 02:15 UTC214
required-features = ["testing"]
ef3c294b31ccatagen2026-10-25 02:15 UTC215
49a9cd1aff19atagen2026-10-25 05:37 UTC216
[[test]]
49a9cd1aff19atagen2026-10-25 05:37 UTC217
name = "segmented_history"
49a9cd1aff19atagen2026-10-25 05:37 UTC218
required-features = ["testing"]
49a9cd1aff19atagen2026-10-25 05:37 UTC219
49a9cd1aff19atagen2026-10-25 05:37 UTC220
[[test]]
49a9cd1aff19atagen2026-10-25 05:37 UTC221
name = "recent_history"
49a9cd1aff19atagen2026-10-25 05:37 UTC222
required-features = ["testing"]
49a9cd1aff19atagen2026-10-25 05:37 UTC223
7ff8adafe9e4atagen2026-10-22 12:30 UTC224
[lints]
7ff8adafe9e4atagen2026-10-22 12:30 UTC225
workspace = true