# libcpuname
[![REUSE status][reuse-badge]][reuse-link]
[![Pipeline status][pipeline-badge]][pipeline-link]
[![docs.rs][docsrs-badge]][docsrs-link]
[![Crates.io Version][crates-version-badge]][crates-link]
[![Crates.io MSRV][crates-msrv-badge]][crates-link]
[reuse-badge]: https://api.reuse.software/badge/codeberg.org/serebit/libcpuname
[pipeline-badge]: https://ci.codeberg.org/api/badges/14850/status.svg
[docsrs-badge]: https://img.shields.io/docsrs/libcpuname
[crates-version-badge]: https://img.shields.io/crates/v/libcpuname
[crates-msrv-badge]: https://img.shields.io/crates/msrv/libcpuname
[reuse-link]: https://api.reuse.software/info/codeberg.org/serebit/libcpuname
[pipeline-link]: https://ci.codeberg.org/repos/14850
[docsrs-link]: https://docs.rs/libcpuname/latest/libcpuname/
[crates-link]: https://crates.io/crates/libcpuname
libcpuname is a Rust library that provides lookup tables for the names of CPU manufacturers and designers, CPU chip designs, and CPU core microarchitectures.
The following instruction set architectures are supported:
- **x86** (both 32-bit and 64-bit CPUs)
- **ARM**
- **RISC-V**
# Quickstart
Add `libcpuname` to your project as a dependency:
```shell
cargo add libcpuname
```
# Features
The architecture corresponding to the host's target triple is enabled by default via the `native` feature.
Other architectures can be enabled individually or wholesale.
The following features are available:
- `std` *(enabled by default)*: Link against the `std` crate. This enables impls of `std::error::Error`
- `native` *(enabled by default)*: Exposes the module that matches the host's target triple
- `arm`: Exposes the `arm` module
- `riscv`: Exposes the `riscv` module
- `x86`: Exposes the `x86` module
## License
libcpuname is dual-licensed under the `Apache-2.0` and `MIT` open-source licenses.