crates.io docs.rs CI

libftd3xx-ffi

Rust FFI bindings to the [FTDI D3XX drivers]. THIS REPOSITORY IS STILL EXPERIMENTAL AND NON-FUNCTIONAL.

This crate is just the C bindings. There is a separate crate, [libftd3xx], which provides safe wrappers around the unsafe C bindings.

Usage

Simply add this crate as a dependency in your Cargo.toml. The static library is distributed in this crate with permission from FTDI. The default feature set will use dynamic linking.

toml [dependencies] libftd3xx-ffi = "~0.0.1"

Bindgen

The default feature set will use pre-generated bindings. This is only available for Windows x8664 and Linux x8664 platforms.

The bindings can also be generated during compilation using the [bindgen] feature flag. toml [dependencies] libftd3xx-ffi = { version = "~0.0.1", features = ["bindgen"] }

Bindgen has additional dependencies that must be installed in order to compile successfully, see the [bindgen requirements] page for more details.

Static Linking

Static linking the FTD3XX library into this crate can be done by using the static feature flag. toml [dependencies] libftd3xx-ffi = { version = "~0.0.1", features = ["static"] } Static linking may be preferred, however there may be license incompatibilities (static linking with GPL code). If in doubt, check the FTDI [driver license terms].

Supported Targets

Tested Targets

TODO: UPDATE THIS THIS REPOSITORY IS STILL EXPERIMENTAL AND NON-FUNCTIONAL.

Untested Targets

These targets are provided, but they are untested. Use at your own risk.

References

Troubleshooting

Unknown Device on Linux

TODO: UPDATE THIS

Remove the VCP FTDI driver. bash sudo rmmod ftdi_sio sudo rmmod usbserial See [FTDI Drivers Installation Guide for Linux] for more details.

License

FTDI provides the D3XX driver as a compiled library and a header file. These files can be found within the vendor directory.

The code within the vendor directory is licensed by FTDI. Please see the [driver license terms] page for their license.

All code outside of the vendor directory is MIT licensed.

Note: This crate is not affiliated with FTDI. You will need to contact the vendor for any support requests with the underlying library because it is closed source.

TODO: UPDATE THIS