Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,865 changes: 991 additions & 874 deletions Cargo.lock

Large diffs are not rendered by default.

83 changes: 42 additions & 41 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ resolver = "2"
[workspace.package]
version = "0.1.0"
edition = "2024"
rust-version = "1.88.0"
rust-version = "1.94.0"
license = "BUSL-1.1"
exclude = [".github/"]

Expand All @@ -18,52 +18,54 @@ uniswap-storage = { path = "./crates/uniswap-storage" }
exe-runners = { path = "./crates/exe-runners" }

# reth
reth-db = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3", default-features = false }
reth-provider = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3" }
reth-rpc = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3" }
reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3" }
reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3" }
reth-tasks = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3" }
reth-network-api = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3" }
reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3" }
reth-rpc-convert = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3" }
reth-chainspec = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3" }

reth-optimism-chainspec = { git = "https://github.com/ethereum-optimism/optimism", version = "1.11.3", tag = "op-reth/v1.11.3" }
reth-optimism-node = { git = "https://github.com/ethereum-optimism/optimism", version = "1.11.3", tag = "op-reth/v1.11.3" }
reth-optimism-evm = { git = "https://github.com/ethereum-optimism/optimism", version = "1.11.3", tag = "op-reth/v1.11.3" }
reth-optimism-rpc = { git = "https://github.com/ethereum-optimism/optimism", version = "1.11.3", tag = "op-reth/v1.11.3" }
reth-optimism-primitives = { git = "https://github.com/ethereum-optimism/optimism", version = "1.11.3", tag = "op-reth/v1.11.3" }

reth-revm = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3" }
reth-evm = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3" }
reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3" }
reth-storage-api = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3" }
reth-node-types = { git = "https://github.com/paradigmxyz/reth", version = "1.11.3", tag = "v1.11.3" }
reth-db = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0", default-features = false }
reth-provider = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0" }
reth-rpc = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0" }
reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0" }
reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0" }
reth-tasks = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0" }
reth-network-api = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0" }
reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0" }
reth-rpc-convert = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0" }
reth-chainspec = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0" }

reth-optimism-chainspec = { git = "https://github.com/ethereum-optimism/optimism", rev = "1e3ee25" }
reth-optimism-node = { git = "https://github.com/ethereum-optimism/optimism", rev = "1e3ee25" }
reth-optimism-evm = { git = "https://github.com/ethereum-optimism/optimism", rev = "1e3ee25" }
reth-optimism-rpc = { git = "https://github.com/ethereum-optimism/optimism", rev = "1e3ee25" }
reth-optimism-primitives = { git = "https://github.com/ethereum-optimism/optimism", rev = "1e3ee25" }

reth-revm = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0" }
reth-evm = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0" }
reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0" }
reth-storage-api = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0" }
reth-node-types = { git = "https://github.com/paradigmxyz/reth", version = "2.0.0", tag = "v2.0.0" }


# alloy
alloy-provider = { version = "1.6.3", default-features = false }
alloy-rpc-client = { version = "1.6.3", default-features = false }
alloy-network = { version = "1.6.3", default-features = false }
alloy-rpc-types = { version = "1.6.3", default-features = false }
alloy-provider = { version = "1.8.2", default-features = false }
alloy-rpc-client = { version = "1.8.2", default-features = false }
alloy-network = { version = "1.8.2", default-features = false }
alloy-rpc-types = { version = "1.8.2", default-features = false }
alloy-sol-types = { version = "1.5.6", default-features = false }
alloy-primitives = { version = "1.5.6", default-features = false }
alloy-eips = { version = "1.6.3", default-features = false }
op-alloy-network = { version = "0.23.1", default-features = false }
op-alloy-consensus = { version = "0.23.1", default-features = false }
alloy-eips = { version = "1.8.2", default-features = false }
# op-alloy-network = { version = "0.24.0", default-features = false }
# op-alloy-consensus = { version = "0.24.0", default-features = false }
op-alloy-network = { git = "https://github.com/ethereum-optimism/optimism", rev = "1e3ee25", default-features = false }
op-alloy-consensus = { git = "https://github.com/ethereum-optimism/optimism", rev = "1e3ee25", default-features = false }


# revm
revm-database = { version = "10.0.0", default-features = false }
revm = { version = "34.0.0", features = [
revm-database = { version = "12.0.0", default-features = false }
revm = { version = "36.0.0", features = [
"std",
"secp256k1",
"optional_balance_check",
"optional_block_gas_limit",
"c-kzg",
], default-features = false }
op-revm = { version = "15.0.0", features = [
op-revm = { version = "17.0.0", features = [
"std",
"secp256k1",
"optional_balance_check",
Expand All @@ -76,6 +78,13 @@ tokio = "1"
futures = "0.3"
futures-util = "0.3"
async-trait = "0"
dashmap = "6.0"
thread-priority = "3.0.0"
rayon = "1.7"
crossbeam-utils = "0.8"
parking_lot = "0.12"
pin-project = "1.0.12"
libc = "0.2"


# misc
Expand All @@ -88,11 +97,3 @@ thiserror = "1.0"

# testing
serial_test = "3.1"

[patch.crates-io]
op-alloy-rpc-types-engine = { git = "https://github.com/ethereum-optimism/optimism", tag = "op-reth/v1.11.3" }
op-alloy-consensus = { git = "https://github.com/ethereum-optimism/optimism", tag = "op-reth/v1.11.3" }
op-alloy-network = { git = "https://github.com/ethereum-optimism/optimism", tag = "op-reth/v1.11.3" }
op-alloy-rpc-types = { git = "https://github.com/ethereum-optimism/optimism", tag = "op-reth/v1.11.3" }
op-alloy = { git = "https://github.com/ethereum-optimism/optimism", tag = "op-reth/v1.11.3" }
alloy-op-hardforks = { git = "https://github.com/ethereum-optimism/optimism", tag = "op-reth/v1.11.3" }
33 changes: 18 additions & 15 deletions crates/exe-runners/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,36 +3,39 @@ name = "exe-runners"
version = "0.1.0"
edition = "2021"


[lib]
name = "exe_runners"

[dependencies]

# async
tokio = { workspace = true, features = [
"sync",
"rt",
"macros",
"rt-multi-thread",
"signal",
] }
futures-util.workspace = true
tokio = { workspace = true, features = ["sync", "rt", "macros", "rt-multi-thread", "signal"] }
futures-util = { workspace = true, features = ["std"] }

# tracing
tracing-futures.workspace = true
tracing.workspace = true

# task/runtime support
dashmap.workspace = true
thread-priority.workspace = true

# misc
auto_impl.workspace = true
dyn-clone.workspace = true
thiserror.workspace = true

# reth-tasks
reth-tasks = { workspace = true, optional = true }

# feature `rayon`
rayon = { workspace = true, optional = true }
crossbeam-utils = { workspace = true, optional = true }
parking_lot = { workspace = true, optional = true }
pin-project = { workspace = true, optional = true }

[target.'cfg(target_os = "linux")'.dependencies]
libc.workspace = true

[dev-dependencies]
tokio = { workspace = true, features = ["time"] }

[features]
default = []
reth-tasks = ["dep:reth-tasks"]
rayon = ["reth-tasks/rayon"]
rayon = ["dep:rayon", "dep:crossbeam-utils", "dep:parking_lot", "dep:pin-project", "reth-tasks?/rayon"]
18 changes: 4 additions & 14 deletions crates/exe-runners/README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,9 @@
# exe-runners

Task execution and management utilities with optional Reth integration.

## Overview

This crate provides task runners and shutdown management functionality, with optional integration for Reth's task system. It offers a flexible execution framework for managing asynchronous tasks and graceful shutdown handling.
Task execution and CLI runner utilities modeled after `reth-tasks` and
`reth-cli-runner`, without pulling `reth` in as a dependency.

## Features

- `reth-tasks` - Use Reth's task system instead of built-in implementation
- `rayon` - Parallel execution support via Rayon

## Supported Functionality

- Task execution and management
- Graceful shutdown handling
- Runner abstractions for async operations
- Compatible with both standalone use and Reth integration
- `rayon`: Enable the mirrored rayon-backed worker pools and ordered parallel iteration helpers
- `reth-tasks`: Re-export upstream `reth_tasks` instead of the local mirror when exact type identity is needed
Loading
Loading