c399781369
- describe resident Runtime boundaries and sandbox guarantees\n- specify component archive and host capability contracts\n- document Console ownership and persistence behavior\n- explain versioned WIT Registry, lock files, and path replace\n- provide startup, packaging, publication, and dependency commands
2.2 KiB
2.2 KiB
Wasmeld Console 管理后端
状态: Implemented
范围: 本地 Wasmeld Runtime 管理控制面
边界
wasmeld-console 是独立 Rust 进程,对外提供管理 HTTP API,对内只调用
wasmeld-runtime。Runtime 作为库嵌入同一进程,不另起网络服务。前端 console
不直接访问 Runtime、文件系统或数据库。
TanStack Console / wasmeld CLI
|
| HTTP + JSON / multipart
v
wasmeld-console
+-- API / CORS
+-- component artifact registry
+-- immutable WIT package registry
+-- Toasty persistence
+-- local libSQL
|
v
wasmeld-runtime
+-- Wasmtime Engine
+-- resident Actor
+-- Store + Component Instance
状态
- Console 接收一个
.wasmpkg,从包内读取并校验组件身份。 component.wasm和平台生成的运行时manifest.toml保存到本地制品目录。- 运行限制由 Console 策略注入,不接受组件包覆盖。
- manifest、调用计数和最近 256 条事件通过 Toasty 保存到 libSQL。
- Console 进程启动时自动创建 Runtime Engine,从数据库恢复服务元数据,并从制品目录注册 Component。
- Console 可显式启动、停止和重启 Runtime;停止 Runtime 不会停止 Console HTTP 管理面。
- Runtime 停止时释放全部 Actor、Store、Instance 和 epoch worker。
- Actor 内存和运行状态只存在于当前进程。
- Runtime 或 Console 重启后所有服务回到
stopped,调用计数与事件保留,但不会伪造 Wasm 内存恢复。
约束
- 默认只监听
127.0.0.1:8080。 - libSQL 数据库默认位于
var/wasmeld/console.db。 - CORS 默认只允许本地开发面板,其他 Origin 必须显式配置。
- 服务 ID 和 revision 只能包含 ASCII 字母、数字、点、下划线和短横线。
.wasmpkg上传和解压后的 Component 上限均默认为 64 MiB。- 二进制 WIT Package 上传上限默认为 4 MiB,同名同版本发布后不可覆盖。
- 包内固定只有
package.toml与component.wasm,不会直接解压任意路径。 - Wasm 编译、实例化和调用通过阻塞任务执行,不占用 Tokio 异步 worker。
- Sandbox、fuel、deadline、内存和 mailbox 限制仍由
wasmeld-runtime执行。