[package] name = "fusion-blossom" version = "0.2.12" authors = ["Yue Wu "] edition = "2021" license = "MIT" description = "A fast minimum-weight perfect matching solver for quantum error correction" readme = "README.md" homepage = "https://fusionblossom.com" repository = "https://github.com/yuewuo/fusion-blossom" keywords = ["QEC", "quantum-computing", "error-correction", "visualization"] categories = ["science"] exclude = ["tutorial/*", "benchmark/*", "visualize/data/persist/*", ".github/*"] default-run = "fusion_blossom" # see https://doc.rust-lang.org/1.39.0/cargo/reference/manifest.html#the-documentation-field-optional [badges] maintenance = { status = "actively-developed" } [lib] name = "fusion_blossom" path = "src/lib.rs" crate-type = ["lib", "cdylib"] [[bin]] name = "fusion_blossom" path = "src/main.rs" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # profiling: see scripts/NOTES.md # embed debug symbols [profile.release] debug = true [features] # to enable a feature, use `--features xxx` default = [] blossom_v = [ ] # automatically enabled when file `blossomV/PerfectMatching.h` exists remove_blossom_v = [] # disable blossom V library even if required files exist i32_weight = [ ] # use i32 instead of i64 as weight type, to be the same as blossom V library u32_index = [ ] # use u32 instead of usize as index type, to save memory by at most half ordered_conflicts = [ ] # sort conflict events, by default do not sort for better performance disable_visualizer = [] # disable all visualizer behavior unsafe_pointer = [ ] # use raw pointers to access data without lock when appropriate; fusion blossom requires very little synchronization dangerous_pointer = [ "unsafe_pointer", ] # use raw pointers instead of Arc and Weak, require "unsafe_pointer" feature python_binding = ["pyo3"] # bind to Python qecp_integrate = ["qecp"] [dependencies] rand_xoshiro = "0.6.0" libc = "0.2.124" cfg-if = "1.0.0" priority-queue = "1.2.1" parking_lot = { version = "0.12.1", features = ["hardware-lock-elision"] } serde = { version = "1.0.117", features = ["derive", "rc"] } serde_json = "1.0.59" chrono = "0.4.19" derivative = "2.2.0" urlencoding = "2.1.0" clap = { version = "4.2.4", features = ["cargo", "derive"] } pbr = "1.0.4" rayon = "1.7.0" weak-table = "0.3.2" rand = "0.8.5" core_affinity = "0.8.0" pyo3 = { version = "0.18.3", features = [ "extension-module", "multiple-pymethods", "abi3-py37", ], optional = true } lazy_static = "1.4.0" petgraph = "0.6.3" qecp = { version = "0.2.7", features = ["fusion-blossom"], optional = true } nonzero = "0.2.0" [build-dependencies] cc = "1.0.66" [dev-dependencies] [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`