uldaq-sys 0.3.0

Raw FFI bindings for the uldaq library (Measurement Computing / Data Translation DAQ devices)
Documentation

uldaq-sys

Raw FFI bindings to the uldaq C++ library, used for interfacing with Measurement Computing / Data Translation DAQ devices (e.g. the DT9837 series) on Linux.

This crate is the low-level companion of the safe uldaqrs crate. It is not intended to be used directly. For a safe, ergonomic API, see uldaqrs.

Important notes

The code is copied from the uldaq repository, with all net devices code removed. Secondly, it is capable of compiling under MinGW, although we still have to implement support for MSVC. This is considered (near) future work.

The vendor-uldaq.sh script now requires more manual adjustments, however, the last change to the original repository is from 4 years ago at the time of this commit (d.d. 2026 Aug 24th).

Building

This crate compiles and statically links the uldaq library from the vendored source in uldaq/ (MIT licensed, Copyright (c) 2018 Measurement Computing). The vendored copy can be refreshed with the vendor-uldaq.sh script in the repository root.

Prerequisites:

  • libusb-1.0 (headers and library). On Debian/Ubuntu: sudo apt install libusb-1.0-0-dev
  • A C++14 compiler.

Regenerating the bindings

The bindings in src/lib.rs are generated at build time by bindgen from uldaq/src/uldaq.h; no manual editing is required.