

Lunatic - An Erlang-inspired runtime for WebAssembly | Lunatic
source link: https://lunatic.solutions/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

An Erlang-inspired runtime for WebAssembly
Lunatic is an Erlang-inspired runtime for WebAssembly
By combining the fault-tolerance and massive concurrency of Erlang with the capability-based security of WebAssembly, it creates a powerful programming model.
Architecture
Lunatic is a single executable and runs on Windows, macOS and Linux. It spawns lightweight processes from WebAssembly modules that have their own heap/stack. These processes are preemptively scheduled on a multi-threaded executor.
Processes
Lunatic's design is all about super lightweight processes. Processes are fast to create, have a small memory footprint and a low scheduling overhead. They are designed for massive concurrency.
Isolation
Lunatic sits between your operating system and the running processes. This allows it to decide on a per process basis what syscalls are going to be forwarded to the operating systems.
If you would like to run some untrusted code, you can. Just spawn it inside of a process without any privileges.
Features
Open source
Lunatic is an open source project licensed under the MIT/Apache license. You can check out the code on Github.
Secure
Lunatic builds on WebAssembly's security. We all use unaudited third-party libs that get deployed with our code, Lunatic can use capability based security to limit them.
Lunatic uses Wasmtime to run Wasm and just-in-time compile your Wasm to machine code (using Cranelift).
Multi-lingual
We want to support all languages that compile to Wasm. Some are better suited for Lunatic's use-cases. Currently, we are focused on Rust and AssemblyScript.
No lock-in
You have the freedom to architecture your app in any way you want. Ideally you should be able to compile your existing app to Wasm and enjoy some benefits of Lunatic.
Robust
Lunatic processes are completely isolated, with a per-process stack and heap. If a process crashes, it won't affect others in the runtime.
Recommend
-
100
Wasmjit Wasmjit is a small embeddable WebAssembly runtime. Its core is written in C90 and is easily portable to most environments. Its primary target is a Linux kernel module that can host Emscripten-g...
-
65
README.md Wasmjit Wasmjit is a small embeddable WebAssembly runtime. Its core is written in C90 and is easily portable to most environments. Its...
-
32
Built with ambitions of powering the WebAssembly world, an embeddable runtime for the
-
67
WebAssembly Micro Runtime WebAssembly Micro Runtime (WAMR) is standalone WebAssembly (WASM) runtime with small footprint. It includes a few components: WebAssembly VM core WASM applica...
-
79
README.md kernel-wasm Safely run WebAssembly in the Linux kernel, with faster-than-native performance. Background I wrote
-
37
Lumen - A new compiler and runtime for BEAM languages Contributing In order to build Lumen, or make changes to it, you'll need the following installed: First, you will need to insta...
-
21
async-std is a mature and stable port of the Rust standard library to its new async/await world, designed to make async programming easy, efficient, worry- and error-free. We announce...
-
2
How I Used Rust + Lunatic to Build a TelNet Chat Server With WebAssemblyFebruary 28th 2021 486 reads10
-
4
Comments Copy link hnes
-
5
lunatic亚毫秒 Web 框架的LiveView实时视图 解道Jdon
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK