Documentation
¶
Overview ¶
Package fabric is a Matter v1.1 bridge stack. Subpackages:
- bootid/ process-lifetime UniqueID salt (rotation off by default)
- bridge/ the composition unit: topology assembly, IM dispatcher wiring, UDP listener, mDNS advertisement — what a host starts
- cluster/ cluster protocol impls (wire format only)
- commissioning/ on-network discovery, attestation, fabric join
- conformance/ golden-vector regression + load + chip-tool smoke tests
- contract/ the port contracts a host implements to expose a device
- diagevent/ bounded in-memory trace of events explaining a failed pairing
- eligibility/ candidate list for a host's bridging allowlist UI
- endpoint/ endpoint topology assembler
- im/ Interaction Model
- mdns/ DNS-SD operational + commissionable advertisement
- parity/ embedded matter.js HEAD schema snapshot for parity tests
- schema/ typed Go lookups over the parity/ snapshot (generated)
- secure/ Spake2+ (PASE), Sigma (CASE), session keys, AES-CCM, DAC/PAI/PAA chain validation (secure/attestation/)
- store/ fabric / NOC / shared-secrets persistence
- tlv/ TLV codec (Matter Core Spec §A.7)
- transport/ UDP/IPv6, MRP, message framing
Architecture: rich model, dumb bridge — this module owns the Matter wire format only. Per-device cluster projection lives on the host's own types, which reach the bridge through the source-surface interfaces in github.com/SukramJ/go-fabric/contract.
Directories
¶
| Path | Synopsis |
|---|---|
|
ble
|
|
|
bluez
module
|
|
|
Package bootid exposes a process-lifetime 16-byte random value that can optionally be mixed into Matter UniqueID derivations.
|
Package bootid exposes a process-lifetime 16-byte random value that can optionally be mixed into Matter UniqueID derivations. |
|
Package bridge orchestrates the Matter bridge runtime: endpoint topology assembly, IM dispatcher wiring, UDP listener, and mDNS advertisement.
|
Package bridge orchestrates the Matter bridge runtime: endpoint topology assembly, IM dispatcher wiring, UDP listener, and mDNS advertisement. |
|
bridgetest
Package bridgetest provides the affordances a test outside package bridge needs to put a bridge.Bridge into a chosen state without sending anything over the wire.
|
Package bridgetest provides the affordances a test outside package bridge needs to put a bridge.Bridge into a chosen state without sending anything over the wire. |
|
Package cluster contains Matter cluster server implementations that the bridge attaches to assembled endpoints.
|
Package cluster contains Matter cluster server implementations that the bridge attaches to assembled endpoints. |
|
alarm
Package alarm contains the Matter SmokeCoAlarm cluster server (0x005C), the one mandatory application cluster of the SmokeCoAlarm device type (0x0076).
|
Package alarm contains the Matter SmokeCoAlarm cluster server (0x005C), the one mandatory application cluster of the SmokeCoAlarm device type (0x0076). |
|
closure
Package closure contains the Matter ClosureControl cluster server (0x0104) for the Positioning + Ventilation feature profile.
|
Package closure contains the Matter ClosureControl cluster server (0x0104) for the Positioning + Ventilation feature profile. |
|
core
Package core hosts the Matter cluster servers that every bridge endpoint (or the root endpoint specifically) mandates per Matter Core Specification 1.6.1.
|
Package core hosts the Matter cluster servers that every bridge endpoint (or the root endpoint specifically) mandates per Matter Core Specification 1.6.1. |
|
cover
Package cover contains the Matter WindowCovering cluster server (0x0102) for the position-aware lift feature profile.
|
Package cover contains the Matter WindowCovering cluster server (0x0102) for the position-aware lift feature profile. |
|
fan
Package fan contains the Matter FanControl cluster server (0x0202), the mandatory application cluster of the Fan (0x002B), AirPurifier (0x002D) and ExtractorHood (0x007A) device types.
|
Package fan contains the Matter FanControl cluster server (0x0202), the mandatory application cluster of the Fan (0x002B), AirPurifier (0x002D) and ExtractorHood (0x007A) device types. |
|
filter
Package filter contains one server for the Matter ResourceMonitoring cluster family, instantiated for the two derivations the AirPurifier and ExtractorHood device types offer: HepaFilterMonitoring (0x0071) and ActivatedCarbonFilterMonitoring (0x0072).
|
Package filter contains one server for the Matter ResourceMonitoring cluster family, instantiated for the two derivations the AirPurifier and ExtractorHood device types offer: HepaFilterMonitoring (0x0071) and ActivatedCarbonFilterMonitoring (0x0072). |
|
levelcontrol
Package levelcontrol contains the Matter LevelControl cluster server (0x0008) — the cluster Matter offers for a characteristic that moves along a continuous scale, as against the labelled choices of ModeSelect.
|
Package levelcontrol contains the Matter LevelControl cluster server (0x0008) — the cluster Matter offers for a characteristic that moves along a continuous scale, as against the labelled choices of ModeSelect. |
|
light
Package light provides standalone Matter cluster-server implementations for light device types (OnOffLight, DimmableLight, ColorTemperatureLight, ExtendedColorLight).
|
Package light provides standalone Matter cluster-server implementations for light device types (OnOffLight, DimmableLight, ColorTemperatureLight, ExtendedColorLight). |
|
lock
Package lock contains the standalone DoorLock cluster server for the Matter bridge.
|
Package lock contains the standalone DoorLock cluster server for the Matter bridge. |
|
measurement
Package measurement contains generic, Source-driven cluster server implementations for the read-only Matter measurement clusters (Temperature, Humidity, Illuminance, Pressure, Flow, BooleanState, OccupancySensing, AirQuality).
|
Package measurement contains generic, Source-driven cluster server implementations for the read-only Matter measurement clusters (Temperature, Humidity, Illuminance, Pressure, Flow, BooleanState, OccupancySensing, AirQuality). |
|
modebase
Package modebase contains one server for the Matter ModeBase cluster family, instantiated for the derivations the appliance device types use: LaundryWasherMode (0x0051, LaundryWasher and LaundryDryer), RvcRunMode (0x0054, mandatory on RoboticVacuumCleaner), RvcCleanMode (0x0055) and DishwasherMode (0x0059).
|
Package modebase contains one server for the Matter ModeBase cluster family, instantiated for the derivations the appliance device types use: LaundryWasherMode (0x0051, LaundryWasher and LaundryDryer), RvcRunMode (0x0054, mandatory on RoboticVacuumCleaner), RvcCleanMode (0x0055) and DishwasherMode (0x0059). |
|
modeselect
Package modeselect contains the Matter ModeSelect cluster server (0x0050) — the cluster Matter offers for a characteristic that is set to one of several predefined, labelled values rather than to a number on a continuous scale.
|
Package modeselect contains the Matter ModeSelect cluster server (0x0050) — the cluster Matter offers for a characteristic that is set to one of several predefined, labelled values rather than to a number on a continuous scale. |
|
onoff
Package onoff carries the OnOff cluster's Matter identity for every projection that exposes it.
|
Package onoff carries the OnOff cluster's Matter identity for every projection that exposes it. |
|
opstate
Package opstate contains the Matter OperationalState cluster server (0x0060) and its derived RvcOperationalState (0x0061): the state machine of a laundry washer, laundry dryer or dishwasher, and of a robotic vacuum cleaner.
|
Package opstate contains the Matter OperationalState cluster server (0x0060) and its derived RvcOperationalState (0x0061): the state machine of a laundry washer, laundry dryer or dishwasher, and of a robotic vacuum cleaner. |
|
pump
Package pump contains the Matter PumpConfigurationAndControl cluster server (0x0200), the cluster the Pump device type (0x0303) mandates next to OnOff.
|
Package pump contains the Matter PumpConfigurationAndControl cluster server (0x0200), the cluster the Pump device type (0x0303) mandates next to OnOff. |
|
spec
Package spec is the runtime half of the generated cluster definitions: the types a generated definition is made of, and what a cluster server derives from one definition plus the host's declared features and optional elements.
|
Package spec is the runtime half of the generated cluster definitions: the types a generated definition is made of, and what a cluster server derives from one definition plus the host's declared features and optional elements. |
|
spec/activatedcarbonfiltermonitoring
Package activatedcarbonfiltermonitoring is the generated definition of the Matter ActivatedCarbonFilterMonitoring cluster (0x0072, revision 1, derived from ResourceMonitoring), from the matter.js model at 85cf664 (Matter 1.6.1).
|
Package activatedcarbonfiltermonitoring is the generated definition of the Matter ActivatedCarbonFilterMonitoring cluster (0x0072, revision 1, derived from ResourceMonitoring), from the matter.js model at 85cf664 (Matter 1.6.1). |
|
spec/dishwashermode
Package dishwashermode is the generated definition of the Matter DishwasherMode cluster (0x0059, revision 3, derived from ModeBase), from the matter.js model at 85cf664 (Matter 1.6.1).
|
Package dishwashermode is the generated definition of the Matter DishwasherMode cluster (0x0059, revision 3, derived from ModeBase), from the matter.js model at 85cf664 (Matter 1.6.1). |
|
spec/hepafiltermonitoring
Package hepafiltermonitoring is the generated definition of the Matter HepaFilterMonitoring cluster (0x0071, revision 1, derived from ResourceMonitoring), from the matter.js model at 85cf664 (Matter 1.6.1).
|
Package hepafiltermonitoring is the generated definition of the Matter HepaFilterMonitoring cluster (0x0071, revision 1, derived from ResourceMonitoring), from the matter.js model at 85cf664 (Matter 1.6.1). |
|
spec/laundrywashermode
Package laundrywashermode is the generated definition of the Matter LaundryWasherMode cluster (0x0051, revision 3, derived from ModeBase), from the matter.js model at 85cf664 (Matter 1.6.1).
|
Package laundrywashermode is the generated definition of the Matter LaundryWasherMode cluster (0x0051, revision 3, derived from ModeBase), from the matter.js model at 85cf664 (Matter 1.6.1). |
|
spec/pumpconfigurationandcontrol
Package pumpconfigurationandcontrol is the generated definition of the Matter PumpConfigurationAndControl cluster (0x0200, revision 5), from the matter.js model at 85cf664 (Matter 1.6.1).
|
Package pumpconfigurationandcontrol is the generated definition of the Matter PumpConfigurationAndControl cluster (0x0200, revision 5), from the matter.js model at 85cf664 (Matter 1.6.1). |
|
spec/rvccleanmode
Package rvccleanmode is the generated definition of the Matter RvcCleanMode cluster (0x0055, revision 5, derived from ModeBase), from the matter.js model at 85cf664 (Matter 1.6.1).
|
Package rvccleanmode is the generated definition of the Matter RvcCleanMode cluster (0x0055, revision 5, derived from ModeBase), from the matter.js model at 85cf664 (Matter 1.6.1). |
|
spec/rvcrunmode
Package rvcrunmode is the generated definition of the Matter RvcRunMode cluster (0x0054, revision 4, derived from ModeBase), from the matter.js model at 85cf664 (Matter 1.6.1).
|
Package rvcrunmode is the generated definition of the Matter RvcRunMode cluster (0x0054, revision 4, derived from ModeBase), from the matter.js model at 85cf664 (Matter 1.6.1). |
|
spec/spectest
Package spectest holds the parity assertions every generated cluster definition, and every server built on one, is checked with: the definition against the matter.js snapshot it was generated from (CheckDefinition), a server's lists, globals, privileges and read-only writes against the definition's conformance (CheckServer), and the TLV round trip of generated payloads (RoundTrip & co).
|
Package spectest holds the parity assertions every generated cluster definition, and every server built on one, is checked with: the definition against the matter.js snapshot it was generated from (CheckDefinition), a server's lists, globals, privileges and read-only writes against the definition's conformance (CheckServer), and the TLV round trip of generated payloads (RoundTrip & co). |
|
thermo
Package thermo provides the Matter Thermostat cluster server (0x0201).
|
Package thermo provides the Matter Thermostat cluster server (0x0201). |
|
transition
Package transition is the module's port of matter.js's attribute transition engine (packages/node/src/behavior/Transitions.ts): it moves one or more numeric attributes of one cluster instance towards a target over time, in steps, and computes the RemainingTime the LevelControl and ColorControl clusters report while it does.
|
Package transition is the module's port of matter.js's attribute transition engine (packages/node/src/behavior/Transitions.ts): it moves one or more numeric attributes of one cluster instance towards a target over time, in steps, and computes the RemainingTime the LevelControl and ColorControl clusters report while it does. |
|
valve
Package valve contains the Matter ValveConfigurationAndControl cluster server (0x0081) for a valve that opens and closes without a level axis.
|
Package valve contains the Matter ValveConfigurationAndControl cluster server (0x0081) for a valve that opens and closes without a level axis. |
|
wire
Package wire holds the TLV codecs for Matter application-cluster command payloads.
|
Package wire holds the TLV codecs for Matter application-cluster command payloads. |
|
Package commissioning orchestrates Matter on-network commissioning from the PASE handshake through NOC installation.
|
Package commissioning orchestrates Matter on-network commissioning from the PASE handshake through NOC installation. |
|
Package conformance houses the Matter conformance suite for go-fabric — golden-vector regression tests, load tests, and the chip-tool subprocess smoke harness.
|
Package conformance houses the Matter conformance suite for go-fabric — golden-vector regression tests, load tests, and the chip-tool subprocess smoke harness. |
|
Package contract holds the port contracts between a host's domain model and the Matter bridge: the interfaces a data point implements to materialise as a bridged endpoint, the cluster-server surface the bridge dispatches through, and the measurement / eligibility classifications the host computes once and the bridge consumes.
|
Package contract holds the port contracts between a host's domain model and the Matter bridge: the interfaces a data point implements to materialise as a bridged endpoint, the cluster-server surface the bridge dispatches through, and the measurement / eligibility classifications the host computes once and the bridge consumes. |
|
Package diagevent keeps a bounded, in-memory trace of the Matter events that explain a failed pairing.
|
Package diagevent keeps a bounded, in-memory trace of the Matter events that explain a failed pairing. |
|
Package eligibility answers two Matter-side questions that every host bridging to Matter has to answer the same way: what will Matter make of this source, and what will the ecosystem on the other end of the fabric make of the result.
|
Package eligibility answers two Matter-side questions that every host bridging to Matter has to answer the same way: what will Matter make of this source, and what will the ecosystem on the other end of the fabric make of the result. |
|
Package endpoint turns flat endpoint descriptions into the Matter endpoint topology the bridge advertises to commissioners.
|
Package endpoint turns flat endpoint descriptions into the Matter endpoint topology the bridge advertises to commissioners. |
|
endpointtest
Package endpointtest provides the endpoint-level scaffolding a test needs to stand a bridge up: an in-memory endpoint.Store and a snapshotter over an empty fleet — and AssertDeviceTypeConformance, which holds a host's assembled topology to its device types.
|
Package endpointtest provides the endpoint-level scaffolding a test needs to stand a bridge up: an in-memory endpoint.Store and a snapshotter over an empty fleet — and AssertDeviceTypeConformance, which holds a host's assembled topology to its device types. |
|
sqlitestore
Package sqlitestore is a persistent endpoint.Store over SQLite.
|
Package sqlitestore is a persistent endpoint.Store over SQLite. |
|
examples
|
|
|
reference-bridge
command
Command reference-bridge is a runnable Matter bridge assembled only from go-fabric's public API.
|
Command reference-bridge is a runnable Matter bridge assembled only from go-fabric's public API. |
|
Package groups is the node's operational view of group communication: for every fabric, the group key sets in derived form (operational group keys, privacy keys, group session ids), the GroupKeyMap that binds a group to a key set, the group table that names the local endpoints of each group, the Groupcast cluster's per-group properties (multicast address policy, auxiliary-ACL flag), and the replay-protection state of received group messages.
|
Package groups is the node's operational view of group communication: for every fabric, the group key sets in derived form (operational group keys, privacy keys, group session ids), the GroupKeyMap that binds a group to a key set, the group table that names the local endpoints of each group, the Groupcast cluster's per-group properties (multicast address policy, auxiliary-ACL flag), and the replay-protection state of received group messages. |
|
Package im implements the Matter Interaction Model per Matter Core Specification §10.6.
|
Package im implements the Matter Interaction Model per Matter Core Specification §10.6. |
|
subscription
Package subscription implements the Matter subscription state machine layered on top of the im message codecs.
|
Package subscription implements the Matter subscription state machine layered on top of the im message codecs. |
|
internal
|
|
|
bridgeseam
Package bridgeseam carries the one-way seam through which the bridge/bridgetest support package reaches bridge internals.
|
Package bridgeseam carries the one-way seam through which the bridge/bridgetest support package reaches bridge internals. |
|
channelseam
Package channelseam carries the one-way seam through which the bridge reaches the one piece of secure-session state that is written by the wire and by nothing else: the anchor of the session's inbound MRP duplicate-detection window.
|
Package channelseam carries the one-way seam through which the bridge reaches the one piece of secure-session state that is written by the wire and by nothing else: the anchor of the session's inbound MRP duplicate-detection window. |
|
chipdm
Package chipdm cross-checks the matter.js schema snapshot (parity/schema.json) against connectedhomeip's spec-derived data model (data_model/<version>/clusters/*.xml, device_types/*.xml) — the model the CSA's Python certification cases judge a device against.
|
Package chipdm cross-checks the matter.js schema snapshot (parity/schema.json) against connectedhomeip's spec-derived data model (data_model/<version>/clusters/*.xml, device_types/*.xml) — the model the CSA's Python certification cases judge a device against. |
|
paritytest
Package paritytest is the shared support of the cluster packages' *_parity_matterjs_test.go files: the cluster entries of parity/schema.json, the matter.js HEAD pin, and one evaluator for the matter.js conformance expressions those tests check a server's attribute, command and event lists against.
|
Package paritytest is the shared support of the cluster packages' *_parity_matterjs_test.go files: the cluster entries of parity/schema.json, the matter.js HEAD pin, and one evaluator for the matter.js conformance expressions those tests check a server's attribute, command and event lists against. |
|
Package mdns advertises the Matter bridge over mDNS / DNS-SD per Matter Core Spec §4.3.
|
Package mdns advertises the Matter bridge over mDNS / DNS-SD per Matter Core Spec §4.3. |
|
Package parity provides the matter.js HEAD schema snapshot to all matter-side parity tests in one embed location.
|
Package parity provides the matter.js HEAD schema snapshot to all matter-side parity tests in one embed location. |
|
Package schema exposes typed Go lookups for Matter cluster and device-type metadata extracted from matter.js HEAD.
|
Package schema exposes typed Go lookups for Matter cluster and device-type metadata extracted from matter.js HEAD. |
|
script
|
|
|
clustergen
command
Command clustergen generates cluster definitions from the resolved layer of parity/schema.json (the matter.js model extract): one package per cluster under cluster/spec/, holding the cluster's ids, typed enums, bitmaps and structs with their TLV codecs, the command and event payloads, the spec.Cluster definition the cluster/spec runtime works from, and a generated test that holds the definition against the snapshot and round-trips every codec.
|
Command clustergen generates cluster definitions from the resolved layer of parity/schema.json (the matter.js model extract): one package per cluster under cluster/spec/, holding the cluster's ids, typed enums, bitmaps and structs with their TLV codecs, the command and event payloads, the spec.Cluster definition the cluster/spec runtime works from, and a generated test that holds the definition against the snapshot and round-trips every codec. |
|
coverfloor
command
Package main implements the per-package statement-coverage floor for go-fabric.
|
Package main implements the per-package statement-coverage floor for go-fabric. |
|
reachability
command
Package main implements the exported-API reachability analyzer for go-fabric.
|
Package main implements the exported-API reachability analyzer for go-fabric. |
|
secure
|
|
|
aesccm
Package aesccm implements AES-CCM-128 with a 13-byte nonce and a 16-byte tag — the AEAD primitive Matter uses for Secure Channel frame encryption per Matter Core Specification §4.4.3.
|
Package aesccm implements AES-CCM-128 with a 13-byte nonce and a 16-byte tag — the AEAD primitive Matter uses for Secure Channel frame encryption per Matter Core Specification §4.4.3. |
|
attestation
Package attestation builds the Device Attestation chain (PAA → PAI → DAC) and the Certification Declaration (CD) the bridge presents to commissioners.
|
Package attestation builds the Device Attestation chain (PAA → PAI → DAC) and the Certification Declaration (CD) the bridge presents to commissioners. |
|
channel
Package channel implements the Matter Secure Channel session wrapper per Matter Core Specification §4.4.3.
|
Package channel implements the Matter Secure Channel session wrapper per Matter Core Specification §4.4.3. |
|
mattercert
Package mattercert decodes and verifies Matter Operational Certificates (NOC, ICAC, RCAC) per Matter Core Specification §6.5.
|
Package mattercert decodes and verifies Matter Operational Certificates (NOC, ICAC, RCAC) per Matter Core Specification §6.5. |
|
operational
Package operational wires the CASE handshake (Sigma) into the secure-channel session layer.
|
Package operational wires the CASE handshake (Sigma) into the secure-channel session layer. |
|
setup
Package setup encodes Matter Onboarding Payloads per Matter Core Specification 1.5.1 §5.1 (Manual Pairing Code) and §5.7 (QR Code Onboarding Payload).
|
Package setup encodes Matter Onboarding Payloads per Matter Core Specification 1.5.1 §5.1 (Manual Pairing Code) and §5.7 (QR Code Onboarding Payload). |
|
sigma
Package sigma implements Matter CASE (Certificate-Authenticated Session Establishment) per Matter Core Specification §4.13.
|
Package sigma implements Matter CASE (Certificate-Authenticated Session Establishment) per Matter Core Specification §4.13. |
|
spake2
Package spake2 implements SPAKE2+ over P-256 per Matter Core Specification §3.10 (which itself profiles RFC 9383).
|
Package spake2 implements SPAKE2+ over P-256 per Matter Core Specification §3.10 (which itself profiles RFC 9383). |
|
Package store persists the Matter bridge's operational state: fabrics, node identities (NOC chain + private key + IPK), group keys, and access-control lists.
|
Package store persists the Matter bridge's operational state: fabrics, node identities (NOC chain + private key + IPK), group keys, and access-control lists. |
|
Package tlv implements the Matter TLV (Type-Length-Value) codec per Matter Core Specification §A.7.
|
Package tlv implements the Matter TLV (Type-Length-Value) codec per Matter Core Specification §A.7. |
|
transport
|
|
|
message
Package message implements the Matter Message Header and Protocol Header framing per Matter Core Specification §4.4.
|
Package message implements the Matter Message Header and Protocol Header framing per Matter Core Specification §4.4. |
|
mrp
Package mrp implements the Matter Message Reliability Protocol per Matter Core Specification §4.12.
|
Package mrp implements the Matter Message Reliability Protocol per Matter Core Specification §4.12. |
|
udp
Package udp implements the Matter UDP transport per Matter Core Specification §4.3.
|
Package udp implements the Matter UDP transport per Matter Core Specification §4.3. |
Click to show internal directories.
Click to hide internal directories.