Pick a shape
Choose by how the thing is called, not by language.
Reading stdin, writing stdout — a filter, parser, formatter? →
commandA typed API the host or another component calls in-process? →
componentA
bytes → bytestransform run in a tight loop (frames, samples)? →kernelA multi-step procedure with no compiled binary? →
taskAn external system you want to query? →
federationSomething WASM genuinely can't do (native threads, GPU)? →
posix
When unsure, start with command — it's the default, the simplest, and the most
portable. You can always promote to a richer shape later.
#+TOOLKIT: my-tool
#+EXEC: command
#+TRUST: first-party
#+BUILD_LANG: rust
#+BUILD_SRC: path:src
The shapes in depth: The six shapes
Reach the host: The Dock SDK