83 releases (36 breaking)

new 0.37.0 Nov 9, 2024
0.35.1 Oct 22, 2024
0.29.2 Jun 17, 2024
0.27.0-alpha.1 Mar 18, 2024
0.1.7 Nov 10, 2020

#106 in WebAssembly

Download history 1014/week @ 2024-07-25 563/week @ 2024-08-01 339/week @ 2024-08-08 447/week @ 2024-08-15 677/week @ 2024-08-22 450/week @ 2024-08-29 553/week @ 2024-09-05 640/week @ 2024-09-12 1000/week @ 2024-09-19 1056/week @ 2024-09-26 1114/week @ 2024-10-03 1356/week @ 2024-10-10 2101/week @ 2024-10-17 1168/week @ 2024-10-24 1111/week @ 2024-10-31 2259/week @ 2024-11-07

6,918 downloads per month

Apache-2.0 and LGPL-3.0-or-later

2.5MB
29K SLoC

Latest Release Rust Build Rust Version Contributors Good first issues wash-cli

                                     _                 _    _____ _          _ _
                                ____| |               | |  / ____| |        | | |
 __      ____ _ ___ _ __ ___  / ____| | ___  _   _  __| | | (___ | |__   ___| | |
 \ \ /\ / / _` / __| '_ ` _ \| |    | |/ _ \| | | |/ _` |  \___ \| '_ \ / _ \ | |
  \ V  V / (_| \__ \ | | | | | |____| | (_) | |_| | (_| |  ____) | | | |  __/ | |
   \_/\_/ \__,_|___/_| |_| |_|\_____|_|\___/ \__,_|\__,_| |_____/|_| |_|\___|_|_|

[!WARNING] This crate is being deprecated in favor of wash, where the wash CLI will be published from now on.

Why wash

wash is a bundle of command line tools that, together, form a comprehensive CLI for wasmCloud development. Everything from generating new wasmCloud projects, starting local development infrastructure, interacting with OCI compliant registries, and deploying applications is contained within the subcommands of wash. Our goal with wash is to encapsulate our tools into a single binary to make developing WebAssembly with wasmCloud painless and simple.

Installing wash

Cargo

cargo install --locked wash-cli

If you have cargo-binstall:

cargo binstall wash-cli

Linux (deb/rpm + apt)

# Debian / Ubuntu (deb)
curl -s https://packagecloud.io/install/repositories/wasmcloud/core/script.deb.sh | sudo bash
# Fedora (rpm)
curl -s https://packagecloud.io/install/repositories/wasmcloud/core/script.rpm.sh | sudo bash

sudo apt install wash

Linux (snap)

sudo snap install wash --edge --devmode

Linux (brew)

brew install wasmcloud/wasmcloud/wash

MacOS (brew)

brew install wasmcloud/wasmcloud/wash

Windows (choco)

choco install wash

Nix

nix run github:wasmCloud/wash

Proxy authentication

In a scenario where you are behind a proxy, you can set the HTTP_PROXY and HTTPS_PROXY environment variables to the proxy URL. And if your proxy requires authentication, you can set the WASH_PROXY_USERNAME and WASH_PROXY_PASSWORD environment variables to the username and password, respectively. Since most passwords contain special characters, it's recommended to specify the value for 'WASH_PROXY_PASSWORD' in single quotes.

For example, in a unix environment:

export WASH_PROXY_USERNAME='username'
export WASH_PROXY_PASSWORD='p@ssw0rd'

Using wash

wash has multiple subcommands, each specializing in one specific area of the wasmCloud development process.

Build:
  new          Create a new project from a template
  build        Build (and sign) a wasmCloud component or capability provider
  dev          Start a developer loop to hot-reload a local wasmCloud component
  inspect      Inspect a capability provider or Wasm component for signing information and interfaces
  par          Create, inspect, and modify capability provider archive files

Run:
  up           Bootstrap a local wasmCloud environment
  down         Tear down a local wasmCloud environment (launched with wash up)
  app          Manage declarative applications and deployments (wadm)
  spy          Spy on all invocations a component sends and receives
  ui           Serve a web UI for wasmCloud

Iterate:
  get          Get information about different running wasmCloud resources
  start        Start a component or capability provider
  scale        Scale a component running in a host to a certain level of concurrency
  stop         Stop a component, capability provider, or host
  update       Update a component running in a host to newer image reference
  link         Link one component to another on a set of interfaces
  call         Invoke a simple function on a component running in a wasmCloud host
  label        Label (or un-label) a host with a key=value label pair
  config       Create configuration for components, capability providers and links

Publish:
  pull         Pull an artifact from an OCI compliant registry
  push         Push an artifact to an OCI compliant registry

Configure:
  completions  Generate shell completions for wash
  ctx          Manage wasmCloud host configuration contexts
  drain        Manage contents of local wasmCloud caches
  keys         Utilities for generating and managing signing keys
  claims       Generate and manage JWTs for wasmCloud components and capability providers

Shell auto-complete

wash has support for autocomplete for Zsh, Bash, Fish, and PowerShell. See Completions for instructions for installing autocomplete for your shell.

Contributing to wash

Visit CONTRIBUTING.md for more information on how to contribute to wash project.

Dependencies

~112MB
~2M SLoC