content: [package]
  name = "openmls"
  version = "0.7.1"
  authors = ["OpenMLS Authors"]
  edition = "2021"
  description = "A Rust implementation of the Messaging Layer Security (MLS) protocol, as defined in RFC 9420."
  license = "MIT"
  documentation = "https://docs.rs/openmls"
  repository = "https://github.com/openmls/openmls/"
  readme = "../README.md"
  keywords = ["MLS", "IETF", "RFC9420", "Encryption", "E2EE"]
  exclude = ["/test_vectors"]
  
  [dependencies]
  openmls_traits = { workspace = true }
  openmls_rust_crypto = { workspace = true, optional = true }
  openmls_basic_credential = { workspace = true, optional = true, features = [
      "clonable",
      "test-utils",
  ] }
  openmls_memory_storage = { workspace = true, features = [
      "test-utils",
  ], optional = true }
  openmls_sqlite_storage = { workspace = true, optional = true }
  openmls_test = { workspace = true, optional = true }
  openmls_libcrux_crypto = { workspace = true, optional = true }
  
  serde = { version = "^1.0", features = ["derive"] }
  log = { version = "0.4", features = ["std"] }
  tls_codec = { workspace = true }
  rayon = "^1.5.0"
  thiserror = "^2.0"
  backtrace = { version = "0.3", optional = true }
  # Only required for tests.
  rand = { version = "0.8", optional = true }
  serde_json = { version = "1.0", optional = true }
  # Crypto providers required for KAT and testing - "test-utils" feature
  itertools = { version = "0.14", optional = true }
  wasm-bindgen-test = { version = "0.3.50", optional = true }
  getrandom = { version = "0.3.2", optional = true }
  getrandom_old = { package = "getrandom", version = "0.2.15", optional = true }
  fluvio-wasm-timer = { version = "0.2.5", optional = true }
  once_cell = { version = "1.19.0", optional = true }
  zeroize = "1.8.1"
  serde_bytes = "0.11.17"
  
  [features]
  crypto-subtle = [] # Enable subtle crypto APIs that have to be used with care.
  test-utils = [
      "dep:serde_json",
      "dep:itertools",
      "openmls_rust_crypto/test-utils",
      "dep:rand",
      "dep:wasm-bindgen-test",
      "dep:openmls_basic_credential",
      "dep:openmls_memory_storage",
      "dep:openmls_test",
      "dep:once_cell",
      "backtrace",
  ]
  backtrace = ["dep:backtrace"]
  libcrux-provider = [
      "dep:openmls_libcrux_crypto",
      "openmls_test?/libcrux-provider",
  ]
  sqlite-provider = [
      "dep:openmls_sqlite_storage",
      "openmls_test?/sqlite-provider",
  ]
  crypto-debug = [] # ☣️ Enable logging of sensitive cryptographic information
  content-debug = [] # ☣️ Enable logging of sensitive message content
  js = [
      "dep:getrandom_old",
      "dep:fluvio-wasm-timer",
  
      # enable randomness source
      "getrandom_old/js",
  ]
  
  extensions-draft-08 = [
      "openmls_traits/extensions-draft-08",
      "openmls_memory_storage/extensions-draft-08",
      "openmls_sqlite_storage/extensions-draft-08",
  ]
  libcrux-provider-js = ["dep:getrandom", "getrandom/wasm_js"]
  # enable randomness source
  fork-resolution = []
  
  [dev-dependencies]
  criterion = { version = "^0.5", default-features = false }       # need to disable default features for wasm
  hex = { version = "0.4", features = ["serde"] }
  lazy_static = "1.4"
  openmls_traits = { workspace = true, features = ["test-utils"] }
  pretty_env_logger = "0.5"
  tempfile = "3"
  wasm-bindgen = "0.2.100"
  wasm-bindgen-test = "0.3.50"
  clap = { version = "4", features = ["derive"] }
  base64 = "0.22.1"
  flate2 = "1.0"
  indicatif = "0.17.8"
  
  # Disable for wasm32 and Win32
  [target.'cfg(not(any(target_arch = "wasm32", all(target_arch = "x86", target_os = "windows"))))'.dev-dependencies]
  openmls = { path = ".", features = [
      "test-utils",
      "sqlite-provider",
      "libcrux-provider",
  ] }
  
  [target.'cfg(any(target_arch = "wasm32", all(target_arch = "x86", target_os = "windows")))'.dev-dependencies]
  openmls = { path = ".", features = ["test-utils"] }
  
  [[bench]]
  name = "benchmark"
  harness = false
  