5 个稳定版本

新增 1.2.0 2024年8月21日
1.1.1 2024年8月16日
1.1.0 2024年8月9日
1.0.2 2024年7月31日
1.0.1 2024年7月25日

#217硬件支持

Download history 209/week @ 2024-07-22 126/week @ 2024-07-29 96/week @ 2024-08-05 142/week @ 2024-08-12

每月 573 次下载

Apache-2.0

80KB
986

libmapper-rs

libmapper C 库的 Rust 包装器。允许创建和操作 libmapper 信号和设备。

兼容性

以下是 libmapper-rs 版本及其兼容的 libmapper 版本的表格。

libmapper-rs libmapper
1.0.0-1.1.0 2.4.7
1.1.0-1.1.1 2.4.9

备注

  • Libmapper 2.4.9 存在一个导致对象 ID 指针未对齐的 bug。这会导致在调用 get_property 获取 ID 时 rust 发生 panic。开启发布优化可以缓解此问题,因为它会跳过 rust 的对齐检查。

lib.rs:

libmapper-rs

libmapper 是一个跨平台库,用于连接数据源到合成器、DAW 和其他硬件或软件设备。它提供了一个简单的 API 用于创建和管理信号、设备及其之间的映射。

本项目包含对 libmapper C API 的安全、惯用的 Rust 绑定。

概念

设备

libmapper 在一个共享的 peer-to-peer 图上运行。一个 设备 代表与该图的一个连接,是信号的容器。

大多数 libmapper 代码都将从创建一个设备并轮询它何时准备好开始

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

无运行时依赖