[package] name = "reth" version.workspace = true edition.workspace = true rust-version.workspace = true license.workspace = true homepage.workspace = true repository.workspace = true description = "Reth node implementation" default-run = "reth" [lints] workspace = true [dependencies] # reth reth-chainspec.workspace = true reth-config.workspace = true reth-primitives.workspace = true reth-fs-util.workspace = true reth-db = { workspace = true, features = ["mdbx"] } reth-db-api.workspace = true reth-exex.workspace = true reth-provider.workspace = true reth-evm.workspace = true reth-revm.workspace = true reth-stages.workspace = true reth-execution-types.workspace = true reth-errors.workspace = true reth-transaction-pool.workspace = true reth-beacon-consensus.workspace = true reth-cli-runner.workspace = true reth-cli-commands.workspace = true reth-cli-util.workspace = true reth-consensus-common.workspace = true reth-blockchain-tree.workspace = true reth-rpc-builder.workspace = true reth-rpc.workspace = true reth-rpc-types.workspace = true reth-rpc-types-compat.workspace = true reth-rpc-api = { workspace = true, features = ["client"] } reth-rpc-eth-types.workspace = true reth-rpc-server-types.workspace = true reth-network = { workspace = true, features = ["serde"] } reth-network-p2p.workspace = true reth-network-api.workspace = true reth-downloaders.workspace = true reth-tracing.workspace = true reth-tasks.workspace = true reth-payload-builder.workspace = true reth-payload-primitives.workspace = true reth-payload-validator.workspace = true reth-basic-payload-builder.workspace = true reth-static-file.workspace = true reth-static-file-types = { workspace = true, features = ["clap"] } reth-trie = { workspace = true, features = ["metrics"] } reth-trie-db = { workspace = true, features = ["metrics"] } reth-node-api.workspace = true reth-node-optimism = { workspace = true, optional = true, features = [ "optimism", ] } reth-node-core.workspace = true reth-ethereum-payload-builder.workspace = true reth-db-common.workspace = true reth-node-ethereum.workspace = true reth-node-builder.workspace = true reth-node-events.workspace = true reth-node-metrics.workspace = true reth-consensus.workspace = true reth-optimism-primitives.workspace = true reth-engine-util.workspace = true reth-prune.workspace = true reth-stages-api.workspace = true reth-optimism-cli = { workspace = true, optional = true } # crypto alloy-rlp.workspace = true # tracing tracing.workspace = true # io fdlimit.workspace = true serde.workspace = true serde_json.workspace = true confy.workspace = true toml = { workspace = true, features = ["display"] } # metrics metrics-process.workspace = true # async tokio = { workspace = true, features = [ "sync", "macros", "time", "rt-multi-thread", ] } futures.workspace = true # misc aquamarine.workspace = true eyre.workspace = true clap = { workspace = true, features = ["derive", "env"] } tempfile.workspace = true backon.workspace = true similar-asserts.workspace = true itertools.workspace = true # p2p discv5.workspace = true [target.'cfg(unix)'.dependencies] tikv-jemallocator = { version = "0.5.0", optional = true } libc = "0.2" [dev-dependencies] reth-discv4.workspace = true [features] default = ["jemalloc"] dev = ["reth-cli-commands/dev"] asm-keccak = ["reth-node-core/asm-keccak", "reth-primitives/asm-keccak"] jemalloc = ["dep:tikv-jemallocator", "reth-node-core/jemalloc", "reth-node-metrics/jemalloc"] jemalloc-prof = ["jemalloc", "tikv-jemallocator?/profiling"] min-error-logs = ["tracing/release_max_level_error"] min-warn-logs = ["tracing/release_max_level_warn"] min-info-logs = ["tracing/release_max_level_info"] min-debug-logs = ["tracing/release_max_level_debug"] min-trace-logs = ["tracing/release_max_level_trace"] optimism = [ "dep:reth-node-optimism", "dep:reth-optimism-cli", "reth-beacon-consensus/optimism", "reth-blockchain-tree/optimism", "reth-node-core/optimism", "reth-optimism-cli?/optimism", "reth-primitives/optimism", "reth-provider/optimism", "reth-rpc/optimism", ] # no-op feature flag for switching between the `optimism` and default functionality in CI matrices ethereum = [] [[bin]] name = "reth" path = "src/main.rs" [[bin]] name = "op-reth" path = "src/optimism.rs" required-features = ["optimism"]