[package]
name = "alloy-rpc-client"
description = "Low-level Ethereum JSON-RPC client implementation"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
exclude.workspace = true
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints]
workspace = true
[dependencies]
alloy-primitives = { workspace = true, features = ["map"] }
alloy-json-rpc.workspace = true
alloy-transport-http.workspace = true
alloy-transport.workspace = true
futures.workspace = true
pin-project.workspace = true
serde_json.workspace = true
serde.workspace = true
tokio = { workspace = true, features = ["sync"] }
tokio-stream = { workspace = true, features = ["sync"] }
tower.workspace = true
tracing.workspace = true
alloy-pubsub = { workspace = true, optional = true }
alloy-transport-ws = { workspace = true, optional = true }
reqwest = { workspace = true, optional = true }
url = { workspace = true, optional = true }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
alloy-transport-ipc = { workspace = true, optional = true }
[target.'cfg(target_arch = "wasm32")'.dependencies]
wasmtimer.workspace = true
[dev-dependencies]
alloy-primitives.workspace = true
alloy-node-bindings.workspace = true
alloy-transport-ipc = { workspace = true, features = ["mock"] }
alloy-transport-ws.workspace = true
ci_info.workspace = true
tempfile = "3"
futures-util.workspace = true
similar-asserts.workspace = true
[features]
default = ["reqwest"]
reqwest = ["dep:url", "dep:reqwest", "alloy-transport-http/reqwest"]
hyper = ["dep:url", "alloy-transport-http/hyper"]
pubsub = ["dep:alloy-pubsub"]
ws = ["pubsub", "dep:alloy-transport-ws", "dep:url"]
ipc = ["pubsub", "dep:alloy-transport-ipc"]