cpu_features is a cross-platform C library developed by Google that provides a simple and efficient way to detect available CPU features at runtime across a wide range of architectures and operating systems. It enables applications to determine which instruction sets (such as SSE, AVX, or NEON) are supported on the host machine, allowing developers to optimize performance dynamically. The library supports numerous architectures—including x86, ARM, AArch64, MIPS, POWER, RISCV, LoongArch, and s390x—and works on major operating systems like Linux, macOS, Windows, FreeBSD, Android, and iOS. Implemented in portable C99, it is thread-safe, has no memory allocations, and raises no exceptions, making it suitable even for use in low-level system libraries. The design emphasizes portability, extensibility, and compatibility with sandboxed or restricted environments where direct CPU access may be limited.
Features
- Detects CPU instruction set features at runtime across multiple architectures
- Supports x86, ARM, AArch64, MIPS, POWER, RISCV, LoongArch, and s390x
- Fully portable C99 implementation with no dynamic memory allocation
- Compatible with sandboxed environments and hermetic testing setups
- Includes CLI tool (list_cpu_features) for JSON-based output
- Provides community bindings for popular languages like Python, Java, and .NET