3f5bb344f7
- explain the separate control-plane and data-plane listeners - document revision activation and raw binary invocation - clarify restart restoration and actor-memory semantics
67 lines
1.7 KiB
Markdown
67 lines
1.7 KiB
Markdown
# 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 来源。
|