A cargo subcommand for the client-side Web
This cargo subcommand aims to make it easy and convenient to build, develop and deploy client-side Web applications written in Rust.
Donate
Patrons
This software was brought to you thanks to these wonderful people:
- Ben Berman
Thank you!
Features
Currently it supports the following features:
cargo web build
- will build your project using one of Rust's three Web backends:- asm.js using Emscripten (when you pass
--target-asmjs-emscripten
; default) - WebAssembly using Emscripten (when you pass
--target-webasm-emscripten
) - WebAssembly using Rust's native WebAssembly backend (when you pass
--target-webasm
)
- asm.js using Emscripten (when you pass
cargo web test
- will run your tests either under:- Under a headless instance of Google Chrome (default)
- Under Node.js (when you pass
--nodejs
)
cargo web start
- will build your project, start an embedded webserver and will continously rebuild it if necessary.- Will automatically download and install Emscripten for you (if necessary) on the following platforms:
- Linux x86-64
- Linux x86
Before compiling anything you will have to install the corresponding targets
with rustup
yourself:
- For compiling to asmjs through Emscripten:
rustup target add asmjs-unknown-emscripten
- For compiling to WebAssembly through Emscripten:
rustup target add wasm32-unknown-emscripten
- For compiling to WebAssembly through Rust's native backend:
rustup target add wasm32-unknown-unknown
It's also highly recommended that you check out the stdweb crate if you want
to interact with the JavaScript world in your project. (In fact, cargo-web
is what makes it possible to use stdweb
's js!
macro on Rust's native WebAssembly
backend.)
Installation
$ cargo install cargo-web
To upgrade:
$ cargo install --force cargo-web
Or clone and build with $ cargo build --release
then place in your $PATH.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.