[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-fs-util.workspace = true reth-primitives = { workspace = true, features = ["secp256k1"] } reth-net-banlist.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-storage-api.workspace = true reth-provider = { workspace = true, optional = true } reth-tokio-util.workspace = true reth-consensus.workspace = true reth-network-peers = { workspace = true, features = ["net"] } reth-network-types.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 } # metrics reth-metrics = { workspace = true, features = ["common"] } metrics.workspace = true # misc auto_impl.workspace = true aquamarine.workspace = true tracing.workspace = true rustc-hash.workspace = true 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-network-types = { 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 url.workspace = true ## Benchmarks pprof = { workspace = true, features = ["criterion", "flamegraph"] } criterion = { workspace = true, features = ["async_tokio", "html_reports"] } [features] default = ["serde"] geth-tests = [] serde = ["dep:serde", "secp256k1/serde", "enr/serde", "reth-network-types/serde"] test-utils = ["dep:reth-provider", "reth-provider?/test-utils", "dep:tempfile", "reth-transaction-pool/test-utils", "reth-network-types/test-utils"] [[bench]] name = "bench" required-features = ["test-utils"] harness = false