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:
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();