cpufeatures 0.2.7

Lightweight runtime CPU feature detection for x86/x86_64 and aarch64 with no_std support and support for mobile targets including Android and iOS

RustCrypto: CPU Feature Detection

crate Docs Apache2/MIT licensed Rust Version Project Chat Build Status

Lightweight and efficient runtime CPU feature detection for aarch64 and x86/x86_64 targets.

Supports no_std as well as mobile targets including iOS and Android, providing an alternative to the std-dependent is_x86_feature_detected! macro.


Supported architectures

Supported target architectures

*NOTE: target features with an asterisk are unstable (nightly-only) and subject to change to match upstream name changes in the Rust standard library.


Linux, iOS, and macOS/ARM only (ARM64 does not support OS-independent feature detection)

Target features:

  • aes*
  • sha2*
  • sha3*


OS independent and no_std-friendly

Target features:

  • adx
  • aes
  • avx
  • avx2
  • avx512bw*
  • avx512cd*
  • avx512dq*
  • avx512er*
  • avx512f*
  • avx512ifma*
  • avx512pf*
  • avx512vl*
  • bmi1
  • bmi2
  • fma,
  • mmx
  • pclmulqdq
  • popcnt
  • rdrand
  • rdseed
  • sgx
  • sha
  • sse
  • sse2
  • sse3
  • sse4.1
  • sse4.2
  • ssse3

If you would like detection support for a target feature which is not on this list, please open a GitHub issue.


Licensed under either of:

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.