_ _ _____ _ _ _
____| | | | / ____| | | | |
__ ____ _ ___ _ __ ___ / ____| | ___ _ _ __| | | (___ | |__ ___| | |
\ \ /\ / / _` / __| '_ ` _ \| | | |/ _ \| | | |/ _` | \___ \| '_ \ / _ \ | |
\ V V / (_| \__ \ | | | | | |____| | (_) | |_| | (_| | ____) | | | | __/ | |
\_/\_/ \__,_|___/_| |_| |_|\_____|_|\___/ \__,_|\__,_| |_____/|_| |_|\___|_|_|
wash
is a bundle of command line tools that, together, form a comprehensive CLI for wasmCloud development. Everything from generating signing keys to a fully interactive REPL environment 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.
cargo install wash-cli
# 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 wasmcloud wash
sudo snap install wash --edge --devmode
brew tap wasmcloud/wasmcloud
brew install wasmcloud wash
nix run github:wasmCloud/wash
wash
has multiple subcommands, each specializing in one specific area of the wasmCloud development process.
Invoke a wasmCloud actor directly with a specified payload. This allows you to test actor handlers without the need to manage capabilities and link definitions for a rapid development feedback loop.
Generate JWTs for actors, capability providers, accounts and operators. Sign actor modules with claims including capability IDs, expiration, and keys to verify identity. Inspect actor modules to view their claims.
Interact directly with a wasmCloud control-interface, allowing you to imperatively schedule actors, providers and modify configurations of a wasmCloud host. Can be used to interact with local and remote control-interfaces.
Manage contents of the local wasmCloud cache. wasmCloud manages a local cache that will avoid redundant fetching of content when possible. drain
allows you to manually clear that cache to ensure you're always pulling the latest versions of actors and providers that are hosted in remote OCI registries.
Generate code from smithy files using weld codegen. This is the primary method of generating actor and capability provider code from .smithy interfaces. Currently has first class support for Rust actors and providers, along with autogenerated HTML documentation.
Generate ed25519 keys for securely signing and identifying wasmCloud entities (actors, providers, hosts). Read more about our decision to use ed25519 keys in our ADR.
Perform lint checks on .smithy models, outputting warnings for best practices with interfaces.
Create new wasmCloud projects from predefined templates. This command is a one-stop-shop for creating new actors, providers, and interfaces for all aspects of your application.
Create, modify and inspect provider archives, a TAR format that contains a signed JWT and OS/Architecture specific binaries for native capability providers.
Push and Pull actors and capability providers to/from OCI compliant registries. Used extensively in our own CI/CD and in local development, where a local registry is used to store your development artifacts.
Perform validation checks on .smithy models, ensuring that your interfaces are valid and usable for codegen and development.
If you have any feature suggestions, find any bugs, or otherwise have a question, please submit an issue here. Forking & submitting Pull Requests are welcome, and the good first issue label is a great way to find a place to start if you're looking to contribute.