interface/lib.rs
1//! # Interface Module
2//!
3//! This module acts as the hardware abstraction layer for the Rektal lighting control system.
4//! It is currently responsible for translating the pre-computed internal engine state into
5//! standardized output protocols (such as ArtNet) and broadcasting this data to the physical network.
6//!
7//! **Future Architecture Roadmap:**
8//!
9//! Currently, the interface operates as an internal library module, receiving fully calculated DMX buffers
10//! directly from the engine via `mpsc` channels. In the future, this module will be decoupled into a
11//! fully independent, standalone executable with significantly expanded computational responsibilities.
12//!
13//! Once extracted, the central Rektal kernel will offload the heavy computational lifting. The kernel
14//! will act primarily as a state manager—handling structural show data such as fixture positions, stage-views,
15//! prefixes, and overall cuelist orchestration. This standalone interface daemon will receive these high-level
16//! states over the network and independently calculate the final fixture properties and raw DMX values based
17//! on the active programmer, prefixes, and cuelist states.
18//!
19//! This distributed execution model will ensure seamless scalability, independent crash recovery, and lower
20//! latency by allowing the rendering engine to be hosted on remote network nodes closer to the physical rig.
21pub mod interfaces;
22mod artnet;