wasm-micro-runtime
awesome-wasm-runtimes
wasm-micro-runtime | awesome-wasm-runtimes | |
---|---|---|
16 | 8 | |
4,507 | 1,275 | |
2.1% | - | |
9.7 | 1.9 | |
5 days ago | 2 months ago | |
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.
wasm-micro-runtime
-
Build your own WebAssembly Compiler
Here is what you are looking for: https://github.com/bytecodealliance/wasm-micro-runtime
-
Val, a high-level systems programming language
No longer does Wasm/WASI need JS host! There are many spec-compliant runtimes built for environments from tiny embedded systems up to beefy arm/x86 racks:
- https://github.com/bytecodealliance/wasm-micro-runtime
- https://github.com/bytecodealliance/wasmtime
- https://github.com/wasmerio/wasmer
- https://github.com/tetratelabs/wazero
- https://github.com/extism/extism (disclaimer, my company's project - makes wasm easily embeddable into 16+ programming languages!)
-
Blog Post: Reasonable Bootstrap
The WASM core 1.1 infrastructure is already available in a very strict defined more or less guarantied compatible form on nearly any final target. Even on very small devices for embedded computing (WAMR takes less then 85kB and supports even trusted computing etc.) and in contexts, where usually no other low level development tools are available (for example within the context of Webbrowsers, sandboxed execution etc.)
-
WASM vs Native Rust performance
WAMR and it's different AoT preprocessing and execution modes could be even more efficient. ;)
- adding multiple optional scripting languages
-
Wasm-bpf: Build and run eBPF programs in WebAssembly
Wasm-bpf is a WebAssembly eBPF library, toolchain and runtime powered by CO-RE(Compile Once – Run Everywhere) libbpf and WAMR. It can help you build almost every eBPF programs or use cases to Wasm.
-
Ruby Adds Support for WebAssembly: What is WebAssembly and how it benefits Ruby devs?
Running a Wasm application outside the browser requires an appropriate runtime that implements the WebAssembly VM and provides interfaces to the underlying system. There are a few competing solutions in this field, the most popular being wasmtime, wasmer, and WAMR.
- WebAssembly Micro Runtime (WAMR)
-
Learning Embedded rust
A very interesting solution for high level interface access by less professional developers could be seen in pikascript, which works even on very small devices. WAMR is another project with similar capabilities. Both of them can be very well combined with core infrastructure realized as embedded rust code.
-
Wasmtime 1.0
Seems the micro runtime also released 1.0:
https://github.com/bytecodealliance/wasm-micro-runtime
But why does it not have binaries compiled and ready?
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
What are some alternatives?
wasm3 - 🚀 A fast WebAssembly interpreter and the most universal WASM runtime
wasmer - 🚀 The leading Wasm Runtime supporting WASIX, WASI and Emscripten
zephyr - Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
Graal - GraalVM compiles Java applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀
q3vm - Q3VM - Single file (vm.c) bytecode virtual machine/interpreter for C-language input
Odin - Odin Programming Language
crun - A fast and lightweight fully featured OCI runtime and C library for running containers
TinyGo - Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
raylib - A simple and easy-to-use library to enjoy videogames programming
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).
WASI - WebAssembly System Interface
hn-search - Hacker News Search