astrid-runtime/sdk-js
JavaScript and TypeScript SDK for building Astrid capsules.
解決する課題
Rust の代わりに JavaScript と TypeScript を使用して「カプセル」(隔離されたポータブルなバイナリ)を構築する方法を提供します。これにより、開発者は使い慣れた 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 コントラクトを生成するため、カーネルの観点からはバイナリを相互に入れ替え可能です。 - 統合されたビルドツール: ソースコードから最終的なアーカイブまでのパイプライン全体を管理するビルドオーケストレーターが含まれています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト