What it is
Trunk is a build and bundling tool for Rust applications that target WebAssembly for the web. It lives in the Rust and WebAssembly ecosystem, and the README describes it as a WASM web application bundler for Rust. The project uses a source HTML file as the entry point for building and bundling WASM, JavaScript snippets, and assets such as images, CSS, SCSS, and HTML.
The problem it solves is the assembly of a browser-ready Rust WASM application from multiple parts. A Rust web app may need WASM compilation, HTML processing, JavaScript snippets, stylesheets, and local serving. Trunk reduces those steps into one workflow driven by a simple, optional-config pattern, so the application can be built and shipped to the web from the same source HTML file used during development.
Key capabilities
- It builds and bundles Rust WASM output for web applications.
- It uses a source HTML file as the main configuration and entry point for the build.
- It bundles JavaScript snippets together with WASM and other application assets.
- It supports assets such as images, CSS, SCSS, and HTML through the build process.
- It includes a built-in development server for rapid local workflows.
- It supports HTTP and WebSocket proxies through the development server.
- It watches the application for changes and triggers rebuilds with automatic browser reloading.
Who uses it and how
- Rust developers building browser-based WASM applications use it as the bundler step in a local development workflow.
- Teams working with HTML-driven Rust web apps use a source HTML file to declare the parts that must be assembled into the final page.
- Developers iterating on stylesheets or assets use change detection and automatic reload to see updates without manually restarting the build.
- Users of the examples directory can inspect maintained in-repo web applications to understand how a Trunk project is organized.
Getting started
Typical installation methods include downloading a released binary from https://github.com/trunk-rs/trunk/releases, using cargo binstall trunk, compiling from crates.io with cargo install trunk --locked, compiling from the Git repository with cargo install --git https://github.com/trunk-rs/trunk trunk, compiling from local source with cargo install --path . trunk, installing with brew install trunk, and entering a Nix environment with nix-shell -p trunk. The README directs users to the Trunk website for app setup, assets, configuration, and CLI command documentation.
When to use it — and when not to
Trunk fits Rust WASM web apps where the team wants a bundler centered on a source HTML file, but no paid product replacement or hosted service is listed. The facts do not mention database, storage, SMTP, or self-hosting operations, so those responsibilities are outside the described tool. A limitation is that it focuses on Rust WASM web apps rather than general web bundling, and the metadata lists 136 open issues without a contributor count.
project readme (upstream, from github) — read inline
Trunk

Build, bundle & ship your Rust WASM application to the web.
”Pack your things, we’re going on an adventure!” ~ Ferris
Trunk is a WASM web application bundler for Rust. Trunk uses a simple, optional-config pattern for building & bundling WASM, JS snippets & other assets (images, css, scss) via a source HTML file.
📦 Dev server - Trunk ships with a built-in server for rapid development workflows, as well as support for HTTP & WebSocket proxies.
🏗 Change detection - Trunk watches your application for changes and triggers builds for you, including automatic browser reloading.
Getting Started
Head on over to the Trunk website, everything you need is there. A few quick links:
Examples
Check out the example web applications we maintain in-repo under the examples directory.
Contributing
Anyone and everyone is welcome to contribute! Please review the CONTRIBUTING.md document for more details. The best way to get started is to find an open issue, and then start hacking on implementing it. Letting other folks know that you are working on it, and sharing progress is a great approach. Open pull requests early and often, and please use GitHub's draft pull request feature.
License
trunk is licensed under the terms of the MIT License or the Apache License 2.0, at your choosing.