awesome-wasm-runtimes
artichoke
awesome-wasm-runtimes | artichoke | |
---|---|---|
8 | 31 | |
1,275 | 2,995 | |
- | 0.2% | |
1.9 | 9.0 | |
2 months ago | 4 days ago | |
Rust | ||
- | MIT License |
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.
awesome-wasm-runtimes
-
Extism Makes WebAssembly Easy
Firecracker is a fine technology, but serverless companies have started taking advantage Wasm's faster start-up times for use cases of running Wasm on the server (https://www.youtube.com/watch?v=yqgCxhPAao0). The deny by default security policy makes Wasm a great choice to run your code in isolation, particularly for maximizing hardware resources in the multi-tenant environments these serverless companies operate.
In the past few years, we have seen more use cases of Wasm emerge outside of the browser. JavaScript engines are now just a fraction of the total number of runtimes available. Wasmtime, Wasmer, WasmEdge, wazero are popular ones for non-browser use cases like blockchain, serverless, and edge computing (although Cloudflare uses V8's Wasm engine). WAMR is a popular one for cyber physical/IoT devices. There's a nice list here: https://github.com/appcypher/awesome-wasm-runtimes
-
I think [...] the "future of computing" is going to be [...] CISC. I’ve read of IBM mainframes that have [hardware instructions for] parsing XML [...]; if you had garbage collection, bounds checking, and type checking in hardware, you’d have fewer and smaller instructions that achieved just as much.
There's plenty of other ways to interact with Wasm, most of which are secure. (Wasmtime is the one I'm most familiar with, which is why I linked to it.)
-
Lunatic is an Erlang-inspired runtime for WebAssembly
Yeah, this is one of many non-browser runtimes, e.g. see https://github.com/appcypher/awesome-wasm-runtimes
Lunatic is more opinionated than most of these or node, though, in that it's trying to emulate a particular concurrent system design pattern borrowed from Erlang/BEAM.
-
Web Assembly OS guidance
There's an overview of different WASM runtimes with features: https://github.com/appcypher/awesome-wasm-runtimes
- Wasmer – The Universal WebAssembly Runtime
-
What to learn in 2022
Now, the creation Bytecode Alliance, the development of multiple WebAssembly runtimes and the work of the W3C WebAssembly Community Group is why I belive it will get popular, but the capability-based security model is why I want it to get popular.
-
Ho Ho Ho, WasmEdge 0.9.0 is here!
âš– I think it's really cool that a plugin author could compile their C++ to .wasm such that a single plugin binary can run on either Linux or Windows (don't need an x86 .dll, x64 .dll, x86 .so, x64 .so...) and in a sandbox (no arbitrary syscalls or Win32 calls, just the interfaces given to it), while still getting near native AOT speed. Though, it's hard to judge which one to choose from now with all the wasm engines that are available (https://github.com/appcypher/awesome-wasm-runtimes), with wasmtime or inNative being two others I've considered for my project. I'll definitely look into this one though, given it supports many of the newer proposals.
-
Why WebAssembly is innovative even outside the browser
Numerous native runtimes for webassembly already exist[0], with the current popular choices apparently being Wasmer[1] and Wasmtime[2].
All one would need to do (AFAIK) is ship a client for all major platforms, as is done with Electron (and web browsers themselves, and everything else.)
[0]https://github.com/appcypher/awesome-wasm-runtimes
artichoke
-
Ruby 3.2.0 Is from Another Dimension
The java based ruby, removes the GIL, which provides us real multithreading.
Truffleruby is "A high performance implementation of the Ruby programming language, built on GraalVM." If you prefer there is even a rust based ruby https://github.com/artichoke/artichoke
again, IMO, the microbenchmark, doesn't matter. What matters is the problem domain, whole stack and the whole "speed", including development, deployment and etc, and for some domains, ruby is the best and fast choice.
- Rust front-end merged in GCC trunk
-
Lunatic is an Erlang-inspired runtime for WebAssembly
Not to be pedantic but Ruby has webassembly support, still won't work on the BEAM.
https://github.com/artichoke/artichoke
- Why does Rust have parameters on impl?
-
When I look at ruby code written in C, I have one thought. Why isn't Ruby rewritten in Crystal, which would make use of parallelism?
Artichoke is a Ruby interpreter written in Rust.
- Official /r/rust "Who's Hiring" thread for job-seekers and job-offerers [Rust 1.64]
-
Should I be concerned about the quality of crates.io?
The owner of this reserved crate is Ryan Lopopolo who seems to indeed work on artichoke
-
Announcing strftime-ruby v1.0.0, a pure Rust no-std implementation of Ruby 3.1.2 Time#strftime method.
I believe it was written mainly for/within the context of artichoke, which is an implementation of Ruby written (mostly) in Rust. It's a neat project!
- Official /r/rust "Who's Hiring" thread for job-seekers and job-offerers [Rust 1.63]
- Artichoke is a Ruby made with Rust
What are some alternatives?
wasmer - 🚀 The leading Wasm Runtime supporting WASIX, WASI and Emscripten
truffleruby - A high performance implementation of the Ruby programming language, built on GraalVM.
Graal - GraalVM compiles Java applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀
monkey-rust - A dancing with interpreter and compiler
Odin - Odin Programming Language
Kubewarden - Kubewarden is a policy engine for Kubernetes. It helps with keeping your Kubernetes clusters secure and compliant. Kubewarden policies can be written using regular programming languages or Domain Specific Languages (DSL) sugh as Rego. Policies are compiled into WebAssembly modules that are then distributed using traditional container registries.
wasm-micro-runtime - WebAssembly Micro Runtime (WAMR)
www.rust-lang.org - The home of the Rust website
TinyGo - Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
pen - The parallel, concurrent, and functional programming language for scalable software development
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
slint - Slint is a declarative GUI toolkit to build native user interfaces for Rust, C++, or JavaScript apps.