ola-rs 0.1.0

Rust client for Open Lighting Architecture RPC DMX control
Documentation
  • Coverage
  • 5.56%
    2 out of 36 items documented0 out of 13 items with examples
  • Size
  • Source code size: 19.03 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 3.97 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 58s Average build duration of successful builds.
  • all releases: 58s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • Compellerai/ola-rs
    1 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • yakoob

ola-rs

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.

Current scope

  • Connect to olad over the OLA RPC TCP service, default 127.0.0.1:9010.
  • Send UpdateDmxData and receive Ack.
  • Send fire-and-forget StreamDmxData.
  • Read a universe with GetDmx.
  • Blackout helper for a universe.

Not included yet

  • Full OLA service API coverage.
  • RDM helpers.
  • Async/Tokio API.
  • Fixture patching convenience APIs.
  • REACT-specific code.

Quick start

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 -- 0

Safety note

This 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.

Protocol attribution

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.

Contributing

Useful next contributions:

  • More OLA RPC methods.
  • Async/Tokio client.
  • Tests against a local olad fixture.
  • Universe discovery helpers.
  • RDM helpers.
  • Better examples for venue/show-control workflows.

License

MIT. See LICENSE.