go-fabric¶
Matter in pure Go, as a library a host application embeds: the device and bridge side — the node a controller commissions, with the cluster servers, OTA and media — and a full commissioner/controller that pairs and drives other nodes. It is a semantic port of matter.js: defaults, constraints, wire shapes and behaviours are mirrored from it, and standing tests hold the port to it. It is not certified by the Connectivity Standards Alliance, and nothing built on it may be described as certified.
Where to start¶
| You want to | Read |
|---|---|
| Put your devices on Matter (a bridge, a gateway, a single device) | Getting started: device, then Host ports |
| Pair and control Matter devices from Go | Getting started: controller |
| Decide whether the module fits your product | Architecture, Security model, matter.js comparison, Certifiability, Roadmap |
| Run it in production | Concurrency, Persistence, the API stability policy |
| Change it | CONTRIBUTING, the parity contract, the decision records |
At a glance¶
- One module, five runtime dependencies, no cgo. (
golang.org/x/toolsingo.modserves only the repository's own tooling.) It builds withCGO_ENABLED=0; SQLite is the pure-Gomodernc.org/sqlite. - Matter 1.6.1 data model, extracted from matter.js at a pinned commit and embedded; 118 served clusters and 79 generated device types.
- Transports: IPv6 (and IPv4) UDP with MRP, TCP for large payloads, DNS-SD. No Thread radio, no Bluetooth on the device side; the commissioner's BLE support is decided and in progress (ADR 0024).
- Proof: connectedhomeip's own certification cases run against the reference daemon in CI, and the module's controller commissions the module's node in-repo. The certifiability report lists every family and its status.
- Licence: Apache-2.0 (since
v0.5.0); see the NOTICE for the matter.js lineage.
The Go API reference is on pkg.go.dev.