Skip to content

Yeseh/wasm-research

Repository files navigation

WebAssembly ecosystem

This file contains an overview of the more important elements of the WebAssembly ecousystem.

Concepts

WebAssembly Binary: a .wasm file that represents a webassembly file in binary format. The specification of the binary format can be found here

WebAssembly Text: an s-expression based human-readable text representation of a webassembly binary

WIT: WebAssembly Interface Types. An IDL meant for specifying the interface a webassembly component implements. WIT files are used to generate host/client code to interact with WASM binary files.

Main Projects

WebAssembly

Organization

Main github organization for the webassembly standards and tooling.

Important projects

WASI

Repo

Repo for standardizing the WebAssembly systems interface that allows WASM modules to interact with their execution environment. Currently on version 'preview1'.

Specification

Repo

The specification and reference interpreter for core webassembly.

Proposals

Repo

Tracking repository for proposals to modify the specification.

WIT implementations

The WebAssembly organization contains many implementations of WIT worlds that are in one stage of the standardization process or another. The most interesting are the wasi-* worlds that are going to be a part of wasi preview2 and preview3.

WABT

Repo

Toolkit for interacting with WASM binaries. Main uses:

  • Translating to and from WASM binary and WebAssembly Text
  • Dumping metadata about wasm binaries
  • Manipulate sections

Bytecode Alliance

People working to develop standards and tooling for WebAssembly.

Repo

Important projects

Wasmtime

Repo

A webassembly runtime with bindings for several programming languages. As this runtime is built by the people that are very closely connected to the WASM/WASI standardization process i trust this the most. It is going to have the latest features first and is going to be built with alignment to the specifications and standards.

wasm-tools

Repo

Webassembly toolkit. Similar to WABT but additionally includes utilities to work with WASM components. Prefer this over WABT or install both.

wit-bindgen

Repo

Tooling to generate source code in several different programming languages from WIT interfaces. Allows applications to interact with WASM components.

wit-deps

Repo

'Package manager' for WebAssembly interfaces. Allows a project to specify which interfaces are needed and keeps them up-to-date.

cargo-component

Repo

Cargo subcommand for creating WebAssembly components based on the component model proposal. Only used for rust-based component development.

registry (WARG)

Repo

Specification and reference implementation of a webassembly component registry.

wizer

Repo

Tooling to pre-initialize some state into a webassembly binary. Might create significant startup time improvements.

Implementations

Tools

Third party projects

spiderlightning: A set of WebAssembly interfaces to build cloud applications with. Now deprecated and being standardized in WASI preview2 as the cloud-core world.

krustlet: run webassembly in kubernetes.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published