What does HackerNews think of javy?

Language: Rust

Late to the party, but I didn't see anyone mentioning this: Shopify seems to be curiously extremely involved in sponsoring WebAssembly-related projects. It's a gold sponsor on AssemblyScript[1], it used to develop javy[2] which compiles JavaScript to WebAssembly, a member of the BytecodeAlliance[3].

I wouldn't think they sponsor LadyBird just for LibWasm[4], as that doesn't make any sense, but technically, they add that to their wasm sponsorships now.

Honestly, it looks like a really nice place to work if you like WebAssembly, I wouldn't mind a collaboration or to work with them.

[1] https://www.assemblyscript.org/

[2] https://github.com/Shopify/javy

[3] https://bytecodealliance.org/

[4] https://github.com/SerenityOS/serenity/tree/master/Userland/...

This post demonstrates how to implement plugins for Rust using QuickJS in WebAssembly for safe arbitrary code execution. It relies heavily on on the work done by Shopify with Javy (https://github.com/Shopify/javy) but makes the deployment process easier. I hope it is useful.
This post demonstrates how to implement plugins for Rust using QuickJS in WebAssembly for safe arbitrary code execution. It relies heavily on on the work done by Shopify with Javy (https://github.com/Shopify/javy) but makes the deployment process easier.

I hope it is useful.

> - JS is notably missing from the list of languages supported on the front page. But I see mentions of a Spidermonkey.wasm in the blog post. Is running JS on top of wasmtime in production a realistic prospect today? If so, where can I read more? (mainly interested in this for the instantiation time benefits, though maybe all/most of that will be negated by the embedded JS engine?)

Shopify and others use QuickJS as their JS engine of choice. See https://github.com/Shopify/javy as a starting point. The real benefit is allowing authors of plugins to write JS and not AssemblyScript, not any performance or instantiation time benefits.

> - How should I go about building a typical web service on top of wasmtime? Can wasmtime itself handle network requests/connections or would I need to build the web server in some other host language and pass request data to wasmtime modules? Haven't been able to find anything in the docs about this.

There are a lot of choices for this. None I would consider mature, but some leads:

- https://github.com/deislabs/wagi

- https://suborbital.dev/

- https://github.com/fermyon/spin

They handle the passing of data between host and guest for you. Your module, written in a language that compiles down to wasm, is evaluated against the request. They make host functionality, such as the ability to make other network calls, available to your module as needed.

> - What would it take to build a multitenant web service where customer code is isolated using wasmtime, like the one like described in the post?

See suborbital linked above. Not much. This is the primary current use case for server side wasm.