Skip to main content


Even with all of wasmCloud's benefits, it still has every developers' least favorite file(s) - the config file. Luckily, we've cut it down to just one file and made it as simple as possible to use.

You can think of wasmcloud.toml as the package.json or Cargo.toml of the wasmCloud ecosystem. It's the main config file for any of your wasmCloud projects. Let's look at an example:

name = "echo"
language = "rust"
type = "actor"
version = "0.1.0"

claims = ["wasmcloud:httpserver"]

cargo_path = "/tmp/cargo"

This is a fairly minimal configuration for a wasmCloud Rust echo actor. It defines everything needed to build and sign the actor, such as which capabilities the actor claims and what language toolchain to use.

Note that cargo_path isn't required. If you're using a standard cargo toolchain you could omit the [rust] section from this file entirely.

wash build

The partner-in-crime to wasmcloud.toml is wash build. This command takes all the options set in the wasmcloud.toml file to build and sign the actor/provider/interface.

See the build docs for more info.

wasmcloud.toml Spec

Common Config

namestringName of the project
versionstringSemantic version of the project
pathstring{pwd}Path to the project directory to determine where built and signed artifacts are output
languageenum[rust, tinygo]Language that actor or provider is written in
typeenum[actor, provider, interface ]Type of wasmcloud artifact that is being generated
wasm_bin_namestring"name" settingExpected name of the wasm module binary that will be generated

Language Config - [tinygo]

tinygo_pathstringwhich tinygoThe path to the tinygo binary

Language Config - [rust]

cargo_pathstringwhich cargoThe path to the cargo binary
target_pathstring./targetPath to cargo/rust's target directory

Type Config - [actor]

claimslist[]The list of provider claims that this actor requires. eg. ["wasmcloud:httpserver", "wasmcloud:blobstore"]
registrystringlocalhost:8080The registry to push to. eg. "localhost:8080"
push_insecurebooleanfalseWhether to push to the registry insecurely
key_directorystring~/.wash/keysThe directory to store the private signing keys in
wasm_targetstringwasm32-unknown-unknownCompile target. Can be one of: wasm32-unknown-unknown, wasm32-wasi-preview1, wasm32-wasi-preview2
call_aliasstringThe call alias of the actor
build_artifactstring/path/to/project/build/{filename}.wasmOptional override path where wash can expect to find the built and unsigned WebAssembly artifact
build_commandstringLanguage specific commandOptional command to run instead of inferring the default language toolchain build command. Supports commands in the format of command ...arg. wash expects that the build command will result in an artifact under the project build folder named either {wasm_bin_name}.wasm if supplied or {name}.wasm otherwise.
destinationstring/path/to/project/build/{filename}_s.wasmFile path to output the destination WebAssembly artifact after building and signing.

Type Config - [provider]

capability_idstringThe capability ID of the provider
vendorstringThe vendor name of the provider

Type Config - [interface]

html_targetstring./htmlDirectory to output HTML
codegen_configstring.Path to codegen.toml file