Low-level Rust bindings for libnitrokey
Merge branch 'release-v3.7.0'
Release v3.7.0
Add libusb to CI environment



You can also use your local clone with git send-email.


Low-level Rust bindings for libnitrokey, providing access to Nitrokey devices.

This crate contains a copy of the libnitrokey library, builds it from source and links it statically. The host system must provide its dependencies in the library search path:

  • libhidapi-libusb0 (on Linux)
  • libhidapi (on non-Linux systems)

If you set the USE_SYSTEM_LIBNITROKEY environment variable when building this crate, it links directly against libnitrokey instead of building it from source. In this case, libnitrokey must be available in the library search path.

Per default, this crate uses bindings that have been generated using Rust’s x86_64-unknown-linux-gnu target. To the best of our knowledge, these bindings are platform-independent. If you want to generate the bindings, including layout tests, specifically for your platform during the build, activate the bindgen feature. In this case, you will also need clang and libclang in the default search path.

Alternatively, you can execute make verify-bindings to compare the pre-generated bindings with the bindings that bindgen generates for your platform. This check only works on a clean Git working tree and requires the bindgen binary, git and quilt.


The major and minor version of the nitrokey-sys crate map to the major and minor version of libnitrokey. The nitrokey-sys patch version may be increased independently.


Contributions to this project are welcome! Please submit patches to the mailing list ~ireas/nitrokey-rs-dev@lists.sr.ht (archive) using the [PATCH nitrokey-sys-rs] subject prefix. For more information, see the Contributing Guide.


For bug reports, patches, feature requests or other messages, please send a mail to the mailing list ~ireas/nitrokey-rs-dev@lists.sr.ht (archive).


This project as well as libnitrokey are licensed under the LGPL-3.0.