Skip to content

Compellerai/ola-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

OLA RPC system to communicate with the Open Lighting Architecture.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages