Get CPU, Memory and Network informations of the running OS and its processes
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
spec
src
.editorconfig
.gitignore
.travis.yml
Dockerfile
LICENSE
README.md
docker-compose.yml
shard.yml

README.md

hardware

GitHub release Build Status

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:

dependencies:
  hardware:
    github: crystal-community/hardware

Documentation

The documentation is accessible at https://crystal-community.github.io/hardware.

It is generated with crystal docs in the gh-pages branch.

Examples

require "hardware"

memory = Hardware::Memory.new
memory.used         #=> 2731404
memory.percent.to_i #=> 32

cpu = Hardware::CPU.new
pid = Hardware::PID.new           # Default is Process.pid
app = Hardware::PID.new "firefox" # Take the first matching PID

loop do
  sleep 1
  cpu.usage.to_i     #=> 17
  pid.cpu_usage      #=> 1.5
  app.cpu_usage.to_i #=> 4
end

Development

Docker

You can run the specs in a Docker container:

$ 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