psutil

psutil is a cross-platform library for retrieving information on running processes and system utilization (CPU, memory, disks, network). Since 2018 maintained by Juan Carlos because was abandoned.

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version Unknown
License BSD
CI Status Passing
Downloads 0
Last Indexed 2026-07-21 05:24

Installation

nimble install psutil
choosenim install psutil
git clone https://github.com/juancarlospaco/psutil-nim

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
psutil - - - - - - -

Source

Repository https://github.com/juancarlospaco/psutil-nim
Homepage https://github.com/johnscillieri/psutil-nim
Registry Source nimble_official

README

Psutil-Nim

Port of Python psutil to Nim.

Pull requests with bug fixes and support for other platforms are welcome!

Table of Contents

Background

I love Python and psutil but bundling a Python app is a pain. Having a psutil library in Nim seemed like the logical next step.

Install

  • nimble install psutil

This package works Ok as of Nim 1.0.6. Pull requests welcome.

Usage

Just some basic usage below until I get the example apps working and can mirror what's in psutil's documentation. Take a look at the scripts folder for some basic examples as well.

import psutil

echo net_if_addrs()
echo boot_time()
echo users()

Troubleshooting

If you are running on CentOS or RedHat you may or may not find errors with the Network related functions, complaining about missing Linux C Headers sockios.h to Compile, this is not a Bug on the code but that Distro not having development libraries or having too old versions of it.

You can try installing the package kernel-headers for CentOS/RedHat, to see if that fixes the problem about missing libraries.

If you know how to fix that Distro-specific detail feel free to send pull requests.

The failing functions are:

net_io_counters()
per_nic_net_io_counters()
net_if_stats()
net_connections()

You can workaround by using Distros module:

when not detectOs(CentOS):
  # Do something here with the Network functions.
  echo net_io_counters()
  echo per_nic_net_io_counters()
  echo net_if_stats()
  echo net_connections()

Stars

Star psutil-nim on GitHub

Contribute

PRs accepted! Adding a single function to any platform is a huge help and can usually be done with less than an hour of work.

License

  • MIT