| 1 | [package] |
| 2 | authors = ["Damir Jelić <poljar@termina.org.uk>"] |
| 3 | description = "Matrix encryption 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-crypto" |
| 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 | rustdoc-args = ["--cfg", "docsrs", "--generate-link-to-definition"] |
| 16 | |
| 17 | [features] |
| 18 | default = [] |
| 19 | automatic-room-key-forwarding = [] |
| 20 | experimental-send-custom-to-device = [] |
| 21 | |
| 22 | # Enable experimental support for encrypting state events; see |
| 23 | # https://github.com/matrix-org/matrix-rust-sdk/issues/5397. |
| 24 | experimental-encrypted-state-events = [ |
| 25 | "matrix-sdk-common/experimental-encrypted-state-events", |
| 26 | "ruma/unstable-msc4362" |
| 27 | ] |
| 28 | |
| 29 | js = ["ruma/js", "vodozemac/js", "matrix-sdk-common/js"] |
| 30 | qrcode = ["dep:matrix-sdk-qrcode"] |
| 31 | experimental-algorithms = [] |
| 32 | uniffi = ["dep:uniffi"] |
| 33 | _disable-minimum-rotation-period-ms = [] |
| 34 | |
| 35 | # Private feature, see |
| 36 | # https://github.com/matrix-org/matrix-rust-sdk/pull/3749#issuecomment-2312939823 for the gory |
| 37 | # details. |
| 38 | test-send-sync = [] |
| 39 | |
| 40 | # Testing helpers for implementations based upon this |
| 41 | testing = ["matrix-sdk-test"] |
| 42 | |
| 43 | # Enable experimental support for pushing secrets; see |
| 44 | # https://github.com/matrix-org/matrix-spec-proposals/pull/4385 |
| 45 | experimental-push-secrets = [] |
| 46 | |
| 47 | [dependencies] |
| 48 | aes = { version = "0.8.4", default-features = false } |
| 49 | aquamarine.workspace = true |
| 50 | as_variant.workspace = true |
| 51 | async-trait.workspace = true |
| 52 | bs58 = { version = "0.5.1", default-features = false, features = ["std"] } |
| 53 | byteorder.workspace = true |
| 54 | cfg-if.workspace = true |
| 55 | ctr = { version = "0.9.2", default-features = false } |
| 56 | eyeball.workspace = true |
| 57 | futures-core.workspace = true |
| 58 | futures-util.workspace = true |
| 59 | hkdf.workspace = true |
| 60 | hmac.workspace = true |
| 61 | itertools.workspace = true |
| 62 | js_option = { version = "0.2.0", default-features = false } |
| 63 | matrix-sdk-common.workspace = true |
| 64 | matrix-sdk-qrcode = { workspace = true, optional = true } |
| 65 | matrix-sdk-test = { workspace = true, optional = true } # feature = testing only |
| 66 | pbkdf2.workspace = true |
| 67 | rand.workspace = true |
| 68 | rmp-serde.workspace = true |
| 69 | ruma = { workspace = true, features = ["rand", "unstable-msc3814"] } |
| 70 | serde = { workspace = true, features = ["derive", "rc"] } |
| 71 | serde_json.workspace = true |
| 72 | sha2.workspace = true |
| 73 | subtle = { version = "2.6.1", default-features = false, features = ["std", "i128"] } |
| 74 | thiserror.workspace = true |
| 75 | time = { version = "0.3.47", default-features = false, features = ["std", "formatting"] } |
| 76 | tokio.workspace = true |
| 77 | tokio-stream = { workspace = true, features = ["sync"] } |
| 78 | tracing = { workspace = true, features = ["attributes"] } |
| 79 | ulid = { version = "1.1.4", default-features = false, features = ["std"] } |
| 80 | uniffi = { workspace = true, optional = true } |
| 81 | url.workspace = true |
| 82 | vodozemac.workspace = true |
| 83 | zeroize = { workspace = true, features = ["zeroize_derive"] } |
| 84 | |
| 85 | [target.'cfg(not(target_family = "wasm"))'.dependencies] |
| 86 | tokio = { workspace = true, features = ["time"] } |
| 87 | |
| 88 | [target.'cfg(target_family = "wasm")'.dependencies] |
| 89 | tokio.workspace = true |
| 90 | |
| 91 | [dev-dependencies] |
| 92 | anyhow.workspace = true |
| 93 | assert_matches.workspace = true |
| 94 | assert_matches2.workspace = true |
| 95 | futures-executor.workspace = true |
| 96 | http.workspace = true |
| 97 | insta.workspace = true |
| 98 | matrix-sdk-test.workspace = true |
| 99 | matrix-sdk-test-utils.workspace = true |
| 100 | proptest.workspace = true |
| 101 | rmp-serde.workspace = true |
| 102 | similar-asserts.workspace = true |
| 103 | # required for async_test macro |
| 104 | stream_assert.workspace = true |
| 105 | tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } |
| 106 | |
| 107 | [lints] |
| 108 | workspace = true |