[workspace]
resolver = "3"
members = [
    "tfhe",
    "tfhe-benchmark",
    "tfhe-fft",
    "tfhe-ntt",
    "tfhe-zk-pok",
    "tasks",
    "tfhe-csprng",
    "backends/tfhe-cuda-backend",
    "backends/tfhe-hpu-backend",
    "utils/tfhe-versionable",
    "utils/tfhe-versionable-derive",
    "utils/tfhe-backward-compat-data",
    "utils/param_dedup",
    "tests",
    "mockups/tfhe-hpu-mockup",
    "apps/test-vectors",
]

exclude = ["utils/tfhe-lints", "apps/trivium"]

[workspace.package]
rust-version = "1.91.1"

[workspace.dependencies]
aligned-vec = { version = "0.6", default-features = false }
bytemuck = "1.24"
dyn-stack = { version = "0.13", default-features = false }
itertools = "0.14"
num-complex = "0.4"
pulp = { version = "0.22", default-features = false }
rand = "0.8"
rayon = "1.11"
serde = { version = "1.0", default-features = false }
wasm-bindgen = "0.2.101"
getrandom = "0.2.8"

[profile.bench]
lto = "fat"

[profile.release]
lto = "fat"

[profile.release_lto_off]
inherits = "release"
lto = "off"

# Compiles much faster for tests and allows reasonable performance for iterating
[profile.devo]
inherits = "dev"
opt-level = 3
lto = "off"
debug-assertions = false

[workspace.metadata.dylint]
libraries = [{ path = "utils/tfhe-lints" }]

[profile.debug_lto_off]
inherits = "dev"
debug = true
lto = "off"
debug-assertions = false
overflow-checks = false
