whatisgithub

What is wasm-builder?

nodejs/wasm-builder — explained in plain English

Analysis updated 2026-07-07 · repo last pushed 2026-03-17

2DockerfileAudience · ops devopsComplexity · 3/5MaintainedSetup · moderate

In one sentence

A Docker-based build environment that compiles code into WebAssembly for official Node.js projects like undici and amaro, ensuring identical builds every time.

Mindmap

mindmap
  root((repo))
    What it does
      Compiles code to Wasm
      Creates build environment
      Outputs Wasm blobs
    Tech stack
      Docker
      WebAssembly
      Container images
    Use cases
      Build undici HTTP client
      Build amaro TypeScript tool
      Build cjs-module-lexer
    Audience
      Node maintainers
      Infrastructure teams
    Key traits
      Strict consistency
      Not a library
      Pre-configured workshop
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Compile undici's HTTP client code into WebAssembly for fast performance in Node.js.

USE CASE 2

Build amaro's TypeScript transformation tool into a Wasm blob for Node.js.

USE CASE 3

Compile cjs-module-lexer into WebAssembly using a consistent, pre-configured environment.

What is it built with?

DockerWebAssemblyDockerfile

How does it compare?

nodejs/wasm-builderyubiuser/webchanges-dockercaspermeijn/wallabag-test-server
Stars22
LanguageDockerfileDockerfileDockerfile
Last pushed2026-03-172026-07-112024-12-24
MaintenanceMaintainedActiveStale
Setup difficultymoderateeasyeasy
Complexity3/52/52/5
Audienceops devopsops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Docker and familiarity with WebAssembly compilation workflows to use effectively.

No license information is provided in this repository's explanation.

So what is it?

Node.js wasm-builder is a behind-the-scenes tool that helps the Node.js team automatically compile certain pieces of code into a fast, web-friendly format called WebAssembly (often shortened to Wasm). When developers write code that needs to run extremely fast inside Node.js, like a complex language parser or a high-performance network tool, that code often gets compiled into a Wasm "blob," which is essentially a pre-packaged chunk of optimized machine code the system can run directly. At a high level, this repository provides a blueprint for creating a consistent, pre-configured build environment. Think of it like setting up a specialized workshop with all the exact tools and settings needed to assemble a specific product. Instead of installing these tools manually every time someone wants to compile code, the project packages everything into a standard software container. When it is time to build or update a Wasm blob, the system just spins up this pre-built workshop, does the compiling, and outputs the finished file. The primary users are maintainers working on official Node.js projects. For example, the tool is currently used by "undici" (Node.js's modern HTTP client), "amaro" (a TypeScript transformation tool), and "cjs-module-lexer" (a tool that analyzes JavaScript modules). These projects rely on Wasm to handle heavy lifting at high speeds. By using this centralized builder, the teams behind these projects ensure their code is compiled identically every time, avoiding the "it works on my machine" problem that plagues software development. What is notable about this project is its narrow, highly specialized purpose. It is not an application you install or a library you import, it is purely infrastructure. The entire project is essentially just a recipe for setting up that build environment. It trades broad flexibility for strict consistency, ensuring that the foundational pieces of Node.js are built reliably no matter where or when the compilation happens.

Copy-paste prompts

Prompt 1
Help me understand how to use the nodejs/wasm-builder Docker image to compile my C code into a WebAssembly blob suitable for use inside a Node.js project.
Prompt 2
I maintain a Node.js package that needs Wasm. Walk me through how to integrate the nodejs/wasm-builder container into my CI pipeline so builds are reproducible.
Prompt 3
Show me how to build a Docker container similar to nodejs/wasm-builder that sets up a consistent Emscripten/WebAssembly toolchain for compiling code.
Prompt 4
Explain how the nodejs/wasm-builder is used by undici and amaro, and how I can adapt that pattern for my own Node.js project that needs Wasm.

Frequently asked questions

What is wasm-builder?

A Docker-based build environment that compiles code into WebAssembly for official Node.js projects like undici and amaro, ensuring identical builds every time.

What language is wasm-builder written in?

Mainly Dockerfile. The stack also includes Docker, WebAssembly, Dockerfile.

Is wasm-builder actively maintained?

Maintained — commit in last 6 months (last push 2026-03-17).

What license does wasm-builder use?

No license information is provided in this repository's explanation.

How hard is wasm-builder to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is wasm-builder for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.