aboutsummaryrefslogtreecommitdiff

nitrokey-sys-rs

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.

Versioning

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.

Contributing

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.

Contact

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).

License

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