Bifrost crates
┌─────────────────────┐ ┌─────────────────────┐
│ Bifrost │ │ bifrost-frontend │
└──┬────┬───────┬─┬─┬─┘ └┬────────────┬───────┘
│ │ │ │ └────┼────────────┼─────┐
│ │ │ └──────┼──────┐ │ │
│ ▼ ▼ │ ▼ ▼ │
│ ┌─────┐ ┌─────┐ │ ┌──────────────┐ │
│ │ z2m │ │ zcl │ │ │ bifrost-api │ │
│ └──┬──┘ └──┬──┘ │ └──┬───────┬───┘ │
│ │ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼ ▼
┌─────────────────────────────────┐ ┌─────────┐
│ hue │ │ svc │
└─────────────────────────────────┘ └─────────┘
hue: Philips Hue data models
Low-level data models for Philips Hue API requests, entertainment mode streams, and Hue-specific Zigbee encodings.
zcl: Zigbee Cluster Library
Serializing and deserializing support for ZCL (Zigbee Cluster Library) frames. Rudimentary support for standard frames, and cutting-edge support for Hue-specific frames.
z2m: Zigbee2MQTT interface
Rust code for interfacing with Zigbee2MQTT. Serializing and deserializing support for z2m messages.
svc: Service management
Crate to manage, control and communicate with running "services".
These services (rust functions) are managed through service manager; a minimal systemd-inspired service "daemon".
Since all "services" controlled by svc are rust functions, these are
not system services in the classical sense.
bifrost-api: Bifrost API
Data structures and types that define the Bifrost-specific API supported by the
Bifrost server. This is used by bifrost and bifrost-frontend to have a
well-defined interface between them, but can be used by any program that wants
to communicate with a Bifrost server.
bifrost-frontend: Dioxus web frontend for Bifrost
The Bifrost web frontend, made with Dioxus.
Compiles to a static site (html/css/js/wasm) that communicates with a Bifrost server.