RustCrypto: CPU Feature Detection
Lightweight and efficient runtime CPU feature detection for aarch64
, loongarch64
, 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 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.
aarch64
Linux, iOS, and macOS/ARM only (ARM64 does not support OS-independent feature detection)
Target features:
aes
*sha2
*sha3
*
loongarch64
Linux only (LoongArch64 does not support OS-independent feature detection)
Target features:
lam
*ual
*fpu
*lsx
*lasx
*crc32
*complex
*crypto
*lvz
*lbt.x86
*lbt.arm
*lbt.mips
*ptw
*
x86
/x86_64
OS independent and no_std
-friendly
Target features:
adx
aes
avx
avx2
avx512bw
*avx512cd
*avx512dq
*avx512er
*avx512f
*avx512ifma
*avx512pf
*avx512vl
*avx512vbmi
*avx512vbmi2
*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.
License
Licensed under either of:
at your option.
Contribution
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.