[package] authors = ["Damir Jelić "] 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.6.2" [package.metadata.docs.rs] features = ["docsrs"] rustdoc-args = ["--cfg", "docsrs"] [features] default = [ "e2e-encryption", "automatic-room-key-forwarding", "sled", "native-tls", ] testing = [] e2e-encryption = [ "matrix-sdk-base/e2e-encryption", "matrix-sdk-base/automatic-room-key-forwarding", "matrix-sdk-sled?/crypto-store", # activate crypto-store on sled if given "matrix-sdk-indexeddb?/e2e-encryption", # activate on indexeddb if given ] js = ["matrix-sdk-common/js", "matrix-sdk-base/js"] sled = ["dep:matrix-sdk-sled", "matrix-sdk-sled?/state-store"] indexeddb = ["dep:matrix-sdk-indexeddb"] 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:hyper", "dep:rand", "dep:tower"] appservice = ["ruma/appservice-api-s"] image-proc = ["dep:image"] image-rayon = ["image-proc", "image?/jpeg_rayon"] experimental-timeline = ["ruma/unstable-msc2677", "dep:chrono"] experimental-sliding-sync = [ "matrix-sdk-base/experimental-sliding-sync", "experimental-timeline", "reqwest/gzip", "dep:uuid", ] docsrs = [ "e2e-encryption", "sled", "sso-login", "qrcode", "image-proc", ] [dependencies] anyhow = { workspace = true, optional = true } anymap2 = "0.13.0" async-stream = { workspace = true } async-trait = { workspace = true } bytes = "1.1.0" bytesize = "1.1" chrono = { version = "0.4.23", optional = true } dashmap = { workspace = true } event-listener = "2.5.2" eyeball = { workspace = true } eyeball-im = { workspace = true } eyre = { version = "0.6.8", optional = true } futures-core = "0.3.21" futures-util = { workspace = true } http = { workspace = true } im = { version = "15.1.0", features = ["serde"] } indexmap = "1.9.1" hyper = { version = "0.14.20", features = ["http1", "http2", "server"], optional = true } matrix-sdk-base = { version = "0.6.0", path = "../matrix-sdk-base", default_features = false } matrix-sdk-common = { version = "0.6.0", path = "../matrix-sdk-common" } matrix-sdk-indexeddb = { version = "0.2.0", path = "../matrix-sdk-indexeddb", default-features = false, optional = true } matrix-sdk-sled = { version = "0.2.0", path = "../matrix-sdk-sled", default-features = false, optional = true } mime = "0.3.16" pin-project-lite = "0.2.9" rand = { version = "0.8.5", optional = true } reqwest = { version = "0.11.10", default_features = false } ruma = { workspace = true, features = ["rand", "unstable-msc2448", "unstable-msc2965"] } serde = { workspace = true } serde_html_form = { workspace = true } serde_json = { workspace = true } thiserror = { workspace = true } tower = { version = "0.4.13", features = ["make"], optional = true } tracing = { workspace = true, features = ["attributes"] } url = "2.2.2" uuid = { version = "1.3.0", optional = true } zeroize = { workspace = true } [dependencies.image] version = "0.24.2" default-features = false features = [ "gif", "jpeg", "ico", "png", "pnm", "tga", "tiff", "webp", "bmp", "hdr", "dxt", "dds", "farbfeld", ] optional = true [target.'cfg(target_arch = "wasm32")'.dependencies] async-once-cell = "0.4.2" gloo-timers = { version = "0.2.6", features = ["futures"] } tokio = { version = "1.24.2", default-features = false, features = ["sync"] } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] backoff = { version = "0.4.0", features = ["tokio"] } tokio = { version = "1.24.2", default-features = false, features = ["fs", "rt"] } [dev-dependencies] anyhow = { workspace = true } assert_matches = "1.5.0" dirs = "4.0.0" futures = { version = "0.3.21", default-features = false, features = ["executor"] } matrix-sdk-test = { version = "0.6.0", path = "../../testing/matrix-sdk-test" } once_cell = { workspace = true } tempfile = "3.3.0" tracing-subscriber = { version = "0.3.11", features = ["env-filter"] } [target.'cfg(target_arch = "wasm32")'.dev-dependencies] getrandom = { version = "0.2.6", default-features = false, features = ["js"] } wasm-bindgen-test = "0.3.33" [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] ctor = { workspace = true } tokio = { version = "1.24.2", default-features = false, features = ["rt-multi-thread", "macros"] } wiremock = "0.5.13"