-
Notifications
You must be signed in to change notification settings - Fork 10
/
Cargo.toml
269 lines (253 loc) · 12.1 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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
[workspace.package]
version = "0.1.0-alpha"
edition = "2021"
rust-version = "1.82"
authors = ["OpenVM Authors"]
homepage = "https://openvm.dev"
repository = "https://github.com/openvm-org/"
license = "MIT"
[workspace]
members = [
"benchmarks",
"crates/sdk",
"crates/cli",
"crates/circuits/mod-builder",
"crates/circuits/poseidon2-air",
"crates/circuits/primitives",
"crates/circuits/primitives/derive",
"crates/toolchain/transpiler",
"crates/toolchain/openvm",
"crates/toolchain/build",
"crates/toolchain/instructions",
"crates/toolchain/instructions/derive",
"crates/toolchain/macros",
"crates/toolchain/platform",
"crates/toolchain/tests",
"crates/vm",
"extensions/rv32im/circuit",
"extensions/rv32im/transpiler",
"extensions/rv32im/guest",
"extensions/rv32im/tests",
"extensions/rv32-adapters",
"extensions/native/circuit",
"extensions/native/compiler",
"extensions/native/compiler/derive",
"extensions/native/recursion",
"extensions/algebra/circuit",
"extensions/algebra/transpiler",
"extensions/algebra/guest",
"extensions/algebra/moduli-setup",
"extensions/algebra/tests",
"extensions/bigint/circuit",
"extensions/bigint/transpiler",
"extensions/bigint/guest",
"extensions/bigint/tests",
"extensions/keccak256/circuit",
"extensions/keccak256/transpiler",
"extensions/keccak256/guest",
"extensions/keccak256/tests",
"extensions/sha256/circuit",
"extensions/sha256/transpiler",
"extensions/sha256/guest",
"extensions/sha256/tests",
"extensions/ecc/circuit",
"extensions/ecc/transpiler",
"extensions/ecc/guest",
"extensions/ecc/sw-setup",
"extensions/ecc/tests",
"extensions/pairing/circuit",
"extensions/pairing/transpiler",
"extensions/pairing/guest",
"extensions/pairing/tests",
"extensions/snark-verifier",
"ci/scripts/metric_unify",
]
exclude = ["crates/sdk/example"]
resolver = "2"
# Fastest runtime configuration
[profile.release]
opt-level = 3
lto = "thin"
debug = "line-tables-only"
strip = true
panic = "unwind"
codegen-units = 16
[profile.profiling]
inherits = "release"
debug = 2
strip = false
# Make sure debug symbols are in the bench profile for flamegraphs
[profile.bench]
inherits = "profiling"
# This will compile slowly
[profile.maxperf]
inherits = "release"
lto = "fat"
codegen-units = 1
[profile.dev]
opt-level = 1
# For O1 optimization but still fast(ish) compile times
[profile.fast]
inherits = "dev"
debug-assertions = true
# better recompile times
incremental = true
lto = "thin"
[workspace.dependencies]
# Stark Backend
openvm-stark-backend = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v0.1.3-alpha", default-features = false }
openvm-stark-sdk = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v0.1.3-alpha", default-features = false }
# OpenVM
openvm-sdk = { path = "crates/sdk", default-features = false }
cargo-openvm = { path = "crates/cli", default-features = false }
openvm-mod-circuit-builder = { path = "crates/circuits/mod-builder", default-features = false }
openvm-poseidon2-air = { path = "crates/circuits/poseidon2-air", default-features = false }
openvm-sha256-air = { path = "crates/circuits/sha256-air", default-features = false }
openvm-circuit-primitives = { path = "crates/circuits/primitives", default-features = false }
openvm-circuit-primitives-derive = { path = "crates/circuits/primitives/derive", default-features = false }
openvm = { path = "crates/toolchain/openvm", default-features = false }
openvm-build = { path = "crates/toolchain/build", default-features = false }
openvm-instructions = { path = "crates/toolchain/instructions", default-features = false }
openvm-instructions-derive = { path = "crates/toolchain/instructions/derive", default-features = false }
openvm-macros-common = { path = "crates/toolchain/macros", default-features = false }
openvm-platform = { path = "crates/toolchain/platform", default-features = false }
openvm-transpiler = { path = "crates/toolchain/transpiler", default-features = false }
openvm-circuit = { path = "crates/vm", default-features = false }
openvm-circuit-derive = { path = "crates/vm/derive", default-features = false }
openvm-toolchain-tests = { path = "crates/toolchain/tests", default-features = false }
# Extensions
openvm-rv32im-circuit = { path = "extensions/rv32im/circuit", default-features = false }
openvm-rv32im-transpiler = { path = "extensions/rv32im/transpiler", default-features = false }
openvm-rv32im-guest = { path = "extensions/rv32im/guest", default-features = false }
openvm-rv32-adapters = { path = "extensions/rv32-adapters", default-features = false }
openvm-native-circuit = { path = "extensions/native/circuit", default-features = false }
openvm-native-compiler = { path = "extensions/native/compiler", default-features = false }
openvm-native-compiler-derive = { path = "extensions/native/compiler/derive", default-features = false }
openvm-native-recursion = { path = "extensions/native/recursion", default-features = false }
openvm-keccak256-circuit = { path = "extensions/keccak256/circuit", default-features = false }
openvm-keccak256-transpiler = { path = "extensions/keccak256/transpiler", default-features = false }
openvm-keccak256-guest = { path = "extensions/keccak256/guest", default-features = false }
openvm-sha256-circuit = { path = "extensions/sha256/circuit", default-features = false }
openvm-sha256-transpiler = { path = "extensions/sha256/transpiler", default-features = false }
openvm-sha256-guest = { path = "extensions/sha256/guest", default-features = false }
openvm-bigint-circuit = { path = "extensions/bigint/circuit", default-features = false }
openvm-bigint-transpiler = { path = "extensions/bigint/transpiler", default-features = false }
openvm-bigint-guest = { path = "extensions/bigint/guest", default-features = false }
openvm-algebra-circuit = { path = "extensions/algebra/circuit", default-features = false }
openvm-algebra-transpiler = { path = "extensions/algebra/transpiler", default-features = false }
openvm-algebra-guest = { path = "extensions/algebra/guest", default-features = false }
openvm-algebra-moduli-setup = { path = "extensions/algebra/moduli-setup", default-features = false }
openvm-algebra-complex-macros = { path = "extensions/algebra/guest/src/field/complex-macros", default-features = false }
openvm-ecc-circuit = { path = "extensions/ecc/circuit", default-features = false }
openvm-ecc-transpiler = { path = "extensions/ecc/transpiler", default-features = false }
openvm-ecc-guest = { path = "extensions/ecc/guest", default-features = false }
openvm-ecc-sw-setup = { path = "extensions/ecc/sw-setup", default-features = false }
openvm-pairing-circuit = { path = "extensions/pairing/circuit", default-features = false }
openvm-pairing-transpiler = { path = "extensions/pairing/transpiler", default-features = false }
openvm-pairing-guest = { path = "extensions/pairing/guest", default-features = false }
openvm-snark-verifier = { path = "extensions/snark-verifier", default-features = false }
# Plonky3
p3-air = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-field = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-commit = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-matrix = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-baby-bear = { git = "https://github.com/Plonky3/Plonky3.git", features = [
"nightly-features",
], rev = "9b267c4" }
p3-util = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-challenger = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-dft = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-fri = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-goldilocks = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-keccak = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-keccak-air = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-blake3 = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-mds = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-merkle-tree = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-monty-31 = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-poseidon = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-poseidon2 = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-poseidon2-air = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-symmetric = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-uni-stark = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
p3-maybe-rayon = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" } # the "parallel" feature is NOT on by default to allow single-threaded benchmarking
p3-bn254-fr = { git = "https://github.com/Plonky3/Plonky3.git", rev = "9b267c4" }
snark-verifier-sdk = { git = "https://github.com/axiom-crypto/snark-verifier", branch = "zkvm-v0.1", default-features = false, features = [
"loader_halo2",
"halo2-axiom",
"display",
] }
zkhash = { git = "https://github.com/HorizenLabs/poseidon2.git", rev = "bb476b9" }
halo2curves-axiom = "0.5.3"
rayon = "1.10"
parking_lot = "0.12.2"
tracing = "0.1.40"
bon = "3.2.0"
serde_json = "1.0.117"
serde_with = "3.11.0"
toml = "0.8.14"
lazy_static = "1.5.0"
once_cell = "1.19.0"
derive-new = "0.6.0"
derive_more = "1.0.0"
derivative = "2.2.0"
strum_macros = "0.26.4"
strum = { version = "0.26.3", features = ["derive"] }
enum-utils = "0.1.1"
backtrace = "0.3.71"
metrics = "0.23.0"
metrics-derive = "0.1.0"
cfg-if = "1.0.0"
inferno = "0.11.21"
test-case = "3.3.1"
test-log = "0.2.16"
enum_dispatch = "0.3.13"
eyre = "0.6.12"
tempfile = "3.13.0"
thiserror = "1.0.65"
rustc-hash = "2.0.0"
static_assertions = "1.1.0"
async-trait = "0.1.83"
getset = "0.1.3"
rrs-lib = "0.1.0"
rand = { version = "0.8.5", default-features = false }
hex = { version = "0.4.3", default-features = false }
# default-features = false for no_std for use in guest programs
itertools = { version = "0.13.0", default-features = false }
bincode = { version = "2.0.0-rc.3", default-features = false }
bitcode = { version = "0.6.3", default-features = false, features = ["serde"] }
serde = { version = "1.0.201", default-features = false, features = ["derive"] }
hex-literal = { version = "0.4.1", default-features = false }
bytemuck = { version = "1.20.0", default-features = false }
# cryptography, default-features = false for no_std
tiny-keccak = { version = "2.0.2", features = ["keccak"] }
k256 = { version = "0.13.3", default-features = false }
elliptic-curve = { version = "0.13.8", default-features = false }
ecdsa = { version = "0.16.9", default-features = false }
num-bigint-dig = { version = "0.8.4", default-features = false }
num-bigint = { version = "0.4.6", default-features = false }
num-integer = { version = "0.1.46", default-features = false }
num-traits = { version = "0.2.19", default-features = false }
ff = { version = "0.13.0", default-features = false }
# For local development. Add to your `.cargo/config.toml`
# [patch."https://github.com/Plonky3/Plonky3.git"]
# p3-air = { path = "../Plonky3/air" }
# p3-field = { path = "../Plonky3/field" }
# p3-commit = { path = "../Plonky3/commit" }
# p3-matrix = { path = "../Plonky3/matrix" }
# p3-baby-bear = { path = "../Plonky3/baby-bear" }
# p3-util = { path = "../Plonky3/util" }
# p3-challenger = { path = "../Plonky3/challenger" }
# p3-dft = { path = "../Plonky3/dft" }
# p3-fri = { path = "../Plonky3/fri" }
# p3-goldilocks = { path = "../Plonky3/goldilocks" }
# p3-keccak = { path = "../Plonky3/keccak" }
# p3-keccak-air = { path = "../Plonky3/keccak-air" }
# p3-blake3 = { path = "../Plonky3/blake3" }
# p3-mds = { path = "../Plonky3/mds" }
# p3-merkle-tree = { path = "../Plonky3/merkle-tree" }
# p3-poseidon2 = { path = "../Plonky3/poseidon2" }
# p3-symmetric = { path = "../Plonky3/symmetric" }
# p3-uni-stark = { path = "../Plonky3/uni-stark" }
# p3-maybe-rayon = { path = "../Plonky3/maybe-rayon" }
# p3-bn254-fr = { path = "../Plonky3/bn254-fr" }