rust-wasmpack-loader is a powerful Webpack and Bun loader that enables seamless integration of Rust resources into your JavaScript/TypeScript projects through WebAssembly (WASM).
rust-wasmpack-loader is a native WASM loader for .rs
(Rust) resources that works with:
🚀 Easy Integration — Import .rs
files directly in your .js
or .ts
files without any headache
🔧 Flexible Configuration — Supports both wasm_bindgen
and regular functions
📦 Smart Discovery — Dynamically finds the Cargo.toml
file for building the WASM source
🌐 Multi-Target Webpack Support — Works with web
and node
applications
⚡ Bun Compatible — Full support for Bun runtime (node target only for now)
- Simplicity: The most obvious one — No complex build setups, import and use
- Write computation-heavy code in Rust: Leverage Rust's performance for CPU-intensive tasks
- Ecosystem: Access the rich Rust ecosystem from your any projects
// Import Rust code directly
import wasmModule from './fibonacci.rs';
// Use the compiled WASM module
const result = wasmModule.fibonacci(10);
console.log(result); // Output: 55
// fibonacci.rs
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
pub fn fibonacci(n: u32) -> u32 {
match n {
0 => 0,
1 => 1,
_ => fibonacci(n - 1) + fibonacci(n - 2),
}
}
Ready to boost your projects with native WebAssembly support? Let us get started!
Check the example folder in the repository for a better understanding of how the loader works with different setups:
- Web Webpack - Browser applications
- Node.js Webpack - Server-side applications
- Bun Node.js - High-performance Bun runtime
Contributions are always welcome!
See CONTRIBUTING.md for ways to get started.
Please feel free to:
- 🐛 Report bugs and issues
- 💡 Suggest new features
- 📖 Improve documentation
- 🔧 Submit pull requests
Special thanks to the projects that inspired and helped make rust-wasmpack-loader possible:
- @wasm-tool/wasm-pack-plugin - Original inspiration for WebAssembly integration
- wasm-pack - The amazing tool that makes Rust-to-WASM compilation seamless
This project is licensed under the MIT License.
See the LICENSE file for details.
Built with ❤️ by Yehor Brodskiy