leptos-rs / leptos_wasi

Leptos WASI Preview 2 integration, working with wasmcloud and possibly others
MIT License
9 stars 2 forks source link

leptos_wasi

Run your Leptos Server-Side in WebAssembly using WASI standards.

Explainer

WebAssembly is already popular in the browser but organisations like the Bytecode Alliance are committed to providing the industry with new standard-driven ways of running software. Specifically, they are maintaining the Wasmtime runtime, which allows running WebAssembly out of the browser (e.g., on a serverless platform).

Leptos is already leveraging WebAssembly in the browser and gives you tools to build web applications with best-in-class performance.

This crate aims to go further and enable you to also leverage WebAssembly for your Leptos Server. Specifically, it will allow you to target the rust wasm32-wasip2 target for the server-side while integrating seamlessly with the Leptos Framework.

Running cargo leptos build will provide you with a WebAssembly Component importing the wasi:http/proxy world. This means you can serve your server on any runtime supporting this world, for example:

wasmtime serve target/server/wasm32-wasip2/debug/your_crate.wasm -Scommon

Disclaimer

This crate is EXPERIMENTAL and the author is not affiliated with the Bytecode Alliance nor funded by any organisation. Consider this crate should become a community-driven project and be battle-tested to be deemed production-ready.

Contributions are welcome!

Usage

TODO: Write a template starter for the crate.

Compatibility

This crate only works with the future Leptos v0.7.

Features