lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

commit 4d9dfb1e71d5cb14eb62fa31b0109d346138f7e2
parent f106f77c5503a796bec922cf0820690b485d4406
Author: triesap <tyson@radroots.org>
Date:   Thu, 30 Jul 2026 07:35:41 +0000

trade: remove event-store and SQL integration

- remove persistence and SQL features from the public trade crate
- keep the trade dependency graph limited to domain-level crates
- lock the persistence-free boundary with package regression coverage
- refresh the standalone capsule lockfile for the reduced graph

Diffstat:
MCargo.lock | 3---
Mcrates/trade/Cargo.toml | 18------------------
Mcrates/trade/tests/package_boundary.rs | 15+++++++++++++++
3 files changed, 15 insertions(+), 21 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock @@ -5114,15 +5114,12 @@ dependencies = [ "radroots_core", "radroots_event", "radroots_event_codec", - "radroots_event_store", "radroots_identity", "radroots_test_fixtures", "serde", "serde_json", "sha2", - "sqlx", "thiserror 1.0.69", - "tokio", ] [[package]] diff --git a/crates/trade/Cargo.toml b/crates/trade/Cargo.toml @@ -29,15 +29,6 @@ std = [ "radroots_event_codec/std", "radroots_identity/std", ] -event_store = [ - "std", - "serde_json", - "dep:radroots_event_store", - "dep:sqlx", - "radroots_event_store/sqlite", - "radroots_event_store/runtime-tokio", - "sqlx/sqlite-bundled", -] serde = [ "dep:serde", "radroots_core/serde", @@ -59,7 +50,6 @@ radroots_core = { workspace = true, default-features = false } radroots_event = { workspace = true, default-features = false } radroots_event_codec = { workspace = true, default-features = false } radroots_identity = { workspace = true, default-features = false } -radroots_event_store = { workspace = true, optional = true, default-features = false } base64 = { workspace = true, optional = true } dto_bindgen = { workspace = true, optional = true } dto_bindgen_core = { workspace = true, optional = true } @@ -72,19 +62,11 @@ serde_json = { workspace = true, default-features = false, features = [ "alloc", ], optional = true } sha2 = { workspace = true, default-features = false, optional = true } -sqlx = { workspace = true, default-features = false, features = [ - "derive", -], optional = true } thiserror = { workspace = true } [dev-dependencies] nostr = { workspace = true } radroots_test_fixtures = { workspace = true } -sqlx = { workspace = true, default-features = false, features = [ - "runtime-tokio", - "sqlite-bundled", -] } -tokio = { workspace = true, features = ["macros", "rt"] } [lints] workspace = true diff --git a/crates/trade/tests/package_boundary.rs b/crates/trade/tests/package_boundary.rs @@ -86,6 +86,21 @@ fn trade_canonicalization_accepts_validated_identity_without_authority_or_signin assert!(DRAFT.contains("performs no signing or authorization")); } +#[test] +fn trade_feature_graph_has_no_persistence_or_sql_boundary() { + let features = table_keys(MANIFEST, "[features]"); + let dependencies = table_keys(MANIFEST, "[dependencies]"); + let dev_dependencies = table_keys(MANIFEST, "[dev-dependencies]"); + + assert!(!features.contains("event_store")); + assert!(!dependencies.contains("radroots_event_store")); + assert!(!dependencies.contains("sqlx")); + assert!(!dev_dependencies.contains("sqlx")); + assert!(!dev_dependencies.contains("tokio")); + assert!(!MANIFEST.contains("sqlite-bundled")); + assert!(!MANIFEST.contains("runtime-tokio")); +} + fn table_keys<'a>(manifest: &'a str, heading: &str) -> BTreeSet<&'a str> { let Some((_, table)) = manifest.split_once(heading) else { return BTreeSet::new();