commit 33bb89d749d58edf3c4e27846c2c2ed4cc479c36
parent 6d1a957db532712614b2994e90d497a18f1bf092
Author: triesap <tyson@radroots.org>
Date: Thu, 30 Jul 2026 10:31:36 +0000
signing: align package manifest and module root
- declare the exact identity event and protocol dependency boundary
- expose only the approved std and serde feature vocabulary
- establish the seven-module no-std host SPI skeleton
- verify metadata package tests strict linting and WASM portability
Diffstat:
11 files changed, 89 insertions(+), 1 deletion(-)
diff --git a/Cargo.lock b/Cargo.lock
@@ -4955,6 +4955,11 @@ version = "0.1.0-alpha"
[[package]]
name = "radroots_signing"
version = "0.1.0-alpha"
+dependencies = [
+ "radroots_event",
+ "radroots_identity",
+ "radroots_protocol",
+]
[[package]]
name = "radroots_simplex_agent_proto"
diff --git a/crates/signing/Cargo.toml b/crates/signing/Cargo.toml
@@ -14,5 +14,23 @@ publish = false
[lib]
name = "radroots_signing"
+[features]
+default = ["std", "serde"]
+std = [
+ "radroots_event/std",
+ "radroots_identity/std",
+ "radroots_protocol/std",
+]
+serde = [
+ "radroots_event/serde",
+ "radroots_identity/serde",
+ "radroots_protocol/serde",
+]
+
+[dependencies]
+radroots_event = { workspace = true, default-features = false }
+radroots_identity = { workspace = true, default-features = false }
+radroots_protocol = { workspace = true, default-features = false }
+
[lints]
workspace = true
diff --git a/crates/signing/src/actor.rs b/crates/signing/src/actor.rs
@@ -0,0 +1 @@
+//! Actor provenance and authorization context.
diff --git a/crates/signing/src/capability.rs b/crates/signing/src/capability.rs
@@ -0,0 +1 @@
+//! Signer capability declarations.
diff --git a/crates/signing/src/error.rs b/crates/signing/src/error.rs
@@ -0,0 +1 @@
+//! Normalized signing failures.
diff --git a/crates/signing/src/lib.rs b/crates/signing/src/lib.rs
@@ -1 +1,14 @@
-//! Signing abstractions and authorization policy for Radroots.
+#![doc = include_str!("../README.md")]
+#![cfg_attr(not(feature = "std"), no_std)]
+#![forbid(unsafe_code)]
+
+#[cfg(not(feature = "std"))]
+extern crate alloc;
+
+pub mod actor;
+pub mod capability;
+pub mod error;
+pub mod receipt;
+pub mod request;
+pub mod signer;
+pub mod status;
diff --git a/crates/signing/src/receipt.rs b/crates/signing/src/receipt.rs
@@ -0,0 +1 @@
+//! Signing receipts.
diff --git a/crates/signing/src/request.rs b/crates/signing/src/request.rs
@@ -0,0 +1 @@
+//! Validated signing requests.
diff --git a/crates/signing/src/signer.rs b/crates/signing/src/signer.rs
@@ -0,0 +1 @@
+//! Object-safe signer service-provider interface.
diff --git a/crates/signing/src/status.rs b/crates/signing/src/status.rs
@@ -0,0 +1 @@
+//! Signer progress and status models.
diff --git a/crates/signing/tests/package_boundary.rs b/crates/signing/tests/package_boundary.rs
@@ -0,0 +1,45 @@
+#[allow(unused_imports)]
+use radroots_signing::{
+ actor as _, capability as _, error as _, receipt as _, request as _, signer as _, status as _,
+};
+
+const MANIFEST: &str = include_str!("../Cargo.toml");
+const ROOT: &str = include_str!("../src/lib.rs");
+
+#[test]
+fn manifest_has_final_identity_features_and_dependencies() {
+ for required in [
+ "name = \"radroots_signing\"",
+ "version = \"0.1.0-alpha\"",
+ "publish = false",
+ "default = [\"std\", \"serde\"]",
+ "radroots_event = { workspace = true, default-features = false }",
+ "radroots_identity = { workspace = true, default-features = false }",
+ "radroots_protocol = { workspace = true, default-features = false }",
+ ] {
+ assert!(
+ MANIFEST.contains(required),
+ "manifest is missing {required}"
+ );
+ }
+}
+
+#[test]
+fn crate_root_declares_the_approved_module_skeleton() {
+ assert!(ROOT.contains("#![cfg_attr(not(feature = \"std\"), no_std)]"));
+ for module in [
+ "actor",
+ "capability",
+ "error",
+ "request",
+ "receipt",
+ "signer",
+ "status",
+ ] {
+ let declaration = format!("pub mod {module};");
+ assert!(
+ ROOT.contains(&declaration),
+ "crate root is missing {module}"
+ );
+ }
+}