Wasm Labs

Wasm Workers Server

Self-contained server to run workers in WebAssembly

Get started

Description

An open source project to create applications based on workers and run them. It's a self-contained binary server that will look for workers in your filesystem and will serve them right away.

Repository

GitHub

Website

https://workers.wasmlabs.dev

License

Apache License 2.0

Languages

About the project

Wasm Workers Server (abbreviated wws) is a HTTP server to run your applications on WebAssembly. Applications follows the "workers" pattern, in which every URL is associated to a separate module that will process a request and provide a response.

Our goal with wws is to simplify how you deploy applications with WebAssembly. For this reason, wws assumes certain conventions and provide some convenient features:

  • The name of the files and folders in your filesystem determines the URL for the module. This is called a file-system based routing
  • Even though everything runs inside a WebAssembly Virtual Machine (VM), wws integrates certain language runtimes to simplify how you develop your workers. You can create a my-endpoint.js file and wws will load it
  • Serve static assets by placing them in a public folder
  • Add a Key / Value in-memory store to save a temporary state for your application

You get all these features and more by downloading and running wws. Everything in a single command:

curl https://raw.githubusercontent.com/vmware-labs/wasm-workers-server/main/install.sh | bash && \
wws --help

After running it, you will see:

Usage: wws [OPTIONS] [PATH]

Arguments:
[PATH] Folder to read WebAssembly modules from [default: .]

Options:
--host <HOSTNAME> Hostname to initiate the server [default: 127.0.0.1]
-p, --port <PORT> Port to initiate the server [default: 8080]
--prefix <PREFIX> Prepend the given path to all URLs [default: ]
-h, --help Print help information
-V, --version Print version information

Learn more

To continue learning about wws, we recommend you to check the following links:

Do you want to stay up to date with WebAssembly and our projects?