Skip to content

Compile components without JS runtime #193

@sandstrom

Description

@sandstrom

Summary

For certain scenarios, it would be great if we could create WebAssembly Components from 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/Ruby, needing a full JS runtime to do the compilation might complicate things in that Python or Ruby backend.

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 or Wasmtime-Rb.

Let me know if I should elaborate!

Also, I know this is more of a discussions item, but the discussions tab isn't enabled on the repo so I opened it here.

Thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions