commit e44bd4ffd5825c6005cc4713c006ccc9e692484f
parent 62fccb4d203e7a137b3635aa8cfa4143dfc59755
Author: triesap <tyson@radroots.org>
Date: Sun, 12 Apr 2026 23:24:41 +0000
spec: classify rust sdk and substrate tiers
Diffstat:
14 files changed, 103 insertions(+), 49 deletions(-)
diff --git a/crates/events_codec_wasm/Cargo.toml b/crates/events_codec_wasm/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "radroots_events_codec_wasm"
-publish = ["crates-io"]
+publish = false
version = "0.1.0-alpha.2"
edition.workspace = true
authors = ["Tyson Lupul <tyson@radroots.org>"]
diff --git a/crates/net/Cargo.toml b/crates/net/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "radroots_net"
-publish = ["crates-io"]
+publish = false
version = "0.1.0-alpha.2"
edition.workspace = true
authors = ["Tyson Lupul <tyson@radroots.org>"]
diff --git a/crates/nostr_ndb/Cargo.toml b/crates/nostr_ndb/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "radroots_nostr_ndb"
-publish = ["crates-io"]
+publish = false
version = "0.1.0-alpha.2"
edition.workspace = true
authors = ["Tyson Lupul <tyson@radroots.org>"]
diff --git a/crates/nostr_runtime/Cargo.toml b/crates/nostr_runtime/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "radroots_nostr_runtime"
-publish = ["crates-io"]
+publish = false
version = "0.1.0-alpha.2"
edition.workspace = true
authors = ["Tyson Lupul <tyson@radroots.org>"]
diff --git a/crates/replica_db_wasm/Cargo.toml b/crates/replica_db_wasm/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "radroots_replica_db_wasm"
-publish = ["crates-io"]
+publish = false
version = "0.1.0-alpha.2"
edition.workspace = true
authors = ["Tyson Lupul <tyson@radroots.org>"]
diff --git a/crates/replica_sync_wasm/Cargo.toml b/crates/replica_sync_wasm/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "radroots_replica_sync_wasm"
-publish = ["crates-io"]
+publish = false
version = "0.1.0-alpha.2"
edition.workspace = true
authors = ["Tyson Lupul <tyson@radroots.org>"]
diff --git a/crates/simplex_chat_proto/Cargo.toml b/crates/simplex_chat_proto/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "radroots_simplex_chat_proto"
-publish = ["crates-io"]
+publish = false
version = "0.1.0-alpha.2"
edition.workspace = true
authors = ["Tyson Lupul <tyson@radroots.org>"]
diff --git a/crates/simplex_smp_proto/Cargo.toml b/crates/simplex_smp_proto/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "radroots_simplex_smp_proto"
-publish = ["crates-io"]
+publish = false
version = "0.1.0-alpha.2"
edition.workspace = true
authors = ["Tyson Lupul <tyson@radroots.org>"]
diff --git a/crates/sql_wasm_bridge/Cargo.toml b/crates/sql_wasm_bridge/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "radroots_sql_wasm_bridge"
-publish = ["crates-io"]
+publish = false
version = "0.1.0-alpha.2"
edition.workspace = true
authors = ["Tyson Lupul <tyson@radroots.org>"]
diff --git a/crates/sql_wasm_core/Cargo.toml b/crates/sql_wasm_core/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "radroots_sql_wasm_core"
-publish = ["crates-io"]
+publish = false
version = "0.1.0-alpha.2"
edition.workspace = true
authors = ["Tyson Lupul <tyson@radroots.org>"]
diff --git a/crates/types/Cargo.toml b/crates/types/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "radroots_types"
-publish = ["crates-io"]
+publish = false
version = "0.1.0-alpha.2"
edition.workspace = true
authors = ["Tyson Lupul <tyson@radroots.org>"]
diff --git a/policy/coverage/policy.toml b/policy/coverage/policy.toml
@@ -63,14 +63,6 @@ fail_under_branches = 100.0
temporary = true
reason = "publish 0.1.0-alpha.2 temporary coverage override"
-[overrides.radroots_nostr_ndb]
-fail_under_exec_lines = 99.900
-fail_under_functions = 100.0
-fail_under_regions = 99.800
-fail_under_branches = 98.200
-temporary = true
-reason = "publish 0.1.0-alpha.2 temporary coverage override"
-
[overrides.radroots_nostr_connect]
fail_under_exec_lines = 100.0
fail_under_functions = 100.0
@@ -103,26 +95,9 @@ fail_under_branches = 100.0
temporary = true
reason = "publish 0.1.0-alpha.2 temporary coverage override"
-[overrides.radroots_simplex_chat_proto]
-fail_under_exec_lines = 60.930
-fail_under_functions = 61.904
-fail_under_regions = 55.086
-fail_under_branches = 61.290
-temporary = true
-reason = "publish 0.1.0-alpha.2 temporary coverage override"
-
-[overrides.radroots_simplex_smp_proto]
-fail_under_exec_lines = 80.742
-fail_under_functions = 84.263
-fail_under_regions = 71.491
-fail_under_branches = 68.695
-temporary = true
-reason = "publish 0.1.0-alpha.2 temporary coverage override"
-
[required]
crates = [
"radroots_core",
- "radroots_types",
"radroots_events",
"radroots_log",
"radroots_protected_store",
@@ -131,28 +106,18 @@ crates = [
"radroots_runtime_distribution",
"radroots_runtime_manager",
"radroots_sdk",
- "radroots_secret_vault",
- "radroots_simplex_chat_proto",
- "radroots_simplex_smp_proto",
"radroots_identity",
+ "radroots_secret_vault",
"radroots_trade",
"radroots_events_codec",
- "radroots_events_codec_wasm",
"radroots_events_indexed",
"radroots_geocoder",
"radroots_nostr",
+ "radroots_nostr_accounts",
"radroots_nostr_connect",
- "radroots_sql_core",
"radroots_nostr_signer",
+ "radroots_sql_core",
"radroots_replica_db_schema",
- "radroots_sql_wasm_bridge",
- "radroots_nostr_runtime",
- "radroots_nostr_ndb",
"radroots_replica_db",
- "radroots_sql_wasm_core",
- "radroots_nostr_accounts",
"radroots_replica_sync",
- "radroots_replica_db_wasm",
- "radroots_replica_sync_wasm",
- "radroots_net",
]
diff --git a/spec/README.md b/spec/README.md
@@ -22,6 +22,53 @@ package.
Public SDK exports are intentionally narrower than the full Rust workspace.
+## Rust Crate Tiers
+
+The public Rust story is tiered explicitly.
+
+- Curated SDK entrypoint:
+ - `radroots_sdk`
+- Advanced substrate crates:
+ - `radroots_core`
+ - `radroots_events`
+ - `radroots_events_codec`
+ - `radroots_trade`
+ - `radroots_identity`
+ - `radroots_nostr`
+ - `radroots_nostr_connect`
+ - `radroots_nostr_signer`
+ - `radroots_nostr_accounts`
+ - `radroots_secret_vault`
+ - `radroots_protected_store`
+ - `radroots_runtime_paths`
+- Published support crates:
+ - `radroots_log`
+ - `radroots_runtime`
+ - `radroots_runtime_distribution`
+ - `radroots_runtime_manager`
+ - `radroots_geocoder`
+ - `radroots_events_indexed`
+ - `radroots_sql_core`
+ - `radroots_replica_db_schema`
+ - `radroots_replica_db`
+ - `radroots_replica_sync`
+- Deferred crates.io publication:
+ - `radroots_types`
+ - `radroots_events_codec_wasm`
+ - `radroots_net`
+ - `radroots_nostr_runtime`
+ - `radroots_nostr_ndb`
+ - `radroots_sql_wasm_bridge`
+ - `radroots_sql_wasm_core`
+ - `radroots_replica_db_wasm`
+ - `radroots_replica_sync_wasm`
+ - `radroots_simplex_chat_proto`
+ - `radroots_simplex_smp_proto`
+
+This tiering is the curated product posture for crates.io. A crate may remain
+open source and part of the `rr-rs` workspace without being a recommended
+external SDK entrypoint or an active crates.io publication target.
+
## Export Targets
Language export metadata is split into two layers:
diff --git a/spec/manifest.toml b/spec/manifest.toml
@@ -18,6 +18,48 @@ rust_package = "radroots_sdk"
public_surface = "operation_first"
website_ingest_contract = true
+[sdk.rust_story]
+entrypoints = ["radroots_sdk"]
+advanced_substrate = [
+ "radroots_core",
+ "radroots_events",
+ "radroots_events_codec",
+ "radroots_trade",
+ "radroots_identity",
+ "radroots_nostr",
+ "radroots_nostr_connect",
+ "radroots_nostr_signer",
+ "radroots_nostr_accounts",
+ "radroots_secret_vault",
+ "radroots_protected_store",
+ "radroots_runtime_paths",
+]
+published_support = [
+ "radroots_log",
+ "radroots_runtime",
+ "radroots_runtime_distribution",
+ "radroots_runtime_manager",
+ "radroots_geocoder",
+ "radroots_events_indexed",
+ "radroots_sql_core",
+ "radroots_replica_db_schema",
+ "radroots_replica_db",
+ "radroots_replica_sync",
+]
+deferred_publication = [
+ "radroots_types",
+ "radroots_events_codec_wasm",
+ "radroots_net",
+ "radroots_nostr_runtime",
+ "radroots_nostr_ndb",
+ "radroots_sql_wasm_bridge",
+ "radroots_sql_wasm_core",
+ "radroots_replica_db_wasm",
+ "radroots_replica_sync_wasm",
+ "radroots_simplex_chat_proto",
+ "radroots_simplex_smp_proto",
+]
+
[surface.internal_replica_crates]
schema = "radroots_replica_db_schema"
storage = "radroots_replica_db"