Skip to main content

MIT License View this project on NPM View this project on NPM Quality Gate Status Known Vulnerabilities

Welcome to rust-wasmpack-loader

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).

What is rust-wasmpack-loader?​

rust-wasmpack-loader is a native WASM loader for .rs (Rust) resources that works with:

  • Webpack ^5.0.0 (Both web and node (node-async) targets)
  • Bun runtime (node target only)

Key Features​

πŸš€ 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)

Why Use rust-wasmpack-loader?​

  • 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

Quick Example​

// 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),
}
}

Getting Started​

Ready to boost your projects with native WebAssembly support? Let us get started!

πŸ‘‰ Installation Guide

πŸ‘‰ Quick Start Tutorial

Examples​

View Examples documentation

Check the example folder in the repository for a better understanding of how the loader works with different setups:

Contributing​

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

Acknowledgements​

Special thanks to the projects that inspired and helped make rust-wasmpack-loader possible:

License​

This project is licensed under the MIT License.

See the LICENSE file for details.

Community & Support​


Built with ❀️ by Yehor Brodskiy