mirror of
https://github.com/zkonduit/ezkl.git
synced 2026-04-25 03:01:17 -04:00
264 lines
8.6 KiB
TOML
264 lines
8.6 KiB
TOML
cargo-features = ["profile-rustflags"]
|
|
|
|
[package]
|
|
name = "ezkl"
|
|
version = "0.0.0"
|
|
edition = "2021"
|
|
default-run = "ezkl"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[lib]
|
|
# Name to be imported within python
|
|
# Example: import ezkl
|
|
name = "ezkl"
|
|
crate-type = ["cdylib", "rlib", "staticlib"]
|
|
|
|
|
|
[dependencies]
|
|
halo2_gadgets = { git = "https://github.com/zkonduit/halo2", branch = "ac/optional-selector-poly" }
|
|
halo2curves = { git = "https://github.com/privacy-scaling-explorations/halo2curves", rev = "b753a832e92d5c86c5c997327a9cf9de86a18851", features = [
|
|
"derive_serde",
|
|
] }
|
|
halo2_proofs = { git = "https://github.com/zkonduit/halo2", package = "halo2_proofs", branch = "ac/cache-lookup-commitments", features = ["circuit-params"] }
|
|
rand = { version = "0.8", default-features = false }
|
|
itertools = { version = "0.10.3", default-features = false }
|
|
clap = { version = "4.5.3", features = ["derive"], optional = true }
|
|
serde = { version = "1.0.126", features = ["derive"] }
|
|
clap_complete = { version = "4.5.2", optional = true }
|
|
log = { version = "0.4.17", default-features = false }
|
|
thiserror = { version = "1.0.38", default-features = false }
|
|
hex = { version = "0.4.3", default-features = false }
|
|
halo2_wrong_ecc = { git = "https://github.com/zkonduit/halo2wrong", branch = "ac/chunked-mv-lookup", package = "ecc" }
|
|
snark-verifier = { git = "https://github.com/zkonduit/snark-verifier", branch = "ac/chunked-mv-lookup", features = [
|
|
"derive_serde",
|
|
] }
|
|
halo2_solidity_verifier = { git = "https://github.com/alexander-camuto/halo2-solidity-verifier", branch = "ac/update-h2-curves", optional = true }
|
|
maybe-rayon = { version = "0.1.1", default-features = false }
|
|
bincode = { version = "1.3.3", default-features = false }
|
|
unzip-n = "0.1.2"
|
|
num = "0.4.1"
|
|
portable-atomic = { version = "1.6.0", optional = true }
|
|
tosubcommand = { git = "https://github.com/zkonduit/enum_to_subcommand", package = "tosubcommand", optional = true }
|
|
semver = { version = "1.0.22", optional = true }
|
|
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
serde_json = { version = "1.0.97", features = [
|
|
"float_roundtrip",
|
|
"raw_value",
|
|
] }
|
|
|
|
# evm related deps
|
|
alloy = { git = "https://github.com/alloy-rs/alloy", version = "0.1.0", rev = "5fbf57bac99edef9d8475190109a7ea9fb7e5e83", features = [
|
|
"provider-http",
|
|
"signers",
|
|
"contract",
|
|
"rpc-types-eth",
|
|
"signer-wallet",
|
|
"node-bindings",
|
|
|
|
], optional = true }
|
|
foundry-compilers = { version = "0.4.1", features = ["svm-solc"], optional = true }
|
|
ethabi = { version = "18", optional = true }
|
|
indicatif = { version = "0.17.5", features = ["rayon"], optional = true }
|
|
gag = { version = "1.0.0", default-features = false, optional = true }
|
|
instant = { version = "0.1" }
|
|
reqwest = { version = "0.12.4", default-features = false, features = ["default-tls", "multipart", "stream"], optional = true }
|
|
openssl = { version = "0.10.55", features = ["vendored"], optional = true }
|
|
tokio-postgres = { version = "0.7.10", optional = true }
|
|
pg_bigdecimal = { version = "0.1.5", optional = true }
|
|
lazy_static = { version = "1.4.0", optional = true }
|
|
colored_json = { version = "3.0.1", default-features = false, optional = true }
|
|
regex = { version = "1", default-features = false, optional = true }
|
|
tokio = { version = "1.35.0", default-features = false, features = ["macros", "rt-multi-thread"], optional = true }
|
|
pyo3 = { version = "0.21.2", features = ["extension-module", "abi3-py37", "macros"], default-features = false, optional = true }
|
|
pyo3-asyncio = { git = "https://github.com/jopemachine/pyo3-asyncio/", branch="migration-pyo3-0.21", features = ["attributes", "tokio-runtime"], default-features = false, optional = true }
|
|
pyo3-log = { version = "0.10.0", default-features = false, optional = true }
|
|
tract-onnx = { git = "https://github.com/sonos/tract/", rev = "40c64319291184814d9fea5fdf4fa16f5a4f7116", default-features = false, optional = true }
|
|
tabled = { version = "0.12.0", optional = true }
|
|
metal = { git = "https://github.com/gfx-rs/metal-rs", optional = true }
|
|
objc = { version = "0.2.4", optional = true }
|
|
mimalloc = { version = "0.1", optional = true }
|
|
|
|
# universal bindings
|
|
uniffi = { version = "=0.28.0", optional = true }
|
|
getrandom = { version = "0.2.8", optional = true }
|
|
uniffi_bindgen = { version = "=0.28.0", optional = true }
|
|
camino = { version = "^1.1", optional = true }
|
|
uuid = { version = "1.10.0", features = ["v4"], optional = true }
|
|
|
|
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies]
|
|
colored = { version = "2.0.0", default-features = false, optional = true }
|
|
env_logger = { version = "0.10.0", default-features = false, optional = true }
|
|
chrono = { version = "0.4.31", optional = true }
|
|
sha256 = { version = "1.4.0", optional = true }
|
|
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
serde_json = { version = "1.0.97", default-features = false, features = [
|
|
"float_roundtrip",
|
|
"raw_value",
|
|
] }
|
|
getrandom = { version = "0.2.8", features = ["js"] }
|
|
instant = { version = "0.1", features = ["wasm-bindgen", "inaccurate"] }
|
|
|
|
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies]
|
|
wasm-bindgen-rayon = { version = "1.2.1", optional = true }
|
|
wasm-bindgen-test = "0.3.42"
|
|
serde-wasm-bindgen = "0.6.5"
|
|
wasm-bindgen = { version = "0.2.92", features = ["serde-serialize"] }
|
|
console_error_panic_hook = "0.1.7"
|
|
wasm-bindgen-console-logger = "0.1.1"
|
|
|
|
|
|
[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dev-dependencies]
|
|
criterion = { version = "0.5.1", features = ["html_reports"] }
|
|
|
|
|
|
[build-dependencies]
|
|
uniffi = { version = "0.28", features = ["build"], optional = true }
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3.3.0"
|
|
lazy_static = "1.4.0"
|
|
mnist = "0.5"
|
|
seq-macro = "0.3.1"
|
|
test-case = "2.2.2"
|
|
tempdir = "0.3.7"
|
|
shellexpand = "3.1.0"
|
|
|
|
[target.wasm32-unknown-unknown]
|
|
runner = 'wasm-bindgen-test-runner'
|
|
|
|
|
|
[[bench]]
|
|
name = "accum_dot"
|
|
harness = false
|
|
|
|
|
|
[[bench]]
|
|
name = "accum_sum"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "pairwise_add"
|
|
harness = false
|
|
|
|
|
|
[[bench]]
|
|
name = "pairwise_pow"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "poseidon"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "accum_einsum_matmul"
|
|
harness = false
|
|
|
|
|
|
[[bench]]
|
|
name = "accum_conv"
|
|
harness = false
|
|
|
|
|
|
[[bench]]
|
|
name = "accum_sumpool"
|
|
harness = false
|
|
|
|
|
|
[[bench]]
|
|
name = "relu"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "relu_lookupless"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "accum_matmul_relu"
|
|
harness = false
|
|
|
|
|
|
[[bench]]
|
|
name = "accum_matmul_relu_overflow"
|
|
harness = false
|
|
|
|
[[bin]]
|
|
name = "ezkl"
|
|
test = false
|
|
bench = false
|
|
required-features = ["ezkl"]
|
|
|
|
[[bin]]
|
|
name = "ios_gen_bindings"
|
|
required-features = ["ios-bindings", "uuid", "camino", "uniffi_bindgen"]
|
|
|
|
[features]
|
|
web = ["wasm-bindgen-rayon"]
|
|
default = ["ezkl", "mv-lookup", "precompute-coset", "no-banner", "parallel-poly-read"]
|
|
onnx = ["dep:tract-onnx"]
|
|
python-bindings = ["pyo3", "pyo3-log", "pyo3-asyncio"]
|
|
ios-bindings = ["mv-lookup", "precompute-coset", "parallel-poly-read", "uniffi"]
|
|
ios-bindings-test = ["ios-bindings", "uniffi/bindgen-tests"]
|
|
ezkl = [
|
|
"onnx",
|
|
"dep:colored",
|
|
"dep:env_logger",
|
|
"tabled/color",
|
|
"serde_json/std",
|
|
"colored_json",
|
|
"dep:alloy",
|
|
"dep:foundry-compilers",
|
|
"dep:ethabi",
|
|
"dep:indicatif",
|
|
"dep:gag",
|
|
"dep:reqwest",
|
|
"dep:openssl",
|
|
"dep:tokio-postgres",
|
|
"dep:pg_bigdecimal",
|
|
"dep:lazy_static",
|
|
"dep:regex",
|
|
"dep:tokio",
|
|
"dep:mimalloc",
|
|
"dep:chrono",
|
|
"dep:sha256",
|
|
"dep:portable-atomic",
|
|
"dep:clap_complete",
|
|
"dep:halo2_solidity_verifier",
|
|
"dep:semver",
|
|
"dep:clap",
|
|
"dep:tosubcommand",
|
|
]
|
|
parallel-poly-read = ["halo2_proofs/circuit-params", "halo2_proofs/parallel-poly-read"]
|
|
mv-lookup = [
|
|
"halo2_proofs/mv-lookup",
|
|
"snark-verifier/mv-lookup",
|
|
"halo2_solidity_verifier/mv-lookup",
|
|
]
|
|
asm = ["halo2curves/asm", "halo2_proofs/asm"]
|
|
precompute-coset = ["halo2_proofs/precompute-coset"]
|
|
det-prove = []
|
|
icicle = ["halo2_proofs/icicle_gpu"]
|
|
empty-cmd = []
|
|
no-banner = []
|
|
no-update = []
|
|
|
|
# icicle patch to 0.1.0 if feature icicle is enabled
|
|
[patch.'https://github.com/ingonyama-zk/icicle']
|
|
icicle = { git = "https://github.com/ingonyama-zk/icicle?rev=45b00fb", package = "icicle", branch = "fix/vhnat/ezkl-build-fix" }
|
|
|
|
[patch.'https://github.com/zkonduit/halo2']
|
|
halo2_proofs = { git = "https://github.com/zkonduit/halo2?branch=ac/cache-lookup-commitments#8b13a0d2a7a34d8daab010dadb2c47dfa47d37d0", package = "halo2_proofs", branch = "ac/cache-lookup-commitments" }
|
|
|
|
[patch.crates-io]
|
|
uniffi_testing = { git = "https://github.com/ElusAegis/uniffi-rs", branch = "feat/testing-feature-build-fix" }
|
|
|
|
[profile.release]
|
|
rustflags = ["-C", "relocation-model=pic"]
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
# panic = "abort"
|
|
|