[package]
name = "alloy-primitives"
description = "Ethereum primitive types"
keywords = ["ethers", "primitives", "ethereum", "revm", "reth"]
categories = ["no-std", "data-structures", "cryptography::cryptocurrencies"]
homepage = "https://github.com/alloy-rs/core/tree/main/crates/primitives"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
exclude.workspace = true
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints]
workspace = true
[dependencies]
bytes.workspace = true
hex-literal.workspace = true
hex.workspace = true
itoa.workspace = true
ruint.workspace = true
cfg-if.workspace = true
derive_more = { workspace = true, features = [
"as_ref",
"add",
"add_assign",
"not",
"deref",
"deref_mut",
"from",
"from_str",
"index",
"index_mut",
"into",
"into_iterator",
"display",
"deref",
] }
paste.workspace = true
keccak-asm = { workspace = true, optional = true }
sha3 = { workspace = true, optional = true }
tiny-keccak = { workspace = true, features = ["keccak"] }
alloy-rlp = { workspace = true, optional = true }
serde = { workspace = true, optional = true, features = ["derive"] }
getrandom = { workspace = true, optional = true }
rand = { workspace = true, optional = true, features = ["getrandom"] }
k256 = { workspace = true, optional = true, features = ["ecdsa"] }
hashbrown = { workspace = true, optional = true, features = [
"default-hasher",
"inline-more",
] }
indexmap = { workspace = true, optional = true }
foldhash = { workspace = true, optional = true }
rustc-hash = { workspace = true, optional = true }
arbitrary = { workspace = true, optional = true }
derive_arbitrary = { workspace = true, optional = true }
proptest = { workspace = true, optional = true }
proptest-derive = { workspace = true, optional = true }
allocative = { workspace = true, optional = true }
postgres-types = { workspace = true, optional = true }
[dev-dependencies]
bcs.workspace = true
bincode.workspace = true
criterion.workspace = true
serde_json.workspace = true
[features]
default = ["std", "map", "map-foldhash"]
std = [
"bytes/std",
"hex/std",
"ruint/std",
"alloy-rlp?/std",
"foldhash?/std",
"indexmap?/std",
"k256?/std",
"keccak-asm?/std",
"proptest?/std",
"rand?/std",
"rustc-hash?/std",
"serde?/std",
"sha3?/std",
]
nightly = [
"hex/nightly",
"ruint/nightly",
"hashbrown?/nightly",
"rustc-hash?/nightly",
]
asm-keccak = ["dep:keccak-asm"]
native-keccak = []
sha3-keccak = ["dep:sha3"]
tiny-keccak = []
map = ["dep:hashbrown"]
map-hashbrown = ["map"]
map-indexmap = ["map", "dep:indexmap"]
map-foldhash = ["map", "dep:foldhash"]
map-fxhash = ["map", "dep:rustc-hash"]
getrandom = ["dep:getrandom"]
k256 = ["dep:k256"]
rand = ["dep:rand", "getrandom", "ruint/rand", "rustc-hash?/rand"]
rlp = ["dep:alloy-rlp", "ruint/alloy-rlp"]
serde = [
"dep:serde",
"bytes/serde",
"hex/serde",
"ruint/serde",
"hashbrown?/serde",
"indexmap?/serde",
"rand?/serde",
]
allocative = ["dep:allocative"]
arbitrary = [
"std",
"dep:arbitrary",
"dep:derive_arbitrary",
"dep:proptest",
"dep:proptest-derive",
"ruint/arbitrary",
"ruint/proptest",
"indexmap?/arbitrary",
]
postgres = ["std", "dep:postgres-types", "ruint/postgres"]
hex-compat = ["hex/hex"]
[[bench]]
name = "primitives"
path = "benches/primitives.rs"
harness = false
required-features = ["rand"]