Star

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.

Fast

Lunatic supports Wasmer or Wasmtime to just-in-time compile your Wasm to machine code. LLVM and Cranelift are supported as code generators. When LLVM is used, runtime performance is roughly equal to native code.

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.

Community

Find us onGitHub iconDiscord iconTwitter iconor subscribe to our mailing list...