content: [package]
  authors = ["Damir Jelić <poljar@termina.org.uk>"]
  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.14.0"
  
  [package.metadata.docs.rs]
  rustdoc-args = ["--cfg", "docsrs", "--generate-link-to-definition"]
  
  [features]
  default = []
  automatic-room-key-forwarding = []
  experimental-send-custom-to-device = []
  
  # Enable experimental support for encrypting state events; see
  # https://github.com/matrix-org/matrix-rust-sdk/issues/5397.
  experimental-encrypted-state-events = [
      "matrix-sdk-common/experimental-encrypted-state-events",
      "ruma/unstable-msc3414"
  ]
  
  js = ["ruma/js", "vodozemac/js", "matrix-sdk-common/js"]
  qrcode = ["dep:matrix-sdk-qrcode"]
  experimental-algorithms = []
  uniffi = ["dep:uniffi"]
  _disable-minimum-rotation-period-ms = []
  
  # Private feature, see
  # https://github.com/matrix-org/matrix-rust-sdk/pull/3749#issuecomment-2312939823 for the gory
  # details.
  test-send-sync = []
  
  # "message-ids" feature doesn't do anything and is deprecated.
  message-ids = []
  
  # Testing helpers for implementations based upon this
  testing = ["matrix-sdk-test"]
  
  [dependencies]
  aes = "0.8.4"
  aquamarine.workspace = true
  as_variant.workspace = true
  async-trait.workspace = true
  bs58 = { version = "0.5.1" }
  byteorder.workspace = true
  cfg-if.workspace = true
  ctr = "0.9.2"
  eyeball.workspace = true
  futures-core.workspace = true
  futures-util.workspace = true
  hkdf.workspace = true
  hmac.workspace = true
  itertools.workspace = true
  js_option = "0.2"
  matrix-sdk-common.workspace = true
  matrix-sdk-qrcode = { workspace = true, optional = true }
  matrix-sdk-test = { workspace = true, optional = true }  # feature = testing only
  pbkdf2.workspace = true
  rand.workspace = true
  rmp-serde.workspace = true
  ruma = { workspace = true, features = ["rand", "canonical-json", "unstable-msc3814"] }
  serde = { workspace = true, features = ["derive", "rc"] }
  serde_json.workspace = true
  sha2.workspace = true
  subtle = "2.6.1"
  thiserror.workspace = true
  time = { version = "0.3.42", features = ["formatting"] }
  tokio.workspace = true
  tokio-stream = { workspace = true, features = ["sync"] }
  tracing = { workspace = true, features = ["attributes"] }
  ulid = { version = "1.1.4" }
  uniffi = { workspace = true, optional = true }
  url.workspace = true
  vodozemac.workspace = true
  zeroize = { workspace = true, features = ["zeroize_derive"] }
  
  [target.'cfg(not(target_family = "wasm"))'.dependencies]
  tokio = { workspace = true, features = ["time"] }
  
  [target.'cfg(target_family = "wasm")'.dependencies]
  tokio.workspace = true
  
  [dev-dependencies]
  anyhow.workspace = true
  assert_matches.workspace = true
  assert_matches2.workspace = true
  futures-executor.workspace = true
  http.workspace = true
  indoc = "2.0.6"
  insta.workspace = true
  matrix-sdk-test.workspace = true
  matrix-sdk-test-utils.workspace = true
  proptest.workspace = true
  rmp-serde.workspace = true
  similar-asserts.workspace = true
  # required for async_test macro
  stream_assert.workspace = true
  tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
  
  [lints]
  workspace = true
  