fork of https://github.com/rustwasm/wasm-pack for the needs of NextGraph.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
ashley williams 6ed5b00f5b
Merge pull request #367 from rustwasm/i-hope-u-know-what-ur-doing
7 years ago
.github Issue #206: create issue templates 7 years ago
docs fix(homepage): add wasm-pack segment to install button URL 7 years ago
src feat(buildmode): allow --mode force to skip rustc check 7 years ago
tests/all fix(style): appease cargo fmt 7 years ago
.appveyor.yml Add an experimental installer for wasm-pack 7 years ago
.gitignore fix(book): move ignore from book to root dir 7 years ago
.travis.yml feat(website): add landing page 7 years ago
CHANGELOG.md fix(changelog): Passing arbitrary data broken link 7 years ago
CODE_OF_CONDUCT.md feat(coc): add rust coc 7 years ago
CONTRIBUTING.md Add link to help article on setting up a global .gitignore 7 years ago
Cargo.lock chore(deps): cargo update 7 years ago
Cargo.toml feat(lockfiles): Use `Cargo.lock` to identify wasm-bindgen versions 7 years ago
LICENSE-APACHE feat(doc): add licenses 7 years ago
LICENSE-MIT feat(doc): add licenses 7 years ago
README.md doc(rustc): add rustc version req to readme 7 years ago
demo.gif feat(doc): add demo gif to readme 7 years ago

README.md

📦 wasm-pack

Your favorite rust -> wasm workflow tool!

Build Status Build status

This tool seeks to be a one-stop shop for building and working with rust- generated WebAssembly that you would like to interop with JavaScript, in the browser or with Node.js. wasm-pack helps you build and publish rust-generated WebAssembly to the npm registry to be used alongside any other javascript package in workflows that you already use, such as webpack or greenkeeper.

This project is a part of the rust-wasm group. You can find more info by visiting that repo!

demo

🔮 Prerequisities

This project requires Rust 1.30.0 or later.

🎙 Commands

  • init ( DEPRECATED): This command has been deprecated since release 0.5.0, in favor of build. 0.4.2 and previous use this command.
  • build: Generate an npm wasm pkg from a rustwasm crate
  • pack and publish: Create a tarball of your rustwasm pkg and/or publish to a registry

📝 Logging

We generate a wasm-pack.log file if wasm-pack errors on you, and you can customize the log verbosity using the verbosity flag.

Verbosity Result
-v All Info, Warn, and Errors are logged
-vv All Debug, Info, Warn, and Errors are logged
-vvv All Trace, Debug, Info, Warn, and Errors are logged

👯 Contributing

Read our guide on getting up and running for developing wasm-pack, and check out our contribution policy.

Quickstart Guide

  1. Write a crate in Rust.
  2. Add wasm-bindgen to your Cargo.toml:
[lib]
crate-type = ["cdylib"]

[dependencies]
wasm-bindgen = "0.2"
  1. Add this to the top of your src/lib.rs:
extern crate wasm_bindgen;

use wasm_bindgen::prelude::*;
  1. Annotate your public functions with #[wasm_bindgen], for example:
#[wasm_bindgen]
extern {
    pub fn alert(s: &str);
}

#[wasm_bindgen]
pub fn greet(name: &str) {
    alert(&format!("Hello, {}!", name));
}
  1. Install this tool: cargo install wasm-pack
  2. Run wasm-pack build, optionally, pass a path to a dir or a scope (see above for details)
  3. This tool generates files in a pkg dir
  4. To publish to npm, run wasm-pack publish. You may need to login to the registry you want to publish to. You can login using wasm-pack login.