c-kzg 1.0.2

A minimal implementation of the Polynomial Commitments API for EIP-4844, written in C.
Documentation
[package]
name = "c-kzg"
version = "1.0.2"
edition = "2021"
license = "Apache-2.0"
description = "A minimal implementation of the Polynomial Commitments API for EIP-4844, 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"]
std = ["hex/std", "libc/std", "serde?/std"]
serde = ["dep:serde"]
generate-bindings = ["dep:bindgen"]

# 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]
blst = { version = "0.3.11", 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",
] }

[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"

[[bench]]
path = "bindings/rust/benches/kzg_benches.rs"
name = "kzg_benches"
harness = false