lib

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

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:
Mcrates/events_codec_wasm/Cargo.toml | 2+-
Mcrates/net/Cargo.toml | 2+-
Mcrates/nostr_ndb/Cargo.toml | 2+-
Mcrates/nostr_runtime/Cargo.toml | 2+-
Mcrates/replica_db_wasm/Cargo.toml | 2+-
Mcrates/replica_sync_wasm/Cargo.toml | 2+-
Mcrates/simplex_chat_proto/Cargo.toml | 2+-
Mcrates/simplex_smp_proto/Cargo.toml | 2+-
Mcrates/sql_wasm_bridge/Cargo.toml | 2+-
Mcrates/sql_wasm_core/Cargo.toml | 2+-
Mcrates/types/Cargo.toml | 2+-
Mpolicy/coverage/policy.toml | 41+++--------------------------------------
Mspec/README.md | 47+++++++++++++++++++++++++++++++++++++++++++++++
Mspec/manifest.toml | 42++++++++++++++++++++++++++++++++++++++++++
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"