wizard-engine
Viceroy
wizard-engine | Viceroy | |
---|---|---|
6 | 1 | |
296 | 140 | |
- | 2.9% | |
9.7 | 8.3 | |
4 days ago | 11 days ago | |
WebAssembly | Rust | |
- | 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.
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...
Viceroy
-
Wasmtime 1.0
These are good questions! Here's some answers from the corner of the world I know best as a Wasmtime contributor at Fastly:
1. Spidermonkey.wasm is the basis of Fastly's JavaScript on Compute@Edge support. We have found it to be faster than QuickJS. The source code is here: https://github.com/fastly/js-compute-runtime.
2. Fastly Compute@Edge is built on wasmtime. You can develop web services for it in Rust, JS, and Go: https://developer.fastly.com/learning/compute/
3. Fastly's multi-tenant platform is closed source, but our single-tenant local development platform, which also uses wasmtime under the hood as well, is open source: https://github.com/fastly/viceroy. It isn't a big leap to make viceroy multi-tenant: Wasmtime provides everything you need, and all Viceroy would have to do is dispatch on e.g. HTTP host header to the correct tenant. Our multi-tenant platform is closed source because it is very specialized for use on Fastly's edge, not because the multi-tenant aspect is special.
What are some alternatives?
javy - JS to WebAssembly toolchain
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
lunatic - Lunatic is an Erlang-inspired runtime for WebAssembly
Web49 - Web49: WebAssembly Interpeter
wasi-libc - WASI libc implementation for WebAssembly
spidermonkey-wasi-embedding
js-compute-runtime - JavaScript SDK and runtime for building Fastly Compute applications
wasmer - 🚀 The leading Wasm Runtime supporting WASIX, WASI and Emscripten
wazero - wazero: the zero dependency WebAssembly runtime for Go developers
wasmtime - A fast and secure runtime for WebAssembly