mls-rs 0.41.4

An implementation of Messaging Layer Security (RFC 9420)
Documentation
[[bench]]
harness = false
name = "group_add"
path = "benches/group_add.rs"
required-features = ["benchmark_util"]

[[bench]]
harness = false
name = "group_application"
path = "benches/group_application.rs"
required-features = ["benchmark_util"]

[[bench]]
harness = false
name = "group_commit"
path = "benches/group_commit.rs"
required-features = ["benchmark_util"]

[[bench]]
harness = false
name = "group_receive_commit"
path = "benches/group_receive_commit.rs"
required-features = ["benchmark_util"]

[[bench]]
harness = false
name = "group_serialize"
path = "benches/group_serialize.rs"
required-features = ["benchmark_util"]

[dependencies.arbitrary]
features = ["derive"]
optional = true
version = "1"

[dependencies.cfg-if]
version = "1"

[dependencies.debug_tree]
optional = true
version = "0.4.0"

[dependencies.hex]
default-features = false
features = ["serde", "alloc"]
optional = true
version = "^0.4.3"

[dependencies.itertools]
default-features = false
features = ["use_alloc"]
version = "0.12.0"

[dependencies.maybe-async]
version = "0.2.10"

[dependencies.mls-rs-codec]
default-features = false
version = "0.5.2"

[dependencies.mls-rs-core]
default-features = false
version = "0.19.1"

[dependencies.mls-rs-crypto-openssl]
optional = true
version = "0.10.0"

[dependencies.mls-rs-identity-x509]
default-features = false
optional = true
version = "0.12.0"

[dependencies.mls-rs-provider-sqlite]
default-features = false
optional = true
version = "0.13.0"

[dependencies.once_cell]
optional = true
version = "1.18"

[dependencies.rayon]
optional = true
version = "1"

[dependencies.safer-ffi]
default-features = false
optional = true
version = "0.1.7"

[dependencies.safer-ffi-gen]
default-features = false
optional = true
version = "0.9.2"

[dependencies.serde]
default-features = false
features = ["alloc", "derive"]
optional = true
version = "1.0"

[dependencies.spin]
default-features = false
features = ["mutex", "spin_mutex"]
version = "0.9.8"

[dependencies.thiserror]
optional = true
version = "1.0.40"

[dependencies.zeroize]
default-features = false
features = ["alloc", "zeroize_derive"]
version = "1"

[dev-dependencies.assert_matches]
version = "1.5.0"

[dev-dependencies.criterion]
default-features = false
features = ["async_futures", "html_reports"]
version = "0.5.1"

[dev-dependencies.hex]
default-features = false
features = ["serde", "alloc"]
version = "^0.4.3"

[dev-dependencies.rand]
version = "0.8"

[dev-dependencies.serde]
default-features = false
features = ["alloc", "derive"]
version = "1.0"

[dev-dependencies.serde_json]
version = "^1.0"

[[example]]
name = "basic_server_usage"
path = "examples/basic_server_usage.rs"
required-features = ["external_client"]

[[example]]
name = "basic_usage"
path = "examples/basic_usage.rs"
required-features = []

[[example]]
name = "custom"
path = "examples/custom.rs"
required-features = ["std"]

[[example]]
name = "large_group"
path = "examples/large_group.rs"
required-features = []

[[example]]
name = "x509"
path = "examples/x509.rs"
required-features = ["x509"]

[features]
arbitrary = ["std", "dep:arbitrary", "mls-rs-core/arbitrary"]
benchmark_util = ["test_util", "default", "dep:mls-rs-crypto-openssl"]
by_ref_proposal = []
custom_proposal = []
default = ["std", "rayon", "rfc_compliant", "tree_index", "fast_serialize"]
external_client = ["std"]
fast_serialize = ["mls-rs-core/fast_serialize"]
ffi = ["dep:safer-ffi", "dep:safer-ffi-gen", "mls-rs-core/ffi"]
fuzz_util = ["test_util", "default", "dep:once_cell", "dep:mls-rs-crypto-openssl"]
grease = ["std"]
last_resort_key_package_ext = ["mls-rs-core/last_resort_key_package_ext"]
out_of_order = ["private_message"]
prior_epoch = []
private_message = []
psk = []
rayon = ["std", "dep:rayon"]
rfc_compliant = ["private_message", "custom_proposal", "out_of_order", "psk", "x509", "prior_epoch", "by_ref_proposal", "mls-rs-core/rfc_compliant"]
secret_tree_access = []
serde = ["mls-rs-core/serde", "zeroize/serde", "dep:serde", "dep:hex"]
sqlcipher = ["sqlite", "mls-rs-provider-sqlite/sqlcipher"]
sqlcipher-bundled = ["sqlite", "mls-rs-provider-sqlite/sqlcipher-bundled"]
sqlite = ["std", "mls-rs-provider-sqlite/sqlite"]
sqlite-bundled = ["sqlite", "mls-rs-provider-sqlite/sqlite-bundled"]
std = ["mls-rs-core/std", "mls-rs-codec/std", "mls-rs-identity-x509?/std", "hex/std", "futures/std", "itertools/use_std", "safer-ffi-gen?/std", "zeroize/std", "dep:debug_tree", "dep:thiserror", "serde?/std"]
test_util = []
tree_index = []
x509 = ["mls-rs-core/x509", "dep:mls-rs-identity-x509"]

[lib]
name = "mls_rs"
path = "src/lib.rs"

[lints.rust.unexpected_cfgs]
check-cfg = ["cfg(mls_build_async)", "cfg(coverage_nightly)", "cfg(awslc)", "cfg(rustcrypto)"]
level = "warn"
priority = 0

[package]
autobenches = false
autobins = false
autoexamples = false
autotests = false
build = false
categories = ["no-std", "cryptography"]
description = "An implementation of Messaging Layer Security (RFC 9420)"
edition = "2021"
exclude = ["test_data"]
homepage = "https://github.com/awslabs/mls-rs"
keywords = ["crypto", "cryptography", "security", "mls", "e2ee"]
license = "Apache-2.0 OR MIT"
name = "mls-rs"
readme = "README.md"
repository = "https://github.com/awslabs/mls-rs"
rust-version = "1.68.2"
version = "0.41.4"

[package.metadata.docs.rs]
features = ["external_client", "sqlite"]
rustdoc-args = ["--cfg", "docsrs"]

[target."cfg(mls_build_async)".dependencies.async-trait]
version = "0.1.74"

[target."cfg(mls_build_async)".dependencies.futures]
default-features = false
features = ["alloc"]
version = "0.3.25"

[target."cfg(mls_build_async)".dev-dependencies.futures-test]
version = "0.3.25"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.criterion]
features = ["async_futures", "html_reports"]
version = "0.5.1"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.mls-rs-crypto-openssl]
version = "0.10.0"

[target.'cfg(not(target_has_atomic = "ptr"))'.dependencies.portable-atomic]
default-features = false
features = ["critical-section"]
version = "1.5.1"

[target.'cfg(not(target_has_atomic = "ptr"))'.dependencies.portable-atomic-util]
default-features = false
features = ["alloc"]
version = "0.1.2"

[target.'cfg(not(target_has_atomic = "ptr"))'.dependencies.spin]
default-features = false
features = ["portable_atomic"]
version = "0.9.8"

[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
default-features = false
features = ["js", "custom"]
version = "0.2"

[target.'cfg(target_arch = "wasm32")'.dependencies.rand_core]
default-features = false
features = ["alloc"]
version = "0.6"

[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "^0.2.79"

[target.'cfg(target_arch = "wasm32")'.dev-dependencies.criterion]
default-features = false
features = ["plotters", "cargo_bench_support", "async_futures", "html_reports"]
version = "0.5.1"

[target.'cfg(target_arch = "wasm32")'.dev-dependencies.mls-rs-crypto-webcrypto]
version = "0.5.0"

[target.'cfg(target_arch = "wasm32")'.dev-dependencies.wasm-bindgen-test]
default-features = false
version = "0.3.26"

[[test]]
name = "client_tests"
path = "tests/client_tests.rs"
required-features = ["test_util"]