Lunatic is an Erlang-inspired runtime for WebAssembly.

By combining the fault-tolerance and massive concurrency of Erlang with the capability-based

Lunatic - An Erlang-inspired runtime for WebAssembly | Lunatic Blog

submited by
Style Pass
2021-05-25 17:00:13

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.

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.

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.

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.

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.

Leave a Comment