[package] name = "ironcore-alloy" version = "0.11.2" description = "IronCore Labs SDK for all your different Application Layer Encryption needs" authors = ["IronCore Labs "] edition = "2021" # We exclude Cargo.lock instead of deleting it because we want consistent builds for generated SDKs exclude = ["Cargo.lock"] license = "AGPL-3.0-only" documentation = "https://docs.rs/ironcore-alloy" readme = "README.md" repository = "https://github.com/IronCoreLabs/ironcore-alloy" categories = ["cryptography"] keywords = ["cryptography", "saas-shield", "ALE", "cloaked-ai"] rust-version = "1.75.0" [dependencies] aes-gcm = "0.10" aes-siv = "0.7" async-trait = "0.1.83" base64 = "0.22" base64_type = "0.2" bytes = { version = "1.7.1", features = ["serde"] } convert_case = "0.6.0" futures = "0.3.29" hmac = { version = "0.12.1", features = ["std"] } ironcore-documents = "0.2.1" itertools = "0.13" ndarray = "0.16.0" ndarray-rand = "0.15.0" protobuf = { version = "3.3", features = ["with-bytes"] } rand = "0.8.5" rand_chacha = "0.3.1" rand_distr = "0.4.3" rayon = "1.10.0" regex = "1.10.5" reqwest = { version = "0.12", default-features = false, features = [ "json", "rustls-tls", ] } ring = "0.17" serde = { version = "1.0.210", features = ["derive"] } serde_json = { version = "1.0.127", features = ["float_roundtrip"] } thiserror = "1.0.63" uniffi = { version = "0.28.1", features = [ "tokio", "cli", ] } uniffi-bindgen-java = "0.1.0" z85 = "3.0.5" [dev-dependencies] approx = "0.5.1" ascii85 = "0.2.1" assertables = "8.11.0" base64 = "0.22.0" base85 = "2.0.0" camino = "1.1" cargo_metadata = "0.15" criterion = { version = "0.5", features = ["async_tokio"] } hex = "0.4.3" hex-literal = "0.4.1" lazy_static = "1.5" proptest = "1.5.0" tokio = { version = "1.40", features = ["macros", "rt-multi-thread"] } uniffi_bindgen = "0.28.1" z85 = "3.0.5" [features] integration_tests = [] [[bench]] name = "ironcore_alloy_bench" path = "benches/ironcore_alloy_bench.rs" harness = false # This is needed to allow extra options to be passed to criterion # https://bheisler.github.io/criterion.rs/book/faq.html#cargo-bench-gives-unrecognized-option-errors-for-valid-command-line-options [lib] bench = false crate-type = ["cdylib", "lib"] name = "ironcore_alloy" [[bin]] name = "uniffi-bindgen" path = "uniffi-bindgen.rs" bench = false [[bin]] name = "uniffi-bindgen-java" path = "uniffi-bindgen-java.rs" bench = false # used to create the smallest cdylib binary we can to ship with the library in each ecosystem. # 6.9M vs 1.5M in initial testing. Can further have `strip` (the Unix utility) run on it to save ~0.2 MB more. # WARNING: be careful changing this, since downstream integration tests (in "core/tests") depend on this profile. [profile.release] opt-level = 3 # Our crypto basically requires opt-level 3 for reasonable speeds lto = true # Enable Link Time Optimization codegen-units = 1 # Reduce number of codegen units to increase optimizations. panic = 'abort' # Abort on panic strip = 'debuginfo'