ethrex-common 17.0.0

Core Ethereum data types and block validation for the ethrex Ethereum execution client
Documentation
[package]
name = "ethrex-common"
version.workspace = true
edition.workspace = true
authors.workspace = true
documentation.workspace = true
license.workspace = true
description = "Core Ethereum data types and block validation for the ethrex Ethereum execution client"
repository.workspace = true

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
ethrex-rlp.workspace = true
ethrex-trie.workspace = true
ethrex-crypto.workspace = true

tracing.workspace = true
ethereum-types.workspace = true
serde.workspace = true
serde_json.workspace = true
thiserror.workspace = true
sha2.workspace = true
once_cell = "1.20.2"
libc = "0.2"
crc32fast.workspace = true
bytes.workspace = true
hex.workspace = true
hex-literal.workspace = true
lazy_static.workspace = true
lru.workspace = true
rayon = { workspace = true, optional = true }
rkyv.workspace = true
rustc-hash.workspace = true
indexmap.workspace = true
hex-simd = "0.8.0"

secp256k1 = { workspace = true, optional = true }

# EIP-8025 SSZ dependencies (optional)
libssz = { workspace = true, optional = true }
libssz-types = { workspace = true, optional = true }
libssz-merkle = { workspace = true, optional = true }
libssz-derive = { workspace = true, optional = true }

[features]
default = ["secp256k1", "rayon"]            
c-kzg = ["ethrex-crypto/c-kzg"]         
rayon = ["dep:rayon"]                                                                                                                                                                       
secp256k1 = ["dep:secp256k1", "ethrex-crypto/secp256k1", "rayon"]                                                                                                                           
eip-8025 = ["dep:libssz", "dep:libssz-types", "dep:libssz-merkle", "dep:libssz-derive", "ethrex-trie/eip-8025"]

risc0 = ["ethrex-crypto/risc0"]
sp1 = []
zisk = []
# ethrex-crypto has no openvm-specific code anymore (the openvm-kzg backend
# lives in ethrex-guest-program's OpenVm provider), so this is an empty stub
# like `sp1`/`zisk` above, kept for the zkVM feature-propagation chain.
openvm = []

[dev-dependencies]
k256.workspace = true

[lib]
path = "./common.rs"

[lints.clippy]
unwrap_used = "deny"
redundant_clone = "warn"