wizard-engine
js-compute-runtime
Our great sponsors
wizard-engine | js-compute-runtime | |
---|---|---|
6 | 8 | |
285 | 185 | |
- | 7.6% | |
9.7 | 9.3 | |
7 days ago | 2 days ago | |
WebAssembly | C++ | |
- | 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...
js-compute-runtime
-
What sorts of things would you consider to be “advanced” javascript concepts?
There are multiple JavaScript runtimes. SpiderMonkey is one example that has nothing to do with Node.js, see (js-compute-runtime)[https://github.com/fastly/js-compute-runtime].
- [AskJS] Has anybody implemented and compiled ServiceWorker specification to a standalone executable?
-
JavaScript support hits 1.0 milestone on Compute@Edge
We listened to the community feedback, filled in feature gaps, and addressed many bugs in the SDK. Not only that, we’ve also overhauled the SDK reference docs making it easier for you to know what’s supported and how to implement the features. All the Fastly specific features of the JS SDK now have interactive example applications in the documentation.
- Workerd: The Open Source Cloudflare Workers Runtime
-
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.
- Fastly Compute Edge JavaScript Runtime
-
Debunking Cloudflare’s recent performance tests
btw. for what it's worth their javascript to wasm is opensource:
- https://github.com/fastly/js-compute-runtime
- https://github.com/tschneidereit/spidermonkey-wasi-embedding
and besides that it is slower than nodejs it is still plenty fast (no matter that it is not as fast as they want) btw. it's startup is faster than node. (maybe better pgo might help)
What are some alternatives?
javy - JS to WebAssembly toolchain
wasmtime - A fast and secure runtime for WebAssembly
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
quickjs-rs - Rust wrapper for the quickjs Javascript engine.
Web49 - Web49: WebAssembly Interpeter
workerd - The JavaScript / Wasm runtime that powers Cloudflare Workers
spidermonkey-wasi-embedding
spidermonkey-wasi-embedding
wasmer - 🚀 The leading Wasm Runtime supporting WASIX, WASI and Emscripten
miniflare - 🔥 Fully-local simulator for Cloudflare Workers. For the latest version, see https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare.
now - Node on Web