wash - wasmCloud Shell
This skill provides expertise in using the wasmCloud Shell (wash) CLI tool for developing and managing WebAssembly components and wasmCloud applications.
Prerequisites
washversion 2.0.0 or later- Verify version with:
wash --version
Important Notes
Do not use cargo component commands (like cargo component build) when working with wasmCloud projects. Always use wash commands instead:
- Use
wash buildorwash devfor building components - For plugins, build with
wash build --skip-fetch(since wasmcloud:wash interface isn't published)
Core Commands
wash dev
Use wash dev for local development and build loop. This command:
- Automatically rebuilds your component on file changes
- Provides a fast iteration cycle during development
- Watches for changes and recompiles as needed
Example:
wash dev
wash wit update
Use wash wit update when there are mismatched WIT (WebAssembly Interface Types) definitions. This command:
- Updates WIT dependencies to resolve conflicts
- Synchronizes WIT definitions across your project
- Fixes version mismatches in component interfaces
Example:
wash wit update
Common Workflows
Starting a New Project using the HTTP Hello World template
wash new https://github.com/wasmCloud/wasmCloud.git --name http-hello-world --subfolder templates/http-hello-worldcd my-project- Run
wash buildto build the code - Make changes to your code
Expected Component Structure
A modern wash new Rust HTTP component can follow this structure:
|
|-- .wash/
| -- config.yaml
|-- manifests/
| -- workloaddeployment.yaml
|-- src/
| -- lib.rs
|-- wit/
| -- world.wit
|-- Cargo.toml
|-- Cargo.lock
|-- wkg.lock
|-- README.md
Fixing WIT Definition Conflicts
If you encounter errors about mismatched WIT definitions:
- Run
wash wit updateto synchronize definitions - Review the updated WIT files
- Continue with
wash build
Additional Resources
- wash is the primary CLI tool for the wasmCloud ecosystem
- It handles component building, testing, and deployment
- Supports both local development and production workflows
微信扫一扫