[package] name = "qecp" version = "0.2.7" authors = [ "Yue Wu ", "Namitha Liyanage ", "Neil He ", ] license = "MIT" description = "Quantum Error Correction Playground for Surface Code Research" readme = "README.md" homepage = "https://yuewuo.github.io/QEC-Playground/" repository = "https://github.com/yuewuo/QEC-Playground" # documentation = "" # use the default docs.rs page keywords = [ "QEC", "quantum-computing", "error-correction", "simulation", "visualization", ] categories = ["science"] edition = "2021" exclude = [ "docs/*", "documentation/*", "frontend/*", "backend/*", "articles/*", "benchmark/*", "tmp/*", "pylib/*", "read_nohup_out.py", "test.py", ".vscode/*", ".github/*", ] # see https://doc.rust-lang.org/1.39.0/cargo/reference/manifest.html#the-documentation-field-optional [badges] maintenance = { status = "actively-developed" } # profiling: https://github.com/flamegraph-rs/flamegraph # enable the following debug configuration, and then run `cargo flamegraph -- ...` which is equivalent to `cargo run --release -- ...` # e.g. `cargo flamegraph --root -- tool benchmark '[13]' --djs '[13]' '[1]' -m100000000 -e1000 '[0.01]' -p1 --time_budget 60 --code_type RotatedPlanarCode` # embed debug symbols, increase the binary from 7MB to 9.3MB which is acceptable [profile.release] debug = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [features] # to enable a feature, use `--features xxx` default = ["fusion_blossom"] python_binding = ["pyo3"] # by default to avoid using python interface blossom_v = [ ] # automatically enabled when file `blossomV/PerfectMatching.h` exists MWPM_reverse_order = [ ] # test the logical error rate arbitrariness of MWPM decoders, see articles/UFandMWPM.md fusion_blossom = ["fusion-blossom"] # hyperion = ["mwpf"] include_different_type_edges = [] [lib] name = "qecp" # "cdylib" is necessary to produce a shared library for Python to import from. crate-type = ["lib", "cdylib"] [[bin]] name = "qecp-cli" path = "src/main.rs" [dependencies] rand = { version = "0.8.4", features = ["alloc"] } num_cpus = "1.13.0" bytes = "1.1.0" serde = { version = "1.0.160", features = ["derive", "rc"] } serde_json = "1.0.96" serde-hashkey = { version = "0.4.5", features = ["ordered-float"] } clap = { version = "4.2.5", features = ["cargo", "derive"] } ndarray = "0.15.4" actix-web = "4.0.1" actix-cors = "0.6.1" pyo3 = { version = "0.19.2", features = [ "extension-module", "multiple-pymethods", "abi3-py38", ], optional = true } libc = "0.2.81" petgraph = "0.6.0" pbr = "1.0.4" rand_core = "0.6.1" derivative = "2.2.0" derive_more = "0.99.17" lazy_static = "1.4.0" either = "1.6.1" shlex = "1.1.0" cfg-if = "1.0.0" platform-dirs = "0.3.0" float-cmp = "0.9.0" float-ord = "0.3.2" priority-queue = "1.2.1" parking_lot = "0.12.0" fusion-blossom = { version = "0.2.11", features = [ "dangerous_pointer", ], optional = true } chrono = "0.4.19" urlencoding = "2.1.0" enum_dispatch = "0.3.11" # mwpf = { path = "../mwpf", version = "0.0.4", optional = true } [build-dependencies] cc = "1.0.66" [package.metadata.docs.rs] rustdoc-args = ["--html-in-header", "katex-header.html"] # to run locally: `RUSTDOCFLAGS="--html-in-header katex-header.html" cargo doc --no-deps`