[package] authors = ["Damir Jelić "] description = "Matrix encryption 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-crypto" readme = "README.md" repository = "https://github.com/matrix-org/matrix-rust-sdk" rust-version = { workspace = true } version = "0.6.0" [package.metadata.docs.rs] rustdoc-args = ["--cfg", "docsrs"] [features] default = ["automatic-room-key-forwarding"] automatic-room-key-forwarding = [] js = ["ruma/js", "vodozemac/js"] qrcode = ["dep:matrix-sdk-qrcode"] backups_v1 = ["dep:olm-rs", "dep:bs58"] experimental-algorithms = [] # Testing helpers for implementations based upon this testing = ["dep:http"] [dependencies] aes = "0.8.1" atomic = "0.5.1" async-std = { version = "1.12.0", features = ["unstable"] } async-trait = { workspace = true } base64 = { workspace = true } bs58 = { version = "0.4.0", optional = true } byteorder = { workspace = true } ctr = "0.9.1" dashmap = { workspace = true } event-listener = "2.5.2" eyeball = { workspace = true } futures-core = "0.3.24" futures-util = { workspace = true } hmac = "0.12.1" http = { workspace = true, optional = true } # feature = testing only itertools = "0.10.5" matrix-sdk-qrcode = { version = "0.4.0", path = "../matrix-sdk-qrcode", optional = true } matrix-sdk-common = { version = "0.6.0", path = "../matrix-sdk-common" } olm-rs = { version = "2.2.0", features = ["serde"], optional = true } pbkdf2 = { version = "0.11.0", default-features = false } rand = "0.8.5" ruma = { workspace = true, features = ["rand", "canonical-json", "unstable-msc2677"] } serde = { workspace = true, features = ["derive", "rc"] } rmp-serde = "1.1.1" serde_json = { workspace = true } sha2 = "0.10.2" thiserror = { workspace = true } tracing = { workspace = true, features = ["attributes"] } vodozemac = { workspace = true } zeroize = { workspace = true, features = ["zeroize_derive"] } cfg-if = "1.0" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] tokio = { version = "1.24", default-features = false, features = ["time"] } [dev-dependencies] anyhow = { workspace = true } assert_matches = "1.5.0" ctor.workspace = true futures = { version = "0.3.21", default-features = false, features = ["executor"] } http = { workspace = true } indoc = "1.0.4" matrix-sdk-test = { version = "0.6.0", path = "../../testing/matrix-sdk-test" } proptest = { version = "1.0.0", default-features = false, features = ["std"] } # required for async_test macro tokio = { version = "1.24.2", default-features = false, features = ["macros", "rt-multi-thread"] } tracing-subscriber = { version = "0.3.16", features = ["env-filter"] }