bytecodealliance / bytecodealliance/ComponentizeJS

Compile components without a JS runtime

未關閉
#193 2 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
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

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。