SkillAgentSearch skills...

Lscpu

Implementation of lscpu in rust. With this crate you can obtain the most important data from your CPU

Install / Use

/learn @mateolafalce/Lscpu
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="center">

lscpu

<img alt="crates.io" src="https://img.shields.io/crates/v/lscpu.svg?style=for-the-badge&color=fc8d62&logo=rust" height="20"> <img alt="github" src="https://img.shields.io/badge/github-mateolafalce/lscpu-8da0cb?style=for-the-badge&labelColor=555555&logo=github" height="20"> <img alt="docs.rs" src="https://img.shields.io/badge/docs.rs-lscpu-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rs" height="20">

A Rust implementation of the lscpu command-line utility for displaying CPU architecture information.

</div>

Features

  • Written in pure Rust
  • Fast and lightweight
  • no_std compatible
  • Easy to integrate as a library
  • Cross-platform support (Linux focus)
  • Zero external dependencies

Installation

As a Binary

Install the command-line tool directly from crates.io:

cargo install lscpu

After installation, you can run:

lscpu

As a Library

Add this to your Cargo.toml:

cargo add lscpu

Usage

Command Line

Simply run the installed binary to get CPU information:

$ lscpu
Architecture:             x86_64
CPU op-mode(s):           32-bit, 64-bit
Address sizes:            48 bits physical, 48 bits virtual
Byte Order:               Little Endian
CPU(s):                   2
On-line CPU(s) list:      0,1
Vendor ID:                AuthenticAMD
Model name:               AMD A4-4000 APU with Radeon(tm) HD Graphics    
CPU family:               21
Model:                    19
Is hybrid:                no
Thread(s) per core:       2
Core(s) per socket:       1
Socket(s):                1
Stepping:                 1
Frequency boost:          enabled

As a Library

use lscpu::Cpu;

fn main() {
    let cpu = Cpu::new();
    
    println!("Architecture: {}", cpu.architecture);
    println!("Model name: {}", cpu.model_name);
    println!("CPU count: {}", cpu.cpu_count);
    println!("Vendor ID: {}", cpu.vendor_id);
}

Development

Building from Source

git clone https://github.com/mateolafalce/lscpu.git
cd lscpu
cargo build --release

Running Examples

Run the standard example:

cargo run --example std

This demonstrates basic usage and can also be run in a no-std environment.

CPU Data Structure

The main Cpu struct provides comprehensive CPU information:

pub struct Cpu {
    pub architecture: &'static str,
    pub cpu_op_modes: &'static str,
    pub address_sizes: String,
    pub byte_order: &'static str,
    pub cpu_count: u32,
    pub on_line_cpu: u32,
    pub vendor_id: String,
    pub model_name: String,
    pub cpu_family: u32,
    pub cpu_model: u32,
    pub is_hybrid: &'static str,
    pub threads_per_core: u32,
    pub cores_per_socket: u32,
    pub sockets: u32,
    pub stepping: u32,
    pub boost_enabled: &'static str,
}

Platform Support

Currently supports:

  • Linux (primary target)
  • Other Unix-like systems (limited support)
  • Windows (not supported yet)

License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details.

Acknowledgments

  • Inspired by the original lscpu utility from util-linux
  • Built with ❤️ in Rust
View on GitHub
GitHub Stars6
CategoryDevelopment
Updated7mo ago
Forks1

Languages

Rust

Security Score

82/100

Audited on Aug 24, 2025

No findings