Cargo Features

[dependencies]
revm-precompile = { version = "31.0.0", default-features = false, features = ["std", "hashbrown", "asm-keccak", "asm-sha2", "c-kzg", "portable", "secp256k1", "blst", "bn", "gmp"] }
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 ark-bls12-381

Use the BLS12-381 implementation of arkworks for EIP2537

and std of aurora-engine-modexp

modexp precompiles

and std of k256

ecRecover

and std of p256

p256verify precompile

and std of sha2

SHA2-256 and RIPEMD-160

and std of revm-primitives and ripemd

revm-primitives:

revm

and std of ark-bn254, ark-ec, ark-ff, ark-serialize, and ark-std

ark-bn254:

Use arkworks implementation for eip1962

and std of optional c-kzg

KZG point evaluation precompile

and std of optional rug and optional secp256k1

rug:

gmp wrapper

hashbrown

Enables hashbrown of revm-primitives

asm-keccak

Enables asm-keccak of revm-primitives

asm-sha2

Enables asm of sha2

c-kzg default

Enables the c-kzg point evaluation precompile. Enabled by default as most stable/used implementation.

Enables c-kzg

portable default

Compile in portable mode, without ISA extensions.
Binary can be executed on all systems.

Enables portable of optional blst and optional c-kzg

blst:

Use the BLS12-381 implementation of blst for EIP2537

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

Affects secp256k1::bitcoin_secp256k1

blst default

Enables the blst implementation of the BLS12-381 precompile.

Enables blst

Affects kzg_point_evaluation::blst

bn

Enables the substrate implementation of eip1962

Enables substrate-bn

Optionally use substrate implementation for eip1962

gmp

Use rug (that wraps gmp) for modexp precompile.
It is faster library but licences as GPL code, if enabled please make sure to follow the license.

Enables rug