forked from lambdaclass/cairo-vm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cargo.toml
112 lines (97 loc) · 3.42 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
[package]
name = "cairo-vm"
description = "Blazing fast Cairo interpreter"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
readme.workspace = true
keywords.workspace = true
[features]
default = ["std"]
std = [
"serde_json/std",
"bincode/std",
"anyhow/std",
"starknet-types-core/std",
"starknet-crypto/std",
"dep:num-prime",
"thiserror-no-std/std",
"dep:zip",
]
cairo-1-hints = [
"dep:cairo-lang-starknet",
"dep:cairo-lang-casm",
"dep:cairo-lang-starknet-classes",
"dep:ark-ff",
"dep:ark-std",
]
tracer = []
mod_builtin = []
# Note that these features are not retro-compatible with the cairo Python VM.
test_utils = ["std", "dep:arbitrary", "starknet-types-core/arbitrary", "starknet-types-core/std"] # This feature will reference every test-oriented feature
# Allows extending the set of hints for the current vm run from within a hint.
# For a usage example checkout vm/src/tests/run_deprecated_contract_class_simplified.rs
extensive_hints = []
[dependencies]
zip = { version = "0.6.6", optional = true, default-features = false, features = ["deflate"] }
num-bigint = { workspace = true }
rand = { workspace = true }
num-traits = { workspace = true }
num-integer = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
hex = { workspace = true }
bincode = { workspace = true }
starknet-crypto = { workspace = true }
sha3 = { workspace = true }
lazy_static = { workspace = true }
nom = { workspace = true }
sha2 = { workspace = true }
generic-array = { workspace = true }
keccak = { workspace = true }
hashbrown = { workspace = true }
anyhow = { workspace = true }
thiserror-no-std = { workspace = true }
starknet-types-core = { version = "0.1.2", default-features = false, features = ["serde", "curve", "num-traits", "hash"] }
rust_decimal = { version = "1.35.0", default-features = false }
# only for std
num-prime = { version = "0.4.3", features = ["big-int"], optional = true }
bitvec = { workspace = true }
# Dependencies for cairo-1-hints feature
cairo-lang-starknet = { workspace = true, optional = true }
cairo-lang-starknet-classes = { workspace = true, optional = true }
cairo-lang-casm = { workspace = true, optional = true }
# TODO: check these dependencies for wasm compatibility
ark-ff = { workspace = true, optional = true }
ark-std = { workspace = true, optional = true }
# Enable arbitrary when fuzzing
arbitrary = { workspace = true, features = ["derive"], optional = true }
# Used to derive clap traits for CLIs
clap = { version = "4.3.10", features = ["derive"], optional = true}
# Pin wasm-bindgen version to fix ensure-no_std CI workflow
# It's not used directly
wasm-bindgen = { version = "= 0.2.92" }
[dev-dependencies]
assert_matches = "1.5.0"
rstest = { version = "0.17.0", default-features = false }
num-prime = { version = "0.4.3", features = ["big-int"] }
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
wasm-bindgen-test = "0.3.34"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
iai-callgrind = "0.3.1"
criterion = { version = "0.5.1", features = ["html_reports"] }
proptest = "1.0.0"
mimalloc.workspace = true
[[bench]]
path = "../bench/iai_benchmark.rs"
name = "iai_benchmark"
harness = false
[[bench]]
path = "../bench/criterion_benchmark.rs"
name = "criterion_benchmark"
harness = false
[[example]]
name = "custom_hint"
path = "../examples/custom_hint/src/main.rs"
required-features = ["std"]