[package] name = "reth-eth-wire" description = "Implements the eth/64 and eth/65 P2P protocols" version = "0.1.0" edition.workspace = true rust-version.workspace = true license.workspace = true homepage.workspace = true repository.workspace = true [dependencies] bytes = "1.4" thiserror = "1" serde = { version = "1", optional = true } # reth reth-codecs = { path = "../../storage/codecs" } reth-primitives = { path = "../../primitives" } reth-ecies = { path = "../ecies" } reth-rlp = { path = "../../rlp", features = [ "alloc", "derive", "std", "ethereum-types", "smol_str", ] } reth-metrics = { path = "../../metrics" } # used for Chain and builders ethers-core = { version = "2.0.7", default-features = false } tokio = { version = "1.21.2", features = ["full"] } tokio-util = { version = "0.7.4", features = ["io", "codec"] } futures = "0.3.24" tokio-stream = "0.1.11" pin-project = "1.0" tracing = { workspace = true } snap = "1.0.5" smol_str = "0.1" async-trait = "0.1" # arbitrary utils arbitrary = { version = "1.1.7", features = ["derive"], optional = true } proptest = { version = "1.0", optional = true } proptest-derive = { version = "0.3", optional = true } [dev-dependencies] reth-primitives = { path = "../../primitives", features = ["arbitrary"] } reth-tracing = { path = "../../tracing" } ethers-core = { version = "2.0.7", default-features = false } test-fuzz = "3.0.4" tokio-util = { version = "0.7.4", features = ["io", "codec"] } hex-literal = "0.3" hex = "0.4" rand = "0.8" secp256k1 = { version = "0.27.0", features = ["global-context", "rand-std", "recovery"] } arbitrary = { version = "1.1.7", features = ["derive"] } proptest = { version = "1.0" } proptest-derive = "0.3" [features] default = ["serde"] serde = ["dep:serde", "smol_str/serde"] arbitrary = ["reth-primitives/arbitrary", "dep:arbitrary", "dep:proptest", "dep:proptest-derive"] [[test]] name = "fuzz_roundtrip" path = "tests/fuzz_roundtrip.rs" required-features = ["arbitrary", "serde"]