astrid-runtime/sdk-js
JavaScript and TypeScript SDK for building Astrid capsules.
解决的问题
它提供了一种使用 JavaScript 和 TypeScript 而不是 Rust 来构建“胶囊”(隔离的可移植二进制文件)的方法。这允许开发人员使用熟悉的类 Node.js API 和 TypeScript 装饰器来创建模块化组件,这些组件可以在无需更改宿主 ABI 的情况下由 Astrid 运行时内核执行。
工作原理
该 SDK 使用构建流水线将 TypeScript 代码转换为 WebAssembly (Wasm) 组件。该过程包括:
- Typechecking:
tsc将 TypeScript 编译为 JavaScript。 - Bundling:
esbuild将代码和 SDK 打包成单个 ESM 模块。 - Componentization: ComponentizeJS 使用 StarlingMonkey 将包转换为
wasm32-wasip2组件。 - Packaging: 基于 Rust 的工具将生成的 Wasm 文件和
Capsule.toml配置打包成.capsule归档。
适用对象
在构建 Astrid 胶囊时比起 Rust 更喜欢 JavaScript 和 TypeScript 开发体验的开发人员,以及正在构建守护进程模式工作负载的开发人员(在这种情况下,JS 胶囊比 Rust 更大的二进制文件大小是可以接受的权衡)。
亮点
- 熟悉的 API: 使用
node:fs/promises、node:child_process和 WHATWG fetch。 - TypeScript 装饰器: 使用
@capsule、@tool和@install等装饰器来定义胶囊行为和生命周期钩子。 - 语言无关: 生成与 Rust SDK 相同的
.capsule归档格式和 WIT 契约,使得从内核的角度来看二进制文件是可互换的。 - 集成的构建工具链: 包含一个构建编排器,管理从源代码到最终归档的整个流水线。
相关
- 项目
- 项目
- 项目
- 项目
- 项目