watoots-cli 0.7.1

Command-line interface for watoots: inspect, run, record, and replay WebAssembly component plugins.
# watoots-cli

The `watoots` command line, for the
[watoots](https://crates.io/crates/watoots) plugin host.

```console
$ watoots inspect decoder.wasm -m policy.toml     # what can this plugin do?
$ watoots run decoder.wasm -m policy.toml -c sniff -- '[113, 111, 105, 102]'
$ watoots record decoder.wasm -m policy.toml -c decode -o bug.wave -- "$bytes"
$ watoots replay bug.wave -c decoder.wasm --assert
$ watoots diff deployed.wasm candidate.wasm -m policy.toml
```

- `inspect` is a capability summary -- what the plugin wants, what the policy
  grants, and which imports your application is expected to serve -- not an
  import list, though `--imports` gives you that too.
- `run` calls one export with WAVE arguments, under the policy.
- `record` and `replay` are the record/replay half of the project: a failed
  call's trace is written anyway, because that is the recording worth keeping,
  and `replay --emit-test` turns one into a Rust regression test.
- `diff` previews what `reload` would refuse: a plugin update that wants more
  than the policy grants, or drops an export a caller uses. Non-zero exit, so
  it works as a gate.
- `fuzz` generates type-correct calls from the world's own types and uses
  replay as the oracle; `wit semver-check` is `wasm-tools component
  semver-check`, linked rather than reimplemented.

Install with `cargo install watoots-cli`. The repository's
[README](https://github.com/vchance/watoots#readme) walks through all of it
on a real file-format decoder.

Licensed under Apache-2.0 WITH LLVM-exception.