atagen

matrix-rust-sdk

public
Star0
Watch0
ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk.git
crates/matrix-sdk-base/Cargo.tomlToml126 lines3.8 KB
1
[package]
2
authors = ["Damir Jelić <poljar@termina.org.uk>"]
3
description = "The base component to build a Matrix client library."
4
edition = "2024"
5
homepage = "https://github.com/matrix-org/matrix-rust-sdk"
6
keywords = ["matrix", "chat", "messaging", "ruma", "nio"]
7
license = "Apache-2.0"
8
name = "matrix-sdk-base"
9
readme = "README.md"
10
repository = "https://github.com/matrix-org/matrix-rust-sdk"
11
rust-version.workspace = true
12
version = "0.18.0"
13
14
[package.metadata.docs.rs]
15
all-features = true
16
rustdoc-args = ["--cfg", "docsrs", "--generate-link-to-definition"]
17
18
[features]
19
default = []
20
e2e-encryption = ["dep:matrix-sdk-crypto"]
21
js = [
22
    "matrix-sdk-common/js",
23
    "matrix-sdk-crypto?/js",
24
    "ruma/js",
25
    "matrix-sdk-store-encryption/js",
26
]
27
qrcode = ["matrix-sdk-crypto?/qrcode"]
28
automatic-room-key-forwarding = [
29
    "matrix-sdk-crypto?/automatic-room-key-forwarding",
30
]
31
experimental-send-custom-to-device = [
32
    "matrix-sdk-crypto?/experimental-send-custom-to-device",
33
]
34
35
# Enable experimental support for encrypting state events; see
36
# https://github.com/matrix-org/matrix-rust-sdk/issues/5397.
37
experimental-encrypted-state-events = [
38
    "e2e-encryption",
39
    "ruma/unstable-msc4362",
40
    "matrix-sdk-crypto?/experimental-encrypted-state-events"
41
]
42
43
# Enable experimental support for pushing secrets
44
experimental-push-secrets = [
45
    "e2e-encryption",
46
    "matrix-sdk-crypto?/experimental-push-secrets"
47
]
48
49
uniffi = ["dep:uniffi", "matrix-sdk-crypto?/uniffi", "matrix-sdk-common/uniffi"]
50
51
# Private feature, see
52
# https://github.com/matrix-org/matrix-rust-sdk/pull/3749#issuecomment-2312939823 for the gory
53
# details.
54
test-send-sync = [
55
    "matrix-sdk-common/test-send-sync",
56
    "matrix-sdk-crypto?/test-send-sync",
57
]
58
59
# helpers for testing features build upon this
60
testing = [
61
    "dep:assert_matches",
62
    "dep:assert_matches2",
63
    "dep:http",
64
    "dep:matrix-sdk-test",
65
    "matrix-sdk-crypto?/testing",
66
]
67
68
# Add support for inline media galleries via msgtypes
69
unstable-msc4274 = []
70
71
experimental-element-recent-emojis = []
72
73
[dependencies]
74
as_variant.workspace = true
75
assert_matches = { workspace = true, optional = true }
76
assert_matches2 = { workspace = true, optional = true }
77
async-trait.workspace = true
78
bitflags = { workspace = true, features = ["serde"] }
79
decancer = { version = "3.3.3", default-features = false }
80
eyeball = { workspace = true, features = ["async-lock"] }
81
eyeball-im.workspace = true
82
futures-util.workspace = true
83
growable-bloom-filter.workspace = true
84
http = { workspace = true, optional = true }
85
matrix-sdk-common.workspace = true
86
matrix-sdk-crypto = { workspace = true, optional = true }
87
matrix-sdk-store-encryption.workspace = true
88
matrix-sdk-test = { workspace = true, optional = true }
89
regex.workspace = true
90
ruma = { workspace = true, features = [
91
    "unstable-msc2867",
92
    "unstable-msc3381",
93
    "unstable-msc4186",
94
    "rand",
95
] }
96
serde = { workspace = true, features = ["rc"] }
97
serde_json.workspace = true
98
thiserror.workspace = true
99
tokio.workspace = true
100
tracing.workspace = true
101
unicode-normalization.workspace = true
102
uniffi = { workspace = true, optional = true }
103
104
[dev-dependencies]
105
anyhow.workspace = true
106
assert_matches.workspace = true
107
assert_matches2.workspace = true
108
assign = "1.1.1"
109
futures-executor.workspace = true
110
http.workspace = true
111
matrix-sdk-test.workspace = true
112
matrix-sdk-test-utils.workspace = true
113
proptest.workspace = true
114
similar-asserts.workspace = true
115
stream_assert.workspace = true
116
117
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
118
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
119
120
[target.'cfg(target_family = "wasm")'.dev-dependencies]
121
wasm-bindgen-test.workspace = true
122
getrandom3 = { version = "0.3.4", package = "getrandom", default-features = false, features = ["wasm_js"] }
123
gloo-timers = { workspace = true, features = ["futures"] }
124
125
[lints]
126
workspace = true