SDKs · Go
Go — Runtime support
Declarative runtime support matrix for matter-go. Verified runtimes run the full conformance corpus in CI; supported runtimes pass a smoke subset; experimental runtimes ship behind a build tag.
Last updated
Runtime support matrix
Where matter-go runs, and what conformance guarantees come with each runtime.
TL;DR. Go 1.22 and Go 1.23 are verified — the full SDK conformance corpus runs against each on every commit. TinyGo and WASM are experimental and shipped behind build tags.
Support tiers
Three tiers map directly onto the canonical contract published from @matter/sdk-conformance:
| Tier | What it means |
|---|---|
| verified | Full SDK conformance corpus runs in CI on every commit. Bugs treated as P0. |
| supported | A smoke subset of the corpus runs in CI. Bugs treated as P1. Users should pin a known-good version. |
| experimental | Best-effort. Signatures and behaviour may change between minor releases. No CI gate. |
The tier classification is data — sourced from RUNTIME_MATRICES.go in packages/sdk-conformance. When this table and the data drift, CI fails.
Matrix
| Runtime | Version | Tier | Notes |
|---|---|---|---|
| Go | 1.22 | verified | Minimum supported. Full conformance corpus runs in CI. |
| Go | 1.23 | verified | Current release. Full corpus runs in CI. |
| TinyGo | ≥ 0.32 | experimental | Limited stdlib; signing + transport are tested. |
| GopherJS / WASM | current | experimental | Uses host fetch; only public-key flows tested. |
What the SDK guarantees per tier
verified — Every behaviour described in error handling, pagination, and webhooks works the same way it does in the type definitions. Streaming, retries, and idempotency replay are exercised against a fixture API on each commit.
supported — Authentication, request/response, error classes, and pagination work. Streaming may degrade on platforms without a native HTTP/2 implementation. Retries function but the exact backoff curve may be implementation-defined.
experimental — The package compiles and authenticates. Beyond that, expect rough edges. Open an issue if something breaks; we will not block a release on it.
Context cancellation
matter-go honours context.Context cancellation throughout. A canceled context propagates through retries — a context.Canceled short-circuits the retry loop and is never wrapped as a retryable infrastructure error. Behaviour is asserted by the SDK conformance corpus on every commit.
CI matrix
The Go SDK's CI matrix runs the conformance corpus against the verified row set on every PR. The matrix is wired in .github/workflows/sdk-go.yml and pulls runtime versions directly from RUNTIME_MATRICES.go. Adding a runtime to the verified tier is a code change, not a doc change.
See also
- SDK conformance harness — the contracts every SDK satisfies
- Error handling — the cross-SDK error class hierarchy
- Webhooks — streaming + retry guarantees