Rust client for Open Lighting Architecture RPC DMX control.
Compeller built this because REACT needs a small, reliable Rust path to OLA for DMX/ARTNet/sACN venue control. We are sharing it as a standalone utility for Rust, lighting, DJ, and show-control projects.
- Connect to
oladover the OLA RPC TCP service, default127.0.0.1:9010. - Send
UpdateDmxDataand receiveAck. - Send fire-and-forget
StreamDmxData. - Read a universe with
GetDmx. - Blackout helper for a universe.
- Full OLA service API coverage.
- RDM helpers.
- Async/Tokio API.
- Fixture patching convenience APIs.
- REACT-specific code.
ola-rs = "0.1"use ola_rs::OlaClient;
fn main() -> ola_rs::Result<()> {
let mut ola = OlaClient::connect_default()?;
ola.update_dmx(0, &[255, 0, 0, 0], None)?;
Ok(())
}Examples:
cargo run --example blackout -- 0
cargo run --example chase -- 0This crate can change real lighting output. Test with a dummy universe or disconnected output before using it on a live rig. Keep a physical or console-level blackout available.
This crate is informed by the public Open Lighting Architecture RPC/protobuf protocol and by Deep Symmetry's ola-clojure project.
This is a clean Rust implementation. It does not copy ola-clojure source code.
Useful next contributions:
- More OLA RPC methods.
- Async/Tokio client.
- Tests against a local
oladfixture. - Universe discovery helpers.
- RDM helpers.
- Better examples for venue/show-control workflows.
MIT. See LICENSE.