7 stable releases
1.3.1 | Aug 26, 2024 |
---|---|
1.2.0 | Aug 21, 2024 |
1.0.2 | Jul 31, 2024 |
#252 in Hardware support
84KB
1K
SLoC
libmapper-rs
Rust wrapper for the libmapper C library. Allows creation and manipulation of libmapper signals and devices.
Compatibility
Below is a table of the libmapper-rs versions and the libmapper versions they are compatible with.
libmapper-rs | libmapper |
---|---|
1.0.0-1.1.0 | 2.4.7 |
1.1.0-1.3.1 | 2.4.9 |
Notes
- Libmapper 2.4.9 has a bug causing the pointer to object IDs to be unaligned. This causes rust to panic when calling
get_property
to get the ID. Turning on release optimizations will mitigate this as it skips rust's alignment check.
lib.rs
:
libmapper-rs
libmapper is a cross-platform library for connecting data sources to synthesizers, DAWs, and other hardware or software devices. It provides a simple API for creating and managing signals, devices, and mappings between them.
This project contains safe, idiomatic rust bindings to the libmapper C api.
Concepts
Devices
Libmapper operates on a shared peer-to-peer graph. A Device represents a connection to this graph and is a container for signals.
Most libmapper code will start by creating a device and polling until it becomes ready, like so:
use libmapper_rs::device::Device;
fn main() {
let mut device = Device::create("CoolDevice");
loop {
device.poll_and_block(std::time::Duration::from_millis(10));
if device.is_ready() {
break;
}
}
println!("Device is ready!");
// create signals, maps, etc.
}