[package] name = "reth-network" version.workspace = true edition.workspace = true rust-version.workspace = true license.workspace = true homepage.workspace = true repository.workspace = true description = "Ethereum network support" [lints] workspace = true [dependencies] # reth reth-chainspec.workspace = true reth-primitives.workspace = true reth-net-common.workspace = true reth-network-api.workspace = true reth-network-p2p.workspace = true reth-discv4.workspace = true reth-discv5.workspace = true reth-dns-discovery.workspace = true reth-eth-wire.workspace = true reth-ecies.workspace = true reth-tasks.workspace = true reth-transaction-pool.workspace = true reth-provider.workspace = true reth-rpc-types.workspace = true reth-tokio-util.workspace = true reth-consensus.workspace = true reth-network-peers.workspace = true # ethereum enr = { workspace = true, features = ["serde", "rust-secp256k1"] } alloy-rlp.workspace = true discv5.workspace = true # async/futures futures.workspace = true pin-project.workspace = true tokio = { workspace = true, features = ["io-util", "net", "macros", "rt-multi-thread", "time"] } tokio-stream.workspace = true tokio-util = { workspace = true, features = ["codec"] } # io serde = { workspace = true, optional = true } humantime-serde = { workspace = true, optional = true } serde_json = { workspace = true, optional = true } # metrics reth-metrics = { workspace = true, features = ["common"] } metrics.workspace = true # misc auto_impl.workspace = true aquamarine.workspace = true tracing.workspace = true fnv = "1.0" thiserror.workspace = true parking_lot.workspace = true rand.workspace = true secp256k1 = { workspace = true, features = ["global-context", "rand-std", "recovery"] } derive_more.workspace = true schnellru.workspace = true itertools.workspace = true tempfile = { workspace = true, optional = true } smallvec.workspace = true [dev-dependencies] # reth reth-discv4 = { workspace = true, features = ["test-utils"] } reth-primitives = { workspace = true, features = ["test-utils"] } # we need to enable the test-utils feature in our own crate to use utils in # integration tests reth-network = { workspace = true, features = ["test-utils"] } reth-network-p2p = { workspace = true, features = ["test-utils"] } reth-provider = { workspace = true, features = ["test-utils"] } reth-tracing.workspace = true reth-transaction-pool = { workspace = true, features = ["test-utils"] } # alloy deps for testing against nodes alloy-node-bindings.workspace = true alloy-provider= { workspace = true, features = ["admin-api"] } # misc serial_test.workspace = true tempfile.workspace = true ## Benchmarks pprof = { workspace = true, features = ["criterion", "flamegraph"] } criterion = { workspace = true, features = ["async_tokio", "html_reports"] } [features] default = ["serde"] serde = ["dep:serde", "dep:humantime-serde", "secp256k1/serde", "enr/serde", "dep:serde_json"] test-utils = ["reth-provider/test-utils", "dep:tempfile", "reth-transaction-pool/test-utils"] geth-tests = [] [[bench]] name = "bench" required-features = ["test-utils"] harness = false