# Wasmeld Wasmeld 是面向 WebAssembly Component 的服务运行与管理平台。内部服务编译为 Component,在受限 Wasmtime Sandbox 中以常驻 Actor 运行,并通过稳定 WIT 契约 暴露能力。 ## 结构 ```text crates/wasmeld-runtime Component Runtime 与 Sandbox crates/wasmeld-console 管理 API 与持久化 crates/wasmeld-package wasmeld CLI、组件包与 WIT 依赖管理 components/ 示例 Component console/ TanStack Start 管理面 wit/ Wasmeld WIT package 源码 ``` ## 启动 后端: ```bash cargo +stable run -p wasmeld-console ``` 后端会启动本地管理 API `127.0.0.1:8080` 和公开数据面 `0.0.0.0:8081`。注册 Component 后,通过管理 API 激活一个版本: ```bash curl -X POST http://127.0.0.1:8080/api/v1/deployments/echo/activate \ -H 'Content-Type: application/json' \ -d '{"revision":"0.1.0"}' ``` 客户端只访问 Gateway,并以原始二进制请求调用活动版本: ```bash curl http://127.0.0.1:8081/v1/services/echo/invoke \ -H 'Content-Type: application/octet-stream' \ --data-binary 'hello' ``` 管理面: ```bash cd console npm run dev ``` 构建组件: ```bash cargo run -p wasmeld-package --bin wasmeld -- \ pack components/echo/Cargo.toml --locked ``` 发布 WIT Package: ```bash cargo run -p wasmeld-package --bin wasmeld -- \ wit publish wit/service --registry http://127.0.0.1:8080 ``` 组件在 `wasmeld.toml` 中声明 Registry 和精确版本依赖,`wasmeld wit fetch` 会递归 解析依赖、生成 `wit/deps`,并将完整解析结果记录在 `wit.lock`。本地开发可使用 `[replace]` 临时覆盖 Registry 来源。