commit 653936410c7993662fea1e49453937ca79c4036f
Author: triesap <tyson@radroots.org>
Date: Sun, 2 Aug 2026 17:58:51 +0000
build(core): establish the Rust workspace
- add domain, application, storage, Nostr, and FFI crates
- pin the Rust 1.97 toolchain and edition 2024 workspace
- establish the UniFFI bindgen tool package skeleton
- verify all crate and desktop test inventories remain green
Diffstat:
13 files changed, 141 insertions(+), 0 deletions(-)
diff --git a/crates/studio_application/Cargo.toml b/crates/studio_application/Cargo.toml
@@ -0,0 +1,10 @@
+[package]
+name = "radroots-studio-application"
+version.workspace = true
+edition.workspace = true
+rust-version.workspace = true
+license.workspace = true
+repository.workspace = true
+
+[lints]
+workspace = true
diff --git a/crates/studio_application/src/lib.rs b/crates/studio_application/src/lib.rs
@@ -0,0 +1,9 @@
+#![doc = "Radroots Studio application runtime."]
+
+#[cfg(test)]
+mod tests {
+ #[test]
+ fn crate_is_available_to_the_workspace() {
+ assert_eq!(env!("CARGO_PKG_NAME"), "radroots-studio-application");
+ }
+}
diff --git a/crates/studio_domain/Cargo.toml b/crates/studio_domain/Cargo.toml
@@ -0,0 +1,10 @@
+[package]
+name = "radroots-studio-domain"
+version.workspace = true
+edition.workspace = true
+rust-version.workspace = true
+license.workspace = true
+repository.workspace = true
+
+[lints]
+workspace = true
diff --git a/crates/studio_domain/src/lib.rs b/crates/studio_domain/src/lib.rs
@@ -0,0 +1,9 @@
+#![doc = "Radroots Studio Nostr account domain types."]
+
+#[cfg(test)]
+mod tests {
+ #[test]
+ fn crate_is_available_to_the_workspace() {
+ assert_eq!(env!("CARGO_PKG_NAME"), "radroots-studio-domain");
+ }
+}
diff --git a/crates/studio_ffi/Cargo.toml b/crates/studio_ffi/Cargo.toml
@@ -0,0 +1,10 @@
+[package]
+name = "radroots-studio-ffi"
+version.workspace = true
+edition.workspace = true
+rust-version.workspace = true
+license.workspace = true
+repository.workspace = true
+
+[lints]
+workspace = true
diff --git a/crates/studio_ffi/src/lib.rs b/crates/studio_ffi/src/lib.rs
@@ -0,0 +1,9 @@
+#![doc = "Radroots Studio `UniFFI` boundary."]
+
+#[cfg(test)]
+mod tests {
+ #[test]
+ fn crate_is_available_to_the_workspace() {
+ assert_eq!(env!("CARGO_PKG_NAME"), "radroots-studio-ffi");
+ }
+}
diff --git a/crates/studio_nostr/Cargo.toml b/crates/studio_nostr/Cargo.toml
@@ -0,0 +1,10 @@
+[package]
+name = "radroots-studio-nostr"
+version.workspace = true
+edition.workspace = true
+rust-version.workspace = true
+license.workspace = true
+repository.workspace = true
+
+[lints]
+workspace = true
diff --git a/crates/studio_nostr/src/lib.rs b/crates/studio_nostr/src/lib.rs
@@ -0,0 +1,9 @@
+#![doc = "Radroots Studio Nostr protocol adapters."]
+
+#[cfg(test)]
+mod tests {
+ #[test]
+ fn crate_is_available_to_the_workspace() {
+ assert_eq!(env!("CARGO_PKG_NAME"), "radroots-studio-nostr");
+ }
+}
diff --git a/crates/studio_storage/Cargo.toml b/crates/studio_storage/Cargo.toml
@@ -0,0 +1,10 @@
+[package]
+name = "radroots-studio-storage"
+version.workspace = true
+edition.workspace = true
+rust-version.workspace = true
+license.workspace = true
+repository.workspace = true
+
+[lints]
+workspace = true
diff --git a/crates/studio_storage/src/lib.rs b/crates/studio_storage/src/lib.rs
@@ -0,0 +1,9 @@
+#![doc = "Radroots Studio persistence adapters."]
+
+#[cfg(test)]
+mod tests {
+ #[test]
+ fn crate_is_available_to_the_workspace() {
+ assert_eq!(env!("CARGO_PKG_NAME"), "radroots-studio-storage");
+ }
+}
diff --git a/crates/studio_uniffi_bindgen/Cargo.toml b/crates/studio_uniffi_bindgen/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "radroots-studio-uniffi-bindgen"
+version.workspace = true
+edition.workspace = true
+rust-version.workspace = true
+license.workspace = true
+repository.workspace = true
+publish = false
+
+[lints]
+workspace = true
diff --git a/crates/studio_uniffi_bindgen/src/main.rs b/crates/studio_uniffi_bindgen/src/main.rs
@@ -0,0 +1,11 @@
+#![doc = "Pinned `UniFFI` binding generator entry point."]
+
+fn main() {}
+
+#[cfg(test)]
+mod tests {
+ #[test]
+ fn tool_is_available_to_the_workspace() {
+ assert_eq!(env!("CARGO_PKG_NAME"), "radroots-studio-uniffi-bindgen");
+ }
+}
diff --git a/imports/studio_workspace/Cargo.toml b/imports/studio_workspace/Cargo.toml
@@ -0,0 +1,24 @@
+[workspace]
+members = [
+ "crates/application",
+ "crates/domain",
+ "crates/ffi",
+ "crates/nostr",
+ "crates/storage",
+ "tools/uniffi-bindgen",
+]
+resolver = "3"
+
+[workspace.package]
+version = "0.1.0-alpha.0"
+edition = "2024"
+rust-version = "1.97"
+license = "GPL-3.0-only"
+repository = "https://github.com/radroots/studio_app"
+
+[workspace.lints.rust]
+unsafe_code = "forbid"
+
+[workspace.lints.clippy]
+all = "deny"
+pedantic = "deny"