c-kzg 1.0.3

A minimal implementation of the Polynomial Commitments API for EIP-4844, written in C.
Documentation
[package]
name = "c-kzg"
version = "1.0.3"
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", "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"]

# 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",
] }
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"

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