spidermonkey-wasi-embedding
Viceroy
Our great sponsors
spidermonkey-wasi-embedding | Viceroy | |
---|---|---|
1 | 1 | |
4 | 140 | |
- | 6.4% | |
10.0 | 8.3 | |
8 months ago | 6 days ago | |
Shell | Rust | |
Apache License 2.0 | 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.
spidermonkey-wasi-embedding
-
Wasmtime 1.0
We worked with Igalia to upstream the SpiderMonkey patches required to build for wasm32-wasi. We point to a fixed version (see: https://github.com/fastly/spidermonkey-wasi-embedding) which we haven't updated for a minute.
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
wizard-engine - Research WebAssembly Engine
js-compute-runtime - JavaScript SDK and runtime for building Fastly Compute applications
lunatic - Lunatic is an Erlang-inspired runtime for WebAssembly
wasi-libc - WASI libc implementation for WebAssembly
wasm-micro-runtime - WebAssembly Micro Runtime (WAMR)
wasmer - 🚀 The leading Wasm Runtime supporting WASIX, WASI and Emscripten
wazero - wazero: the zero dependency WebAssembly runtime for Go developers