cargo-node icon indicating copy to clipboard operation
cargo-node copied to clipboard

A cargo sub command to build, run and deploy rust wasm applications as browser, electron or cordova app.

moved to https://github.com/morphUI/cargo_node

cargo-node

Build and test MIT licensed

A cargo sub command to build, run and deploy rust wasm applications as browser, electron or cordova app.

Features

Currently you could use the following commands:

  • Build your project:
cargo node build
  • Run your project:
cargo node run
  • Deploy your project:
cargo node deploy

You could use the additional flags on the command line:

  • Define the target platform (electron | browser | android) default is electron:
cargo node run --target browser
  • Switch to release build:
cargo node deploy --release
  • Build, run or deploy an example:
cargo node run --example my_example

Installation

cargo install cargo-node

Before you could use cargo node you have to install npm version 6.9.0. It is included in the Node.js version 10.16.3. You could download it from https://nodejs.org/dist/v10.16.3/.

Rust's cargo is presumed. All other dependencies of cargo node will be installed automatic.

Node.toml

cargo node provides an optional configuration file which you can put next to cargo's [Cargo.toml].

Example:

[[apps]]
# Name of the executable
name = "my app"
# Defines the window width of the electron window
width = 300
# Defines the height of the electron window
height = 100
# Path of the assets folder with images, fonts, ...
assets = "assets/"
# Add custom fonts to your project
 [[apps.fonts]]
    font_family = "My Font"
    src = "fonts/MyFont.ttf"

Tools under the hood

  • cargo-web (Apache-2.0): https://github.com/koute/cargo-web used to build your rust application as client-side web application
  • npm (The Artistic License 2.0): https://github.com/npm/cli used to install and handle electron, electron-packer and cordova
  • electron (MIT): https://github.com/electron/electron used to build, run desktop applications for Linux, macOS and Windows
  • electron-packager (BSD-2-Clause): https://github.com/electron/electron-packager used to deploy desktop applications for Linux, macOS and Windows
  • cordova (Apache-2.0): https://github.com/apache/cordova-cli used to build, run mobile applications Android
  • wasm2js (Apache-2.0): https://github.com/WebAssembly/binaryen used to convert the wasm file to javascript as workaround for wasm loading on Android

License

Licensed under MIT license (LICENSE).