[package] name = "c-kzg" version = "2.0.0" edition = "2021" license = "Apache-2.0" description = "A minimal implementation of the Polynomial Commitments API for EIP-4844 and EIP-7594, written in C." links = "ckzg" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html include = [ "src", "inc", "bindings/rust/src", "bindings/rust/build.rs", "blst/bindings/*.h", ] build = "bindings/rust/build.rs" [lib] path = "bindings/rust/src/lib.rs" [features] default = ["std", "portable", "ethereum_kzg_settings"] std = ["hex/std", "libc/std", "serde?/std", "once_cell?/std"] serde = ["dep:serde"] generate-bindings = ["dep:bindgen"] ethereum_kzg_settings = ["dep:once_cell"] # Enable this feature when running the tests to generate the fuzzing corpus. # This converts the yaml reference tests into a binary form for the fuzzer. generate-fuzz-corpus = [] # This is a standalone feature so that crates that disable default features can # enable blst/portable without having to add it as a dependency portable = ["blst/portable"] # BLST Compilation: # Suppress multi-threading. # Engaged on wasm32 target architecture automatically. no-threads = ["blst/no-threads"] [dependencies] arbitrary = { version = "1", features = ["derive"] } blst = { version = "0.3.12", default-features = false } hex = { version = "0.4.2", default-features = false, features = ["alloc"] } libc = { version = "0.2", default-features = false } serde = { version = "1.0", optional = true, default-features = false, features = [ "alloc", "derive", ] } once_cell = { version = "1.19", default-features = false, features = [ "alloc", ], optional = true } [dev-dependencies] criterion = "0.5.1" glob = "0.3.1" rand = "0.8.5" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0.105" serde_yaml = "0.9.17" [build-dependencies] bindgen = { version = "0.69", optional = true } cc = "1.0" [target.'cfg(target_env = "msvc")'.build-dependencies] glob = "0.3"