b7fffd0d0f
- embed wasmeld-runtime behind an Axum management API\n- persist service metadata, metrics, and events with Toasty and libSQL\n- register immutable component artifacts with platform-owned limits\n- publish, list, inspect, and download binary WIT package versions\n- verify Runtime lifecycle, persistence, Registry immutability, and transitive fetch
2.8 KiB
2.8 KiB
Wasmeld Console
wasmeld-console 是 wasmeld-runtime 的本地 HTTP 管理适配器。它负责:
- 接收
.wasmpkg,校验并保存component.wasm与运行时 manifest - 发布、查询和下载不可变的二进制 WIT Package
- 启动、停止和重启内嵌的
wasmeld-runtime - 启动、停止和重启常驻 Actor
- 转发二进制调用
- 暴露调用计数、状态和最近事件
Wasm 制品保存在本地文件系统。服务 manifest、调用计数和最近 256 条事件通过
Toasty 写入本地 libSQL 数据库,默认路径是
var/wasmeld/console.db。
wasmeld-console 启动时会在同一进程内创建 wasmeld-runtime、加载 Wasmtime Engine,
并重新注册已保存的 Component。Runtime 停止后 Console HTTP 和数据库仍然在线;
再次启动 Runtime 会重新注册 Component,但 Actor 内存不做快照,服务运行状态统一
恢复为 stopped。
启动
wasmeld-console 需要 Rust 1.95 或更高版本;Wasm 组件继续使用项目约定的 Rust 1.90
工具链构建。
cargo +stable run -p wasmeld-console
默认监听 127.0.0.1:8080。
可用环境变量:
WASMELD_ADDRWASMELD_ARTIFACT_DIRWASMELD_DATABASE_PATHWASMELD_WIT_REGISTRY_DIRWASMELD_ALLOWED_ORIGINS,多个 Origin 使用逗号分隔RUST_LOG
API
| 方法 | 路径 | 用途 |
|---|---|---|
GET |
/healthz |
健康检查 |
GET |
/api/v1/runtime |
Runtime 状态 |
POST |
/api/v1/runtime/start |
启动 Runtime 并重新注册受管 Component |
POST |
/api/v1/runtime/stop |
停止 Runtime 并释放所有 Actor |
POST |
/api/v1/runtime/restart |
重建 Runtime,服务恢复为停止状态 |
GET |
/api/v1/services |
服务版本列表 |
POST |
/api/v1/services |
multipart 上传单个 package 字段(.wasmpkg) |
POST |
/api/v1/services/{id}/{revision}/start |
启动 Actor |
POST |
/api/v1/services/{id}/{revision}/stop |
停止 Actor |
POST |
/api/v1/services/{id}/{revision}/restart |
重启 Actor |
POST |
/api/v1/services/{id}/{revision}/invoke |
Base64 二进制调用 |
GET |
/api/v1/events |
最近 256 条持久化事件 |
GET |
/api/v1/wit/packages |
WIT 包版本列表 |
POST |
/api/v1/wit/packages |
multipart 发布单个二进制 WIT package 字段 |
GET |
/api/v1/wit/packages/{namespace}/{name}/{version} |
WIT 包元数据 |
GET |
/api/v1/wit/packages/{namespace}/{name}/{version}/content |
下载 WIT 包 |
组件包的构建与格式说明见
docs/design/wasmeld-component-package.md。
WIT 依赖、Registry 和本地 replace 说明见
docs/design/wit-package-management.md。