vlfd-rs
vlfd-rs is a Rust driver for a VeriComm-compatible USB interface board.
The 4.x API models board access through explicit sessions:
Board: owns the USB connection and cached device stateIoSession: handles VeriComm FIFO transfersProgramSession: handles FPGA programming transfersProgrammer: convenience wrapper for bitstream upload flowsVeriCommFrame: names the fixture's four-word, 64-lane sample boundaryLicence: derives a board-specific activation key from caller-owned credentials
Features
- Pure-Rust USB transport powered by
nusb - Explicit board / I/O / programming session boundaries
- Fixed-size rolling transfer windows for sustained VeriComm streaming
- Reusable-buffer output APIs for lower-allocation I/O paths
- High-level configuration refresh and write helpers
- Bitstream upload support for the integrated FPGA programmer
- Hotplug callbacks powered by a
nusb-based polling watcher - Deterministic board enumeration and selection by USB location or serial number
Quick Start
use ;
Programming Example
use Path;
use ;
Installation
Add the crate to your Cargo.toml:
[]
= "4"
API Notes
- The old monolithic
DeviceAPI was removed in 3.0 - 4.0 removes embedded credentials; callers must provide a customer ID or key
Board::open()requires exactly one connected board; useBoard::enumerate()andBoard::open_selected()when multiple boards are present- Rolling windows are fixed-size: use
io.transfer_window(words, capacity)? - The old batch transfer helpers are removed in favor of the rolling window API
- Transport remains blocking from the public API perspective
- Internally the USB layer uses
nusbandMaybeFuture::wait()
Benchmarking
License
Apache-2.0