Skip to content

v0.7.3 — wstd gRPC transport, go family app channel without HTTP

Choose a tag to compare

@sideeffffect sideeffffect released this 15 Oct 00:36

Provider-internals release: a new gRPC transport and a new app channel for the go family. The WIT interfaces have not changed since 0.7.1. Only the package version moves to 0.7.3, because the release tag must match it. Apps do not change.

wasi-gRPC: wstd transport, tonic 0.14 (#14)

  • wasi-grpc-outbound now sends tonic requests through a small tower::Service over wstd's wasi:http client. It is the same stack as wasi-http-outbound.
  • wasi-grpc, wasi-hyperium and spin-executor are removed. The artifact has no Spin crate dependency.
  • HTTP/2 is still the host's job. Spin ≥ 3.4 still needs SPIN_OUTBOUND_H2C_PRIOR_KNOWLEDGE. wasmCloud v2 sends every application/grpc request over HTTP/2, so it can now run the provider too (no E2E yet).
  • tonic/prost 0.13 → 0.14 for both gRPC providers. The checked-in codegen is regenerated.

go family: the runtime reaches the app with Go calls (#15)

  • The embedded Dapr runtime no longer talks to the app over HTTP on an in-memory pipe. It runs in gRPC app-protocol mode with two in-process objects: an AppCallback "connection" for pub/sub, bulk pub/sub, input bindings and subscription lists, and an app channel for invocation, jobs, actors and health.
  • No HTTP encoding, JSON or CloudEvent re-encoding on delivery. The 700-line HTTP router is gone.
  • Input-binding replies now work in the go family: Dapr applies to, data and concurrency from the reply.
  • No Dapr patch: the objects are wired in after runtime.FromConfig, with startup checks against the pinned Dapr version.
  • Caveats: at most 100 concurrent AppCallback calls; Dapr's app HTTP middleware and app API token no longer apply.

Docs and repo

  • README: wasmCloud v2 as a possible gRPC host; actor hosting and input-binding replies in the go family; three real-Dapr E2Es.
  • Wiki: who-is-who of wasi-grpc, wstd, Spin and wasmCloud; gRPC in both directions per host.
  • Generated code is marked linguist-generated, and generated Go has the standard generated-code header.