Repository navigation
v0.7.1 — go provider family: Dapr embedded, no sidecar
A third provider family: Dapr itself, embedded in the component. No sidecar, and no HTTP or gRPC between the app and Dapr. The dapr-wasm-components:interfaces WIT package does not change since v0.7.0; the version moves to 0.7.1 only to tag this release. Apps need no change.
New
dapr-wasm-components-go-outbound(Go, built withcomponentize-go). It contains the Dapr runtime that daprd runs (github.com/dapr/daprv1.18.7). Every building block is a direct call into that runtime. Configure it with daprd's own flags as the program arguments.dapr-wasm-components-go-inbound(Rust, 117 KB). A small loop (wasi:cli/run) that takes Dapr's deliveries fromgo-outboundand calls the app's*-callbackexports. The two components are a pair; the composed app has one Go runtime and one Dapr runtime.compose.sh --out gocomposes the pair. Run the result withwasmtime run -S inherit-network -S tcp -S allow-ip-name-lookup ... composed.wasm --app-id my-app --resources-path /resources.- Values are raw bytes, so binary state roundtrips byte-exact.
e2e/tests/go.rsruns the same real-Dapr scenario as the sidecar suites (two runtimes, Redis pub/sub, Consul name resolution). CI runs it in the newgo-e2ejob.
Limits
- Self-invocation does not work. The app is one long-running instance, so it cannot receive a call while it handles another. Invoking its own app id fails at once with
app-unreachable. A call cycle A → B → A hangs unless you set a Dapr resiliency timeout. - Size:
go-outboundis about 264 MB (the Dapr runtime plus component SDKs). The first wasmtime compile takes about 30 s. - Name resolution: mDNS cannot work in Wasm (no UDP multicast). Use Consul (or another resolver) and set
DAPR_HOST_IP. - Dapr's
HotReloadfeature is off: WASI cannot watch files. - Not every Dapr component is included: sqlite, Pulsar, Dubbo and some Azure components do not build for Wasm.
- Actors, workflow and jobs are implemented but not yet covered by the real-Dapr test (it does not start placement and scheduler).