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](https://github.com/mccdaq/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`](../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](https://github.com/mccdaq/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.