3 ms·
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 o
by phickey 4y ago
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 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/ 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 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.
- azakai 4y ago> We have found it [spidermonkey.wasm] to be faster than QuickJS Interesting! Do you have numbers for code size and memory usage perhaps?
- eins1234 4y agoNice, the fact that Fastly is comfortable betting on Spidermonkey.wasm is the vote of confidence I needed to dig in! Also really love seeing how much Fastly is giving back to open source!
- cpeterso 4y ago> 1. Spidermonkey.wasm is the basis of Fastly's JavaScript on Compute@Edge support. How difficult is staying up to date with SpiderMonkey's latest or pre-release upstream versions? Do have to maintain your own SpiderMonkey patches to make upstream work for you?
- phickey 4y agoWe 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 https://github.com/fastly/spidermonkey-wasi-embedding) which we haven't updated for a minute.