refactor: rename crate fai-module-sdk -> chain-module-sdk
Some checks failed
CI / Linux x86_64 (Forgejo) (push) Failing after 2s

The SDK is product-scoped (Ch∆In's module SDK), not a generic vendor
crate — a future Brain SDK would collide. Crate + macros renamed to
chain-module-sdk[-macros]; repo + dir follow.

Signed-off-by: flemming-it <sf@flemming.it>
This commit is contained in:
flemming-it 2026-06-16 11:26:37 +02:00
parent cd4457310b
commit 98e98e9371
14 changed files with 58 additions and 58 deletions

42
Cargo.lock generated
View file

@ -41,6 +41,27 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
[[package]]
name = "chain-module-sdk"
version = "0.1.2"
dependencies = [
"chain-module-sdk-macros",
"serde",
"serde_json",
"sha2",
"thiserror",
"wit-bindgen",
]
[[package]]
name = "chain-module-sdk-macros"
version = "0.1.2"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "cpufeatures" name = "cpufeatures"
version = "0.2.17" version = "0.2.17"
@ -76,27 +97,6 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
[[package]]
name = "fai-module-sdk"
version = "0.1.2"
dependencies = [
"fai-module-sdk-macros",
"serde",
"serde_json",
"sha2",
"thiserror",
"wit-bindgen",
]
[[package]]
name = "fai-module-sdk-macros"
version = "0.1.2"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "generic-array" name = "generic-array"
version = "0.14.7" version = "0.14.7"

View file

@ -1,8 +1,8 @@
[workspace] [workspace]
resolver = "2" resolver = "2"
members = [ members = [
"crates/fai-module-sdk", "crates/chain-module-sdk",
"crates/fai-module-sdk-macros", "crates/chain-module-sdk-macros",
] ]
[workspace.package] [workspace.package]

View file

@ -1,5 +1,5 @@
[package] [package]
name = "fai-module-sdk-macros" name = "chain-module-sdk-macros"
version.workspace = true version.workspace = true
edition.workspace = true edition.workspace = true
authors.workspace = true authors.workspace = true
@ -7,7 +7,7 @@ license.workspace = true
repository.workspace = true repository.workspace = true
homepage.workspace = true homepage.workspace = true
rust-version.workspace = true rust-version.workspace = true
description = "Procedural macros for fai-module-sdk. Not used directly — see fai-module-sdk." description = "Procedural macros for chain-module-sdk. Not used directly — see chain-module-sdk."
[lib] [lib]
proc-macro = true proc-macro = true

View file

@ -1,7 +1,7 @@
//! Procedural macros powering `fai-module-sdk`. //! Procedural macros powering `chain-module-sdk`.
//! //!
//! This crate exists only to host the `#[fai_module]` attribute. //! This crate exists only to host the `#[fai_module]` attribute.
//! Module authors should depend on `fai-module-sdk` (which //! Module authors should depend on `chain-module-sdk` (which
//! re-exports the macro), not on this crate directly. //! re-exports the macro), not on this crate directly.
use proc_macro::TokenStream; use proc_macro::TokenStream;
@ -51,10 +51,10 @@ pub fn fai_module(_attrs: TokenStream, input: TokenStream) -> TokenStream {
clippy::nursery clippy::nursery
)] )]
::fai_module_sdk::__rt::wit_bindgen::generate!({ ::chain_module_sdk::__rt::wit_bindgen::generate!({
inline: #wit_literal, inline: #wit_literal,
world: "module", world: "module",
runtime_path: "::fai_module_sdk::__rt::wit_bindgen::rt", runtime_path: "::chain_module_sdk::__rt::wit_bindgen::rt",
}); });
use exports::chain::platform::invoke::Guest; use exports::chain::platform::invoke::Guest;
@ -79,7 +79,7 @@ pub fn fai_module(_attrs: TokenStream, input: TokenStream) -> TokenStream {
::std::vec::Vec<(::std::string::String, WitPayload)>, ::std::vec::Vec<(::std::string::String, WitPayload)>,
WitError, WitError,
> { > {
let sdk_ctx = ::fai_module_sdk::Context { let sdk_ctx = ::chain_module_sdk::Context {
invocation_id: ctx.invocation_id, invocation_id: ctx.invocation_id,
capability_namespace: ctx.capability_namespace, capability_namespace: ctx.capability_namespace,
capability_name: ctx.capability_name, capability_name: ctx.capability_name,
@ -87,13 +87,13 @@ pub fn fai_module(_attrs: TokenStream, input: TokenStream) -> TokenStream {
}; };
let sdk_pairs: ::std::vec::Vec<( let sdk_pairs: ::std::vec::Vec<(
::std::string::String, ::std::string::String,
::fai_module_sdk::Payload, ::chain_module_sdk::Payload,
)> = inputs )> = inputs
.into_iter() .into_iter()
.map(|(k, p)| (k, wit_payload_to_sdk(p))) .map(|(k, p)| (k, wit_payload_to_sdk(p)))
.collect(); .collect();
let sdk_inputs = let sdk_inputs =
::fai_module_sdk::Inputs::__from_pairs(sdk_pairs); ::chain_module_sdk::Inputs::__from_pairs(sdk_pairs);
match super::#user_fn_name(sdk_ctx, sdk_inputs) { match super::#user_fn_name(sdk_ctx, sdk_inputs) {
Ok(outputs) => { Ok(outputs) => {
@ -109,18 +109,18 @@ pub fn fai_module(_attrs: TokenStream, input: TokenStream) -> TokenStream {
} }
} }
fn wit_payload_to_sdk(p: WitPayload) -> ::fai_module_sdk::Payload { fn wit_payload_to_sdk(p: WitPayload) -> ::chain_module_sdk::Payload {
match p { match p {
WitPayload::Text(s) => ::fai_module_sdk::Payload::Text(s), WitPayload::Text(s) => ::chain_module_sdk::Payload::Text(s),
WitPayload::Json(s) => ::fai_module_sdk::Payload::Json(s), WitPayload::Json(s) => ::chain_module_sdk::Payload::Json(s),
WitPayload::Bytes(b) => ::fai_module_sdk::Payload::Bytes( WitPayload::Bytes(b) => ::chain_module_sdk::Payload::Bytes(
::fai_module_sdk::BytesValue { ::chain_module_sdk::BytesValue {
mime_type: b.mime_type, mime_type: b.mime_type,
data: b.data, data: b.data,
}, },
), ),
WitPayload::FileRef(f) => ::fai_module_sdk::Payload::FileRef( WitPayload::FileRef(f) => ::chain_module_sdk::Payload::FileRef(
::fai_module_sdk::FileRef { ::chain_module_sdk::FileRef {
uri: f.uri, uri: f.uri,
mime_type: f.mime_type, mime_type: f.mime_type,
size_bytes: f.size_bytes, size_bytes: f.size_bytes,
@ -130,15 +130,15 @@ pub fn fai_module(_attrs: TokenStream, input: TokenStream) -> TokenStream {
} }
} }
fn sdk_payload_to_wit(p: ::fai_module_sdk::Payload) -> WitPayload { fn sdk_payload_to_wit(p: ::chain_module_sdk::Payload) -> WitPayload {
match p { match p {
::fai_module_sdk::Payload::Text(s) => WitPayload::Text(s), ::chain_module_sdk::Payload::Text(s) => WitPayload::Text(s),
::fai_module_sdk::Payload::Json(s) => WitPayload::Json(s), ::chain_module_sdk::Payload::Json(s) => WitPayload::Json(s),
::fai_module_sdk::Payload::Bytes(b) => WitPayload::Bytes(WitBytes { ::chain_module_sdk::Payload::Bytes(b) => WitPayload::Bytes(WitBytes {
mime_type: b.mime_type, mime_type: b.mime_type,
data: b.data, data: b.data,
}), }),
::fai_module_sdk::Payload::FileRef(f) => WitPayload::FileRef(WitFileRef { ::chain_module_sdk::Payload::FileRef(f) => WitPayload::FileRef(WitFileRef {
uri: f.uri, uri: f.uri,
mime_type: f.mime_type, mime_type: f.mime_type,
size_bytes: f.size_bytes, size_bytes: f.size_bytes,
@ -147,21 +147,21 @@ pub fn fai_module(_attrs: TokenStream, input: TokenStream) -> TokenStream {
} }
} }
fn sdk_error_to_wit(e: ::fai_module_sdk::ModuleError) -> WitError { fn sdk_error_to_wit(e: ::chain_module_sdk::ModuleError) -> WitError {
match e { match e {
::fai_module_sdk::ModuleError::InvalidInput(s) => { ::chain_module_sdk::ModuleError::InvalidInput(s) => {
WitError::InvalidInput(s) WitError::InvalidInput(s)
} }
::fai_module_sdk::ModuleError::PermissionDenied(s) => { ::chain_module_sdk::ModuleError::PermissionDenied(s) => {
WitError::PermissionDenied(s) WitError::PermissionDenied(s)
} }
::fai_module_sdk::ModuleError::ResourceExhausted(s) => { ::chain_module_sdk::ModuleError::ResourceExhausted(s) => {
WitError::ResourceExhausted(s) WitError::ResourceExhausted(s)
} }
::fai_module_sdk::ModuleError::DeadlineExceeded => { ::chain_module_sdk::ModuleError::DeadlineExceeded => {
WitError::DeadlineExceeded WitError::DeadlineExceeded
} }
::fai_module_sdk::ModuleError::Internal(s) => WitError::Internal(s), ::chain_module_sdk::ModuleError::Internal(s) => WitError::Internal(s),
} }
} }

View file

@ -1,5 +1,5 @@
[package] [package]
name = "fai-module-sdk" name = "chain-module-sdk"
version.workspace = true version.workspace = true
edition.workspace = true edition.workspace = true
authors.workspace = true authors.workspace = true
@ -10,7 +10,7 @@ rust-version.workspace = true
description = "Stable, ergonomic surface for writing Ch∆In modules in Rust" description = "Stable, ergonomic surface for writing Ch∆In modules in Rust"
[dependencies] [dependencies]
fai-module-sdk-macros = { path = "../fai-module-sdk-macros" } chain-module-sdk-macros = { path = "../chain-module-sdk-macros" }
serde = { workspace = true } serde = { workspace = true }
serde_json = { workspace = true } serde_json = { workspace = true }
thiserror = { workspace = true } thiserror = { workspace = true }

View file

@ -3,7 +3,7 @@
//! A module written against this crate looks like: //! A module written against this crate looks like:
//! //!
//! ```ignore //! ```ignore
//! use fai_module_sdk::prelude::*; //! use chain_module_sdk::prelude::*;
//! //!
//! #[fai_module] //! #[fai_module]
//! fn invoke(_ctx: Context, inputs: Inputs) -> Result<Outputs, ModuleError> { //! fn invoke(_ctx: Context, inputs: Inputs) -> Result<Outputs, ModuleError> {
@ -35,9 +35,9 @@ pub use inputs::Inputs;
pub use outputs::Outputs; pub use outputs::Outputs;
pub use payload::{BytesValue, FileRef, Payload}; pub use payload::{BytesValue, FileRef, Payload};
pub use fai_module_sdk_macros::fai_module; pub use chain_module_sdk_macros::fai_module;
/// Convenience prelude — `use fai_module_sdk::prelude::*;` brings /// Convenience prelude — `use chain_module_sdk::prelude::*;` brings
/// every type a typical module needs into scope. /// every type a typical module needs into scope.
pub mod prelude { pub mod prelude {
pub use super::{ pub use super::{

View file

@ -10,13 +10,13 @@ version = "0.1.0"
edition = "2024" edition = "2024"
license = "Apache-2.0" license = "Apache-2.0"
publish = false publish = false
description = "Reference module showing the minimum needed to write an F∆I module with fai-module-sdk." description = "Reference module showing the minimum needed to write an F∆I module with chain-module-sdk."
[lib] [lib]
crate-type = ["cdylib"] crate-type = ["cdylib"]
[dependencies] [dependencies]
fai-module-sdk = { path = "../../crates/fai-module-sdk" } chain-module-sdk = { path = "../../crates/chain-module-sdk" }
[profile.release] [profile.release]
opt-level = "s" opt-level = "s"

View file

@ -5,7 +5,7 @@
//! `unsafe_op_in_unsafe_fn` allow, no `export!` call, no manual //! `unsafe_op_in_unsafe_fn` allow, no `export!` call, no manual
//! Payload-variant matching. //! Payload-variant matching.
use fai_module_sdk::prelude::*; use chain_module_sdk::prelude::*;
#[fai_module] #[fai_module]
fn invoke(_ctx: Context, inputs: Inputs) -> Result<Outputs, ModuleError> { fn invoke(_ctx: Context, inputs: Inputs) -> Result<Outputs, ModuleError> {