javy
wizard-engine
javy | wizard-engine | |
---|---|---|
6 | 6 | |
0 | 295 | |
- | - | |
5.3 | 9.7 | |
12 months ago | 8 days ago | |
Rust | WebAssembly | |
Apache License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
javy
-
Are there plans for WebAssembly as compilation target?
I don't think you can compile JS to WASM... You can run your JS code in a sandboxed runtime implemented in WebAssembly, which... I guess gives you sandboxing, but not much else.
-
Is it possible to run a containerized SvelteKit/Node-based website as WASM module?
Yes exactly! Thanks for nudging me in the direction of: - https://github.com/Shopify/javy - https://github.com/WebAssembly/design/issues/219
-
QuickJS Running in WebAssembly
I’m not sure if anyone has done so yet for Go, but Shopify has done this for Rust.
https://github.com/Shopify/javy/tree/main/crates/quickjs-was...
-
Wasmtime 1.0
> - 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
-
Announcing support for WASI on Cloudflare Workers
You will need to use something like javy which incidentally accepts input via stdin and produces output via stdout which would work perfectly (to my knowledge) as a wasi worker.
-
The State of WebAssembly 2022
yes it has, https://github.com/Shopify/javy among others
wizard-engine
- Show HN: WebAssembly Instrumentation in the Wizard Research Engine
-
Push ifs up and fors down
I think I would like the former syntax. Witness one of the several nested matching situations I run into:
https://github.com/titzer/wizard-engine/blob/master/src/engi...
This would be much, much better if Virgil had pattern matching on tuples of ADTs.
-
Wasmtime 1.0
Congrats to the Wasmtime team on the 1.0 release!
I'm happy to see that more runtimes are maturing and getting use on production cases... I can't wait to see and show what the future entails for WebAssembly on both the server side and the browser!
Keep up the good work. Also I'd like to use this message to congratulate other runtimes that I'm excited about (apart from Wasmer, of course!): Wizard Engine [1], Wazero [2] and Lunatic [3].
The future is bright in Wasm land :)
[1] https://github.com/titzer/wizard-engine
[2] https://github.com/tetratelabs/wazero
[3] https://github.com/lunatic-solutions/lunatic
- A fast in-place interpreter for WebAssembly
-
Evil programmer's tip: avoid “easy” things
A classic "easy" thing that appears "hard": write a little bit of assembly. Note, a little bit[1].
Writing assembly, again, in small amounts, is exactly the kind of thing that is difficult to start, and fails spectacularly if you have little experience. Debugging is a pain. But you can totally get the hang of writing assembly, and as long as you are doing it for the right reasons (TM), it's justified, and heroic. The key is you need to write and debug a little at a time.
Case in point, I wrote an entire Wasm interpreter[2] in x86-64 asm over the past few months. I wrote it a little at a time, had lots of unit tests, and am working in an engine that was already working (with a slower interpreter).
[1] If you find yourself writing more than a few hundred assembly instructions in a sitting, you are going to fail. If you find yourself writing more than a few thousand assembly instructions, you have already failed.
[2] https://github.com/titzer/wizard-engine/blob/master/src/engi...
What are some alternatives?
Viceroy - Viceroy provides local testing for developers working with Compute.
VectorVisor - VectorVisor is a vectorizing binary translator for GPUs, designed to make it easy to run many copies of a single-threaded WebAssembly program in parallel using GPUs
wasmer - 🚀 The leading Wasm Runtime supporting WASIX, WASI and Emscripten
Web49 - Web49: WebAssembly Interpeter
spidermonkey-wasi-embedding
define-function - quick.js based eval
lunatic - Lunatic is an Erlang-inspired runtime for WebAssembly
wasmtime - A fast and secure runtime for WebAssembly
wazero - wazero: the zero dependency WebAssembly runtime for Go developers