-
Notifications
You must be signed in to change notification settings - Fork 279
/
Copy pathCargo.toml
159 lines (143 loc) · 5.6 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
[package]
authors = ["Damir Jelić <[email protected]>"]
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.11.0"
[package.metadata.docs.rs]
features = ["docsrs"]
rustdoc-args = ["--cfg", "docsrs"]
[features]
default = ["e2e-encryption", "automatic-room-key-forwarding", "sqlite", "native-tls"]
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",
"matrix-sdk-sqlite?/crypto-store", # activate crypto-store on sqlite if given
"matrix-sdk-indexeddb?/e2e-encryption", # activate on indexeddb if given
]
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"]
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"]
docsrs = ["e2e-encryption", "sqlite", "indexeddb", "sso-login", "qrcode"]
experimental-share-history-on-invite = []
[dependencies]
anyhow = { workspace = true, optional = true }
anymap2 = "0.13.0"
aquamarine = { workspace = true }
assert_matches2 = { workspace = true, optional = true }
as_variant = { workspace = true }
async-channel = "2.3.1"
async-stream = { workspace = true }
async-trait = { workspace = true }
axum = { version = "0.8.1", optional = true }
bytes = "1.9.0"
bytesize = "2.0.1"
event-listener = "5.4.0"
eyeball = { workspace = true }
eyeball-im = { workspace = true }
eyre = { version = "0.6.12", optional = true }
futures-core = { workspace = true }
futures-util = { workspace = true }
growable-bloom-filter = { workspace = true }
http = { workspace = true }
imbl = { workspace = true, features = ["serde"] }
indexmap = { 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-sqlite = { workspace = true, optional = true }
matrix-sdk-test = { workspace = true, optional = true }
mime = { workspace = true }
mime2ext = "0.1.53"
oauth2 = { version = "5.0.0", default-features = false, features = ["reqwest", "timing-resistant-secret-traits"] }
once_cell = { workspace = true }
percent-encoding = "2.3.1"
pin-project-lite = { workspace = true }
rand = { workspace = true, optional = true }
ruma = { workspace = true, features = [
"rand",
"unstable-msc2448",
"unstable-msc2965",
"unstable-msc3930",
"unstable-msc3245-v1-compat",
"unstable-msc2867",
"unstable-msc4230",
"unstable-msc2967",
"unstable-msc4108",
] }
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.13"
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(target_arch = "wasm32")'.dependencies]
gloo-timers = { workspace = true, features = ["futures"] }
reqwest = { workspace = true, features = ["gzip", "http2"] }
tokio = { workspace = true, features = ["macros"] }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
backon = "1.5.0"
# 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 }
[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 }
matrix-sdk-base = { workspace = true, features = ["testing"] }
matrix-sdk-test = { workspace = true }
serde_urlencoded = "0.7.1"
similar-asserts = { workspace = true }
stream_assert = { workspace = true }
tracing-subscriber = { workspace = true, features = ["env-filter"] }
tokio-test = "0.4.4"
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
wasm-bindgen-test = { workspace = true }
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
proptest = { workspace = true }
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
wiremock = { workspace = true }
[[test]]
name = "integration"
required-features = ["testing"]
[lints]
workspace = true