-
Notifications
You must be signed in to change notification settings - Fork 239
/
Cargo.toml
166 lines (149 loc) · 5.92 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
160
161
162
163
164
165
166
[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.7.1"
[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-base/message-ids",
"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"]
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"]
sso-login = ["dep:axum", "dep:rand", "dep:tower"]
image-proc = ["dep:image"]
image-rayon = ["image-proc", "image?/rayon"]
uniffi = ["dep:uniffi", "matrix-sdk-base/uniffi"]
experimental-oidc = [
"ruma/unstable-msc2967",
"ruma/unstable-msc4108",
"dep:chrono",
"dep:http_old",
"dep:language-tags",
"dep:mas-oidc-client",
"dep:rand",
"dep:sha2",
"dep:tower",
"dep:openidconnect",
]
experimental-sliding-sync = [
"matrix-sdk-base/experimental-sliding-sync",
"reqwest/gzip",
]
experimental-widgets = ["dep:language-tags", "dep:uuid"]
docsrs = ["e2e-encryption", "sqlite", "indexeddb", "sso-login", "qrcode", "image-proc"]
[dependencies]
anyhow = { workspace = true, optional = true }
anymap2 = "0.13.0"
aquamarine = "0.5.0"
assert_matches2 = { workspace = true, optional = true }
as_variant = { workspace = true }
async-channel = "2.2.1"
async-stream = { workspace = true }
async-trait = { workspace = true }
axum = { version = "0.7.4", optional = true }
bytes = "1.1.0"
bytesize = "1.1"
chrono = { version = "0.4.23", optional = true }
event-listener = "5.3.0"
eyeball = { workspace = true }
eyeball-im = { workspace = true }
eyre = { version = "0.6.8", optional = true }
futures-core = { workspace = true }
futures-util = { workspace = true }
http = { workspace = true }
http_old = { package = "http", version = "0.2", optional = true }
imbl = { workspace = true, features = ["serde"] }
indexmap = "2.0.2"
js_int = "0.2.2"
language-tags = { version = "0.3.2", optional = true }
mas-oidc-client = { version = "0.9.0", default-features = false, optional = true }
matrix-sdk-base = { workspace = true }
matrix-sdk-common = { workspace = true }
matrix-sdk-indexeddb = { workspace = true, optional = true }
matrix-sdk-sqlite = { workspace = true, optional = true }
matrix-sdk-test = { workspace = true, optional = true }
mime = "0.3.16"
mime2ext = "0.1.52"
rand = { workspace = true , optional = true }
ruma = { workspace = true, features = ["rand", "unstable-msc2448", "unstable-msc2965", "unstable-msc3930", "unstable-msc3245-v1-compat", "unstable-msc2867"] }
serde = { workspace = true }
serde_html_form = { workspace = true }
serde_json = { workspace = true }
sha2 = { workspace = true, optional = true }
tempfile = "3.3.0"
thiserror = { workspace = true }
tokio-stream = { workspace = true, features = ["sync"] }
tower = { version = "0.4.13", features = ["make"], optional = true }
tracing = { workspace = true, features = ["attributes"] }
uniffi = { workspace = true, optional = true }
url = { workspace = true, features = ["serde"] }
urlencoding = "2.1.3"
uuid = { version = "1.4.1", features = ["serde", "v4"], optional = true }
vodozemac = { workspace = true }
zeroize = { workspace = true }
[dependencies.image]
version = "0.25.1"
default-features = false
features = ["default-formats"]
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies]
gloo-timers = { version = "0.3.0", features = ["futures"] }
reqwest = { workspace = true }
tokio = { workspace = true, features = ["macros"] }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
backoff = { version = "0.4.0", features = ["tokio"] }
openidconnect = { git = "https://github.com/poljar/openidconnect-rs", rev = "c7e1dc31b83dd7559125984bfd36b9c0f191585e", optional = true }
# 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"] }
tokio = { workspace = true, features = ["fs", "rt", "macros"] }
tokio-util = "0.7.9"
wiremock = { workspace = true, optional = true }
[dev-dependencies]
anyhow = { workspace = true }
assert-json-diff = { workspace = true }
assert_matches = { workspace = true }
assert_matches2 = { workspace = true }
dirs = "5.0.1"
futures-executor = { workspace = true }
matrix-sdk-base = { workspace = true, features = ["testing"] }
matrix-sdk-test = { workspace = true }
once_cell = { workspace = true }
serde_urlencoded = "0.7.1"
similar-asserts = { workspace = true }
stream_assert = { workspace = true }
tracing-subscriber = { workspace = true, features = ["env-filter"] }
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
wasm-bindgen-test = "0.3.33"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
proptest = "1.4.0"
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
wiremock = { workspace = true }
[[test]]
name = "integration"
required-features = ["testing"]
[lints]
workspace = true