diff --git a/Cargo.toml b/Cargo.toml index afcfd1e47..17cf1a20f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -451,7 +451,7 @@ humantime-serde = "1.1" rand = "0.8.5" rustc-hash = { version = "2.0", default-features = false } schnellru = "0.2" -strum = "0.26" +strum = { version = "0.26", default-features = false } rayon = "1.7" itertools = "0.13" parking_lot = "0.12" diff --git a/crates/storage/db/Cargo.toml b/crates/storage/db/Cargo.toml index 12db949f6..619942f38 100644 --- a/crates/storage/db/Cargo.toml +++ b/crates/storage/db/Cargo.toml @@ -35,21 +35,21 @@ eyre = { workspace = true, optional = true } serde = { workspace = true, default-features = false } # metrics -reth-metrics.workspace = true -metrics.workspace = true +reth-metrics = { workspace = true, optional = true } +metrics = { workspace = true, optional = true } # misc bytes.workspace = true -page_size = "0.6.0" +page_size = { version = "0.6.0", optional = true } thiserror.workspace = true tempfile = { workspace = true, optional = true } derive_more.workspace = true paste.workspace = true -rustc-hash.workspace = true +rustc-hash = { workspace = true, optional = true } sysinfo = { version = "0.30", default-features = false } # arbitrary utils -strum = { workspace = true, features = ["derive"] } +strum = { workspace = true, features = ["derive"], optional = true } [dev-dependencies] # reth libs with arbitrary @@ -77,7 +77,15 @@ assert_matches.workspace = true [features] default = ["mdbx"] -mdbx = ["dep:reth-libmdbx", "dep:eyre"] +mdbx = [ + "dep:reth-libmdbx", + "dep:eyre", + "dep:page_size", + "reth-metrics", + "dep:metrics", + "dep:strum", + "dep:rustc-hash", +] test-utils = ["dep:tempfile", "arbitrary"] bench = [] arbitrary = ["reth-primitives/arbitrary", "reth-db-api/arbitrary"] diff --git a/crates/storage/db/src/lib.rs b/crates/storage/db/src/lib.rs index e5414b574..c16f2b73c 100644 --- a/crates/storage/db/src/lib.rs +++ b/crates/storage/db/src/lib.rs @@ -17,9 +17,11 @@ mod implementation; pub mod lockfile; +#[cfg(feature = "mdbx")] mod metrics; pub mod static_file; pub mod tables; +#[cfg(feature = "mdbx")] mod utils; pub mod version; @@ -28,6 +30,7 @@ pub mod mdbx; pub use reth_storage_errors::db::{DatabaseError, DatabaseWriteOperation}; pub use tables::*; +#[cfg(feature = "mdbx")] pub use utils::is_database_empty; #[cfg(feature = "mdbx")] diff --git a/crates/storage/db/src/tables/mod.rs b/crates/storage/db/src/tables/mod.rs index c3c0d0b3f..fb64fa86f 100644 --- a/crates/storage/db/src/tables/mod.rs +++ b/crates/storage/db/src/tables/mod.rs @@ -16,6 +16,7 @@ pub mod codecs; mod raw; pub use raw::{RawDupSort, RawKey, RawTable, RawValue, TableRawRow}; +#[cfg(feature = "mdbx")] pub(crate) mod utils; use reth_db_api::{