-
Notifications
You must be signed in to change notification settings - Fork 4
/
Cargo.toml
118 lines (108 loc) · 3.35 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
[package]
name = "qecp"
version = "0.2.4"
authors = [
"Yue Wu <[email protected]>",
"Namitha Liyanage <[email protected]>",
"Neil He <[email protected]>",
]
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.10", 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`