# πŸ¦€πŸ•ΈοΈ `wasm-pack-template`

A template for kick starting a Rust and WebAssembly project using
[`wasm-pack`](https://github.com/rustwasm/wasm-pack).

[**πŸ“š Read this template tutorial! πŸ“š**][template-docs]

This template is designed for compiling Rust libraries into WebAssembly and
publishing the resulting package to NPM.

Be sure to check out [other `wasm-pack` tutorials online][tutorials] for other
templates and usages of `wasm-pack`.

[tutorials]: https://rustwasm.github.io/docs/wasm-pack/tutorials/index.html
[template-docs]: https://rustwasm.github.io/docs/wasm-pack/tutorials/npm-browser-packages/index.html

## 🚴 Usage

### πŸ‘ Use `cargo generate` to Clone this Template

[Learn more about `cargo generate` here.](https://github.com/ashleygwilliams/cargo-generate)

```
cargo generate --git https://github.com/rustwasm/wasm-pack-template.git --name my-project
cd my-project
```

### πŸ› οΈ Build with `wasm-pack build`

```
wasm-pack build
```

### πŸ”¬ Test in Headless Browsers with `wasm-pack test`

```
wasm-pack test --headless --firefox
```

### 🎁 Publish to NPM with `wasm-pack publish`

```
wasm-pack publish
```

## πŸ”‹ Batteries Included

* [`wasm-bindgen`]https://github.com/rustwasm/wasm-bindgen for communicating
  between WebAssembly and JavaScript.
* [`console_error_panic_hook`]https://github.com/rustwasm/console_error_panic_hook
  for logging panic messages to the developer console.
* [`wee_alloc`]https://github.com/rustwasm/wee_alloc, an allocator optimized
  for small code size.