[package] name = "concrete-core" version = "1.0.2" edition = "2021" authors = ["D. Ligier", "J.B. Orfila", "A. Péré", "S. Tap", "Zama team"] license = "BSD-3-Clause-Clear" description = "Concrete is a fully homomorphic encryption (FHE) library that implements Zama's variant of TFHE." homepage = "https://www.zama.ai/concrete-framework" documentation = "https://docs.zama.ai/concrete-core" repository = "https://github.com/zama-ai/concrete-core" readme = "README.md" keywords = ["fully", "homomorphic", "encryption", "fhe", "cryptography"] [dev-dependencies] rand = "0.7" kolmogorov_smirnov = "1.1.0" criterion = "0.3" [dependencies] concrete-csprng = { version = "0.2.1", path = "../concrete-csprng" } concrete-cuda = { version = "0.1.1", path = "../concrete-cuda", optional = true } serde = { version = "1.0", optional = true } lazy_static = "1.4.0" rayon = { version = "1.5.0", optional = true } bincode = { version = "1.3.3", optional = true } concrete-fft = { version = "0.1", optional = true } aligned-vec = "0.5" dyn-stack = "0.8" once_cell = "1.13" [lib] name = "concrete_core" bench = false [[bench]] name = "bench" harness = false [features] default = ["backend_default", "seeder_unix"] # A pure-rust backend. Included by default in the build. backend_default = ["concrete-csprng/generator_soft"] # An accelerated backend, using the `concrete-fft` library. backend_fft = ["concrete-fft"] backend_fft_serialization = [ "bincode", "concrete-fft/serde", "aligned-vec/serde", "__commons_serialization", ] backend_fft_nightly_avx512 = ["concrete-fft/nightly"] # Enables the parallel engine in default backend. backend_default_parallel = ["__commons_parallel"] # Enable the x86_64 specific accelerated implementation of the random generator for the default # backend backend_default_generator_x86_64_aesni = [ "concrete-csprng/generator_x86_64_aesni", ] backend_default_generator_aarch64_aes = [ "concrete-csprng/generator_aarch64_aes", ] # Enable the serialization engine in the default backend. backend_default_serialization = ["bincode", "__commons_serialization"] # A GPU backend, relying on Cuda acceleration backend_cuda = ["concrete-cuda"] # Private features __profiling = [] __private_docs = [] __commons_parallel = ["rayon", "concrete-csprng/parallel"] __commons_serialization = ["serde", "serde/derive"] # An accelerated backend, using the NTT. backend_ntt = [ ] seeder_unix = ["concrete-csprng/seeder_unix"] seeder_x86_64_rdseed = ["concrete-csprng/seeder_x86_64_rdseed"] # These target_arch features enable a set of public features for concrete-core if users want a known # good/working configuration for concrete-core. # For a target_arch that does not yet have such a feature, one can still enable features manually or # create a feature for said target_arch to make its use simpler. x86_64 = [ "backend_default", "backend_default_parallel", "backend_default_generator_x86_64_aesni", "backend_default_serialization", "backend_fft", "backend_fft_serialization", "seeder_unix", "seeder_x86_64_rdseed", ] x86_64-cuda = ["x86_64", "backend_cuda"] aarch64 = [ "backend_default", "backend_default_parallel", "backend_default_generator_aarch64_aes", "backend_default_serialization", "backend_fft", "backend_fft_serialization", "seeder_unix", ] [package.metadata.docs.rs] # TODO: manage builds for docs.rs based on their documentation https://docs.rs/about features = ["x86_64"] rustdoc-args = ["--html-in-header", "katex-header.html"]