bytecodealliance / bytecodealliance/ComponentizeJS
Compile components without a JS runtime
- 主要語言
- Rust
- 星號
- 391
- 分支
- 53
- 平均合併
- 3 天 5 小時
- 30 天內合併 PR
- 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
- 預估耗時
- 一週以上
- 活躍度
- 停滯
- 描述清晰度
- 需要釐清
- 新手友好度
- 25/100