# hardware **Repository Path**: mirrors_crystal-community/hardware ## Basic Information - **Project Name**: hardware - **Description**: Get CPU, Memory and Network informations of the running OS and its processes - **Primary Language**: Unknown - **License**: ISC - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-27 - **Last Updated**: 2026-03-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # hardware [![CI](https://github.com/crystal-community/hardware/workflows/CI/badge.svg)](https://github.com/crystal-community/hardware/actions?query=workflow%3ACI) [![Documentation](https://github.com/crystal-community/hardware/workflows/Documentation/badge.svg)](https://crystal-community.github.io/hardware) [![ISC](https://img.shields.io/badge/License-ISC-blue.svg?style=flat-square)](https://en.wikipedia.org/wiki/ISC_license) A basic module to get CPU, memory and network informations of the current running OS and its processes. Tested on Linux. ## Installation Add this to your application's `shard.yml`: ```yaml dependencies: hardware: github: crystal-community/hardware ``` ## Documentation The documentation is accessible at https://crystal-community.github.io/hardware. It is generated with [crystal docs](https://crystal-lang.org/docs/conventions/documenting_code.html) in the `gh-pages` branch. ## Examples ```crystal require "hardware" memory = Hardware::Memory.new memory.used #=> 2731404 memory.percent.to_i #=> 32 cpu = Hardware::CPU.new pid_stat = Hardware::PID.new.stat # Default is Process.pid app_stat = Hardware::PID.new("firefox").stat # Take the first matching PID loop do sleep 1 p cpu.usage!.to_i #=> 17 p pid_stat.cpu_usage! #=> 1.5 p app_stat.cpu_usage!.to_i #=> 4 end ``` ## Development ### Docker You can run the specs in a Docker container: ```sh $ docker-compose up $ docker-compose run spec ``` ## Contributing 1. Fork it ( https://github.com/crystal-community/hardware/fork ) 2. Create your feature branch (git checkout -b my-new-feature) 3. Commit your changes (git commit -am 'Add some feature') 4. Push to the branch (git push origin my-new-feature) 5. Create a new Pull Request ## Contributors - [bararchy](https://github.com/bararchy) - creator, maintainer - [j8r](https://github.com/j8r) - maintainer