bytecodealliance / bytecodealliance/ComponentizeJS
Compile components without a JS runtime
- 主要言語
- Rust
- スター
- 391
- フォーク
- 53
- 平均マージ
- 3日 5時間
- マージ済み PR(30日)
- 1
説明
## Summary
For certain scenarios, it would be great if we could create WebAssembly Components from JS/ESM with this library, without requiring a JS runtime.
## Background
If a backend service written in Python or Ruby would like to take an input string of Javascript, precompile a wasm component, and then run it using a Wasmtime host for Python or Ruby, needing a full JS runtime to do the compilation step will complicate things in that backend host.
## Proposal
With the current trend that a lot of JS tooling is also available in Rust (Biome, Oxc, Rolldown, etc), would it be possible to see this project as a two-layer library?
The *lower layer* is implemented in Rust (maybe using existing ecosystem tools where available) to bundle and compile the JS code into a WebAssembly Component, and the higher layer would be bindings to the lower layer.
Those *higher-layer* bindings might be JS, which would give the end result of this project (lower layer + higher level), but those bindings might also be written in Python or Ruby, to pair with e.g. [Wasmtime-Py](https://github.com/bytecodealliance/wasmtime-py) or [Wasmtime-Rb](https://github.com/bytecodealliance/wasmtime-rb).
Let me know if I should elaborate!
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
ファイルやテストは指定されていません。まず、既存の JS/ESM コンパイルエントリポイントと、提案における下位層の Rust と上位層のバインディングの区別を確認します。完了には、JS ランタイムなしでコンパイルするための明確なアプローチを定義し、必要なバインディングを特定することが必要です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript, rust, wasm
- 領域
- compilers
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100