mirror of
https://github.com/hanzoai/esbuild.git
synced 2026-09-24 16:58:50 +00:00
9dd1d42ba54a7aa87f4f6ad946abee7b3e42301c
The wasm service mode is what the estate wants from this fork — a persistent esbuild inside a stock wasip1 module, fed over the plugin protocol, needing no filesystem at all — and nothing here built that module. hanzo/Makefile builds it and the four native hosts, reproducibly: GOTOOLCHAIN pinned to go.version so the compiler is the repo's pin and not the laptop's, -trimpath, no VCS stamp, cleared build id, CGO off. Two runs of the lane give the same digest. It is a separate file from upstream's Makefile, which stays the development and npm lane, so a rebase touches none of this. The version handshake was the shipping hazard. A host drives the service with --service=<version> and cmd/esbuild/main.go exits 1 on any mismatch, so a version written down anywhere outside the artifact can drift from it and the drift only appears as "Cannot start service" at run time. Three things close it. The lane reads the version from the constant that is compiled in, not from version.txt, and refuses to build when those two disagree. Every artifact is named for its version. And hanzo/stamp gets the version for the manifest by starting each artifact in service mode — the .wasm under wazero with zero preopened directories — and recording the version the artifact itself announces, so the manifest cannot claim one the binary would reject. .hanzo/workflows/release.yml runs the lane on main and publishes on a v* tag. Not .github/: there is no runner there and such a job waits forever while looking like CI. Co-authored-by: Hanzo Dev <[email protected]>
Website |
Getting started |
Documentation |
Plugins |
FAQ
Why?
Our current build tools for the web are 10-100x slower than they could be:
The main goal of the esbuild bundler project is to bring about a new era of build tool performance, and create an easy-to-use modern bundler along the way.
Major features:
- Extreme speed without needing a cache
- JavaScript, CSS, TypeScript, and JSX built-in
- A straightforward API for CLI, JS, and Go
- Bundles ESM and CommonJS modules
- Bundles CSS including CSS modules
- Tree shaking, minification, and source maps
- Local server, watch mode, and plugins
Check out the getting started instructions if you want to give esbuild a try.
Languages
Go
75.6%
JavaScript
17%
TypeScript
5.7%
Makefile
0.9%
HTML
0.7%