dphilla / boxer

Build a WebAssembly distribution of your project in a single step.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Boxer

Mia St John

This project is experimental and under rapid development. Not yet for production use (but will be soon) - use at own risk

Boxer

Overview

Boxer is an open-source project designed to reimagine cloud computing by transitioning from traditional container technology to WebAssembly (Wasm) based distributions, known as "Boxes" or "Wasm-Boxes".

Motivation

While containers have been a cornerstone of cloud computing, providing isolated environments for applications, they come with significant drawbacks. They often result in larger, less efficient deployments with slower startup times and rely heavily on the underlying operating system/kernel for security, which can introduce vulnerabilities and platform lock-in.

Solution: Boxer

Boxer offers a new solution by providing tooling for converting existing containerized workloads and definitions into near-universally deployable Wasm distributions. These "Boxes" offer environments comparable to those provided by containers but are vastly more efficient thanks to the lightweight, sandboxed execution capabilities of WebAssembly.

Container and Box

Key Advantages of WebAssembly:

  • Reduced Overhead: Wasm's compact binary instruction format ensures lightweight execution, drastically cutting down the overhead seen in traditional containers.
  • Enhanced Performance: The efficiency of Wasm leads to improved performance and smaller, more efficient deployments, perfectly suited for cloud computing.
  • Superior Security: Wasm's memory-safe, isolated execution environment provides a higher level of security, independent of the operating system.
  • Run (almost) Everywhere Wasm can run a anywhere there is a WebAssembly runtime, including browsers, servers, and embedded devices; existing runtimes are available on for a wide variety of architectures.

Example

Dockerfile ➡ (Wasm)Box

For for this file:

FROM ubuntu:latest
RUN mkdir -p /app
COPY a.out /app
WORKDIR /app
CMD ["/app/a.out"]

run wbx build -f Dockerfile

This will bring in libc interaces (as imports) and create the necessary FS state, thus declaritivey creating a ready-to-run Wasm binary.

About

Build a WebAssembly distribution of your project in a single step.

License:GNU Affero General Public License v3.0


Languages

Language:Ruby 82.0%Language:C++ 13.6%Language:C 2.3%Language:Roff 1.4%Language:HTML 0.2%Language:CSS 0.2%Language:Rust 0.1%Language:JavaScript 0.1%Language:Shell 0.0%Language:Python 0.0%Language:Dockerfile 0.0%