Cargo Features

TFHE has no features set by default.

[dependencies]
tfhe = { version = "0.9.1", features = ["boolean", "shortint", "integer", "gpu", "zk-pok", "pbs-stats", "internal-keycache", "experimental", "experimental-force_fft_algo_dif4", "boolean-c-api", "shortint-c-api", "high-level-c-api", "boolean-client-js-wasm-api", "shortint-client-js-wasm-api", "integer-client-js-wasm-api", "high-level-client-js-wasm-api", "parallel-wasm-api", "nightly-avx512", "generator_x86_64_aesni", "generator_aarch64_aes", "seeder_unix", "seeder_x86_64_rdseed", "x86_64", "x86_64-unix", "aarch64", "aarch64-unix"] }
boolean boolean-c-api? boolean-client-js-wasm-api? high-level-client-js-wasm-api?

Affects high_level_api::booleans, tfhe::boolean

shortint high-level-client-js-wasm-api? integer? shortint-c-api? shortint-client-js-wasm-api?

Enables sha3

Used for OPRF in shortint

Affects tfhe::shortint

integer high-level-c-api? high-level-client-js-wasm-api? integer-client-js-wasm-api? = shortint

Affects tfhe::integer

gpu

Enables tfhe-cuda-backend

Affects keys::CudaServerKey, keys::set_cuda_server_key, keys::compressed_server_key_decompress_to_gpu, parameters::LweCiphertextIndexVersions, parameters::LweCiphertextIndex, core_crypto::gpu, compressed_ciphertext_list::HlExpandable, compressed_ciphertext_list::HlCompressible, compressed_ciphertext_list::gpu, inner::IntegerCudaServerKey, server::CudaServerKey, integer::gpu

zk-pok

Enables tfhe-zk-pok

Affects compact_list::ProvenCompactCiphertextList, compact_list::compact_ciphertext_list_builder_build_with_proof_packed, compact_list::proven_compact_ciphertext_list_verify_and_expand, compact_list::proven_compact_ciphertext_list_expand_without_verification, lwe_encryption::encrypt_and_prove_lwe_ciphertext_with_compact_public_key, lwe_encryption::encrypt_and_prove_lwe_compact_ciphertext_list_with_compact_public_key, lwe_encryption::par_encrypt_and_prove_lwe_compact_ciphertext_list_with_compact_public_key, algorithms::lwe_zero_knowledge_verification, compact_list::ProvenCompactCiphertextListVersions, ciphertext::ProvenCompactCiphertextListVersions, compact_list::ProvenCompactCiphertextList, compact_list::IntegerProvenCompactCiphertextListConformanceParams, integers::ProvenCompactCiphertextList, tfhe::zk, ciphertext::ProvenCompactCiphertextListVersions

pbs-stats

Affects server_key::pbs_stats

internal-keycache

Enables fs2 and lazy_static

fs2:

Used in user documentation

experimental

Experimental section

Affects core_crypto::experimental, keycache::WopbsKeyCache, integer::wopbs, shortint::wopbs

experimental-force_fft_algo_dif4
__c_api build boolean-c-api? high-level-c-api? shortint-c-api?

End experimental section

Enables cbindgen ^0.26.0

Affects tfhe::c_api

boolean-c-api high-level-c-api? = __c_api, boolean

Affects c_api::boolean

shortint-c-api high-level-c-api? = __c_api, shortint

Affects c_api::shortint

high-level-c-api = __c_api, boolean-c-api, integer, shortint-c-api

Affects c_api::high_level_api

boolean-client-js-wasm-api = boolean

Enables console_error_panic_hook and js-sys, serde-wasm-bindgen, and wasm-bindgen >=0.2.86, <0.2.94

wasm-bindgen:

wasm deps

and js of getrandom

getrandom:

Feature to enable JavaScript bindings on wasm*-unknown-unknown

shortint-client-js-wasm-api = shortint

Enables console_error_panic_hook, js-sys, serde-wasm-bindgen, and wasm-bindgen >=0.2.86, <0.2.94, js of getrandom

integer-client-js-wasm-api = integer

Enables console_error_panic_hook, js-sys, serde-wasm-bindgen, and wasm-bindgen >=0.2.86, <0.2.94, js of getrandom

high-level-client-js-wasm-api = boolean, integer, shortint

Enables console_error_panic_hook, js-sys, serde-wasm-bindgen, and wasm-bindgen >=0.2.86, <0.2.94, js of getrandom

parallel-wasm-api

Enables wasm-bindgen-rayon

nightly-avx512

Enables nightly of concrete-fft, concrete-ntt, and pulp

Affects fft::u128_to_f64_avx512, fft::wrapping_sub_avx512, fft::wrapping_add_avx512, fft::wrapping_neg_avx512, fft::add_f128_f64x8, fft::convert_forward_integer_avx512, fft::convert_add_backward_torus_avx512, x86::mm512_cvt_round_nearest_pd_epi64, x86::mm512_cvtepi64_pd, x86::convert_forward_integer_u32_v4, x86::convert_forward_integer_u64_v4, x86::prologue_convert_torus_v4, x86::convert_add_backward_torus_u32_v4, x86::convert_add_backward_torus_u64_v4

generator_x86_64_aesni x86_64?

Enable the x86_64 specific accelerated implementation of the random generator for the default backend

Enables generator_x86_64_aesni of concrete-csprng

Affects activated_random_generator::ActivatedRandomGenerator

generator_aarch64_aes aarch64?

Enable the aarch64 specific accelerated implementation of the random generator for the default backend

Enables generator_aarch64_aes of concrete-csprng

Affects activated_random_generator::ActivatedRandomGenerator

seeder_unix aarch64-unix? x86_64-unix?

Enables seeder_unix of concrete-csprng

seeder_x86_64_rdseed x86_64?

Enables seeder_x86_64_rdseed of concrete-csprng

x86_64 x86_64-unix? = generator_x86_64_aesni, seeder_x86_64_rdseed

These target_arch features enable a set of public features for tfhe if users want a known good/working configuration for tfhe.
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-unix = seeder_unix, x86_64
aarch64 aarch64-unix? = generator_aarch64_aes
aarch64-unix = aarch64, seeder_unix