Cargo Features

[dependencies]
revm-precompile = { version = "17.0.0-alpha.1", default-features = false, features = ["std", "hashbrown", "asm-keccak", "secp256r1", "c-kzg", "kzg-rs", "portable", "secp256k1", "libsecp256k1", "blst"] }
default = blst, c-kzg, portable, secp256k1, std

These default features are set whenever revm-precompile is added without default-features = false somewhere in the dependency tree.

std default

Enables std of once_cell

static precompile sets.

and std of sha2

SHA2-256 and RIPEMD-160

and std of optional c-kzg ^1.0.3

KZG point evaluation precompile

and std of k256 and optional libsecp256k1

k256:

ecRecover

and std of revm-primitives, ripemd, and optional secp256k1 >=0.28, <=0.29

revm-primitives:

revm

hashbrown

Enables hashbrown of revm-primitives

asm-keccak

Enables asm-keccak of revm-primitives

secp256r1

Enables the p256verify precompile.

Enables p256

p256verify precompile

Affects revm-precompile::secp256r1

c-kzg default portable

These libraries may not work on all no_std platforms as they depend on C.

Enables the KZG point evaluation precompile.

Enables c-kzg ^1.0.3

Affects revm-precompile::kzg_point_evaluation

kzg-rs

kzg-rs is not audited but useful for no_std environment, use it with causing and default to c-kzg if possible.

Enables kzg-rs

Optionally use kzg-rs for a pure Rust implementation of KZG point evaluation.

Affects revm-precompile::kzg_point_evaluation

portable default = c-kzg
secp256k1 default

Use secp256k1 as a faster alternative to k256. The problem that secp256k1 has is it fails to build for wasm target on Windows and Mac as it is c lib. In Linux it passes. If you don't require to build wasm on win/mac, it is safe to use it and it is enabled by default.

Enables secp256k1 >=0.28, <=0.29

Affects secp256k1::bitcoin_secp256k1

libsecp256k1

Enables libsecp256k1

Affects secp256k1::parity_libsecp256k1

blst default

Enables the BLS12-381 precompiles.

Enables blst

BLS12-381 precompiles

Affects revm-precompile::bls12_381