| Crates.io | arcella-types |
| lib.rs | arcella-types |
| version | 0.1.1 |
| created_at | 2025-11-22 10:45:37.348351+00 |
| updated_at | 2025-11-22 10:45:37.348351+00 |
| description | Core data types and manifests for the Arcella WebAssembly runtime |
| homepage | |
| repository | https://github.com/ArcellaTeam/arcella/ |
| max_upload_size | |
| id | 1945205 |
| size | 84,358 |
Core data types and manifests for the Arcella WebAssembly runtime.
This crate defines the shared contract used across the Arcella platform — a modular, secure runtime for WebAssembly Component Model and WASI applications.
It is designed to be:
serde support for JSON/TOML.| Type | Purpose |
|---|---|
ModuleId |
Canonical name@version identifier (e.g., http-logger@0.1.0) |
ComponentManifest |
Describes a component’s identity, interfaces (imports/exports), and capabilities |
InterfaceList |
Dual-format (["iface"] or {"iface": {...}}) interface declaration |
ComponentItemSpec |
Typed representation of WIT items (functions, instances, components, etc.) |
ConfigData |
Hierarchical configuration with dot-separated keys (arcella.log.level) |
Value |
Universal dynamic value type (like serde_json::Value, but tailored for Arcella) |
use arcella_types::manifest::ComponentManifest;
let toml = r#"
name = "http-logger"
version = "0.1.0"
description = "Logs HTTP requests"
exports = ["logger:log@1.0"]
imports = ["wasi:http/incoming-handler@0.2.0"]
"#;
let manifest: ComponentManifest = toml::from_str(toml)?;
assert_eq!(manifest.id.to_string(), "http-logger@0.1.0");
manifest.validate()?; // Ensures interface format is valid