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"
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]]
name = "cpufeatures"
version = "0.2.17"
@ -76,27 +97,6 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
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]]
name = "generic-array"
version = "0.14.7"

View file

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

View file

@ -1,5 +1,5 @@
[package]
name = "fai-module-sdk-macros"
name = "chain-module-sdk-macros"
version.workspace = true
edition.workspace = true
authors.workspace = true
@ -7,7 +7,7 @@ license.workspace = true
repository.workspace = true
homepage.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]
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.
//! 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.
use proc_macro::TokenStream;
@ -51,10 +51,10 @@ pub fn fai_module(_attrs: TokenStream, input: TokenStream) -> TokenStream {
clippy::nursery
)]
::fai_module_sdk::__rt::wit_bindgen::generate!({
::chain_module_sdk::__rt::wit_bindgen::generate!({
inline: #wit_literal,
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;
@ -79,7 +79,7 @@ pub fn fai_module(_attrs: TokenStream, input: TokenStream) -> TokenStream {
::std::vec::Vec<(::std::string::String, WitPayload)>,
WitError,
> {
let sdk_ctx = ::fai_module_sdk::Context {
let sdk_ctx = ::chain_module_sdk::Context {
invocation_id: ctx.invocation_id,
capability_namespace: ctx.capability_namespace,
capability_name: ctx.capability_name,
@ -87,13 +87,13 @@ pub fn fai_module(_attrs: TokenStream, input: TokenStream) -> TokenStream {
};
let sdk_pairs: ::std::vec::Vec<(
::std::string::String,
::fai_module_sdk::Payload,
::chain_module_sdk::Payload,
)> = inputs
.into_iter()
.map(|(k, p)| (k, wit_payload_to_sdk(p)))
.collect();
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) {
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 {
WitPayload::Text(s) => ::fai_module_sdk::Payload::Text(s),
WitPayload::Json(s) => ::fai_module_sdk::Payload::Json(s),
WitPayload::Bytes(b) => ::fai_module_sdk::Payload::Bytes(
::fai_module_sdk::BytesValue {
WitPayload::Text(s) => ::chain_module_sdk::Payload::Text(s),
WitPayload::Json(s) => ::chain_module_sdk::Payload::Json(s),
WitPayload::Bytes(b) => ::chain_module_sdk::Payload::Bytes(
::chain_module_sdk::BytesValue {
mime_type: b.mime_type,
data: b.data,
},
),
WitPayload::FileRef(f) => ::fai_module_sdk::Payload::FileRef(
::fai_module_sdk::FileRef {
WitPayload::FileRef(f) => ::chain_module_sdk::Payload::FileRef(
::chain_module_sdk::FileRef {
uri: f.uri,
mime_type: f.mime_type,
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 {
::fai_module_sdk::Payload::Text(s) => WitPayload::Text(s),
::fai_module_sdk::Payload::Json(s) => WitPayload::Json(s),
::fai_module_sdk::Payload::Bytes(b) => WitPayload::Bytes(WitBytes {
::chain_module_sdk::Payload::Text(s) => WitPayload::Text(s),
::chain_module_sdk::Payload::Json(s) => WitPayload::Json(s),
::chain_module_sdk::Payload::Bytes(b) => WitPayload::Bytes(WitBytes {
mime_type: b.mime_type,
data: b.data,
}),
::fai_module_sdk::Payload::FileRef(f) => WitPayload::FileRef(WitFileRef {
::chain_module_sdk::Payload::FileRef(f) => WitPayload::FileRef(WitFileRef {
uri: f.uri,
mime_type: f.mime_type,
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 {
::fai_module_sdk::ModuleError::InvalidInput(s) => {
::chain_module_sdk::ModuleError::InvalidInput(s) => {
WitError::InvalidInput(s)
}
::fai_module_sdk::ModuleError::PermissionDenied(s) => {
::chain_module_sdk::ModuleError::PermissionDenied(s) => {
WitError::PermissionDenied(s)
}
::fai_module_sdk::ModuleError::ResourceExhausted(s) => {
::chain_module_sdk::ModuleError::ResourceExhausted(s) => {
WitError::ResourceExhausted(s)
}
::fai_module_sdk::ModuleError::DeadlineExceeded => {
::chain_module_sdk::ModuleError::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]
name = "fai-module-sdk"
name = "chain-module-sdk"
version.workspace = true
edition.workspace = true
authors.workspace = true
@ -10,7 +10,7 @@ rust-version.workspace = true
description = "Stable, ergonomic surface for writing Ch∆In modules in Rust"
[dependencies]
fai-module-sdk-macros = { path = "../fai-module-sdk-macros" }
chain-module-sdk-macros = { path = "../chain-module-sdk-macros" }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }

View file

@ -3,7 +3,7 @@
//! A module written against this crate looks like:
//!
//! ```ignore
//! use fai_module_sdk::prelude::*;
//! use chain_module_sdk::prelude::*;
//!
//! #[fai_module]
//! fn invoke(_ctx: Context, inputs: Inputs) -> Result<Outputs, ModuleError> {
@ -35,9 +35,9 @@ pub use inputs::Inputs;
pub use outputs::Outputs;
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.
pub mod prelude {
pub use super::{

View file

@ -10,13 +10,13 @@ version = "0.1.0"
edition = "2024"
license = "Apache-2.0"
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]
crate-type = ["cdylib"]
[dependencies]
fai-module-sdk = { path = "../../crates/fai-module-sdk" }
chain-module-sdk = { path = "../../crates/chain-module-sdk" }
[profile.release]
opt-level = "s"

View file

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