[workspace]
members = [
    "katas",
    "library",
    "source/allocator",
    "source/allocator/mimalloc-sys",
    "source/compiler/qsc",
    "source/compiler/qsc_ast",
    "source/compiler/qsc_circuit",
    "source/compiler/qsc_codegen",
    "source/compiler/qsc_data_structures",
    "source/compiler/qsc_doc_gen",
    "source/compiler/qsc_eval",
    "source/compiler/qsc_fir",
    "source/compiler/qsc_frontend",
    "source/compiler/qsc_hir",
    "source/compiler/qsc_openqasm_compiler",
    "source/compiler/qsc_openqasm_parser",
    "source/compiler/qsc_linter",
    "source/compiler/qsc_lowerer",
    "source/compiler/qsc_parse",
    "source/compiler/qsc_partial_eval",
    "source/compiler/qsc_passes",
    "source/compiler/qsc_project",
    "source/compiler/qsc_rir",
    "source/fuzz",
    "source/index_map",
    "source/language_service",
    "source/simulators",
    "source/pip",
    "source/qre",
    "source/resource_estimator",
    "source/samples_test",
    "source/wasm",
]
resolver = "2"

[workspace.package]
authors = ["Microsoft"]
homepage = "https://github.com/microsoft/qdk"
repository = "https://github.com/microsoft/qdk"
edition = "2024"
license = "MIT"
version = "0.0.0"

[workspace.dependencies]
bitflags = "2.11"
memchr = "2.8"
clap = "4.4"
criterion = { version = "0.8", default-features = false }
difference = "2.0"
enum-iterator = "2.3"
env_logger = "0.11"
expect-test = "1.5"
futures = "0.3"
futures-util = "0.3"
fasteval = "0.2"
getrandom = "0.2"
iai-callgrind = "0.16.1"
indoc = "2.0"
js-sys = "0.3"
libfuzzer-sys = "0.4"
log = "0.4"
miette = { version = "7.6" }
thiserror = "2.0"
nalgebra = { version = "0.34" }
ndarray = "0.17"
num-bigint = "0.4"
num-complex = "0.4"
num-derive = "0.4"
num-traits = "0.2"
pprof = { version = "0.15", features = ["criterion", "flamegraph"] }
probability = "0.20"
proptest = "1.10"
indenter = "0.3"
regex-lite = "0.1"
rustc-hash = "1"
serde = { version = "1.0", features = ["derive"] }
serde-wasm-bindgen = "0.6"
sorted-vec = "0.8"
sorted-iter = "0.1"
wasm-bindgen = "0.2.114"
wasm-bindgen-futures = "0.4"
rand = "0.8"
serde_json = "1.0"
pyo3 = "0.28"
async-trait = "0.1"
tokio = { version = "1.50", features = ["macros", "rt"] }
rayon = "1.11.0"
bytemuck = "1.25"
wgpu = { version = "29.0.1" }

[workspace.lints.clippy]
mod_module_files = "warn"
pedantic = { level = "warn", priority = -1 }
unwrap_used = "warn"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
needless_raw_string_hashes = "allow"
unnecessary_wraps = "allow"
default_trait_access = "allow"
enum_glob_use = "allow"

[profile.release]
debug = "limited"
strip = "symbols"
lto = "fat"
codegen-units = 1

[profile.release.package.fuzz]
codegen-units = 16

[profile.bench]
debug = true
strip = false
lto = "fat"
codegen-units = 1
