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 契約,使得從核心的角度來看二進位檔案是可互換的。 - 整合的建置工具鏈: 包含一個建置編排器,管理從原始碼到最終封存檔的整個流水線。
相關
- 專案
- 專案
- 專案
- 專案
- 專案