Node.js Binding to SIGAR (System Information Gatherer And Reporter)
C++ CoffeeScript Python JavaScript
Latest commit 3affdbe Mar 23, 2013 @wdavidw Merge pull request #8 from duralog/master
updated to compile on latest node version
Failed to load latest commit information.
deps update to compile with latest node v0.10.1 Mar 22, 2013
samples just noticed @wdavidw is also author of `printf` module. switching ov… Mar 23, 2013
src update to compile with latest node v0.10.1 Mar 22, 2013
test Fix todo test on ubuntu Feb 19, 2012
.gitmodules Add sugar submodule Jan 4, 2012
binding.gyp update to compile with latest node v0.10.1 Mar 22, 2013
index.js Implement system, proc, cpu and net (partially) functions Dec 25, 2011 Add license and move issues and notes into github issue tracker Jan 11, 2012
package.json just noticed @wdavidw is also author of `printf` module. switching ov… Mar 23, 2013 start documentation & examples (WIP) Mar 23, 2013
wscript test travis Feb 18, 2012

Build Status

Node Sigar binding

A complete binding to the SIGAR library.

Documentation is available on the project website.

Note, documentation include important installation instruction for some platforms.

SIGAR is a cross platform interface for gathering system information. From the project website, such information include:

  • System memory, swap, cpu, load average, uptime, logins
  • Per-process memory, cpu, credential info, state, arguments, environment, open files
  • File system detection and metrics
  • Network interface detection, configuration info and metrics
  • TCP and UDP connection tables
  • Network route table
var sigar = require('sigar');
console.log(sigar.version()); // returns the version

// invoke the library
var Sigar = sigar.init();
console.log(sigar.cpu()); // {}



> {
    ram: Number
    total: Number
    used: Number
    free: Number
    actual_used: Number
    actual_free: Number
    used_percent: Number
    free_percent: Number


    total: Number
    used: Number
    free: Number
    page_in: Number
    page_out: Number


> 52883 // seconds


[0.11, 0.13, 0.09]

Sigar.resourceLimit(); Sigar.whoList(); Sigar.sysInfo(); Sigar.fqdn(); // CPU Sigar.cpu(); Sigar.cpuList(); Sigar.cpuInfoList(); // Process Sigar.procList(); Sigar.procStat(); Sigar.procMem(); Sigar.procCred(); Sigar.procTime(); Sigar.procCpu(); Sigar.procState(); Sigar.procArgs(); Sigar.procEnv(); Sigar.procFd(); Sigar.procExe(); Sigar.procModules(); Sigar.procPort(); Sigar.threadCpu(); // Disk Sigar.fileSystemList(); Sigar.fileSystemUsage(); Sigar.fileSystemPing(); // Network Sigar.netInfo(); Sigar.netRouteList(); Sigar.netInterfaceList(); Sigar.netInterfaceConfig(); Sigar.netInterfaceConfigPrimary(); Sigar.netInterfaceStat(); Sigar.netConnectionList(); Sigar.netListenAddress(); Sigar.netStat(); Sigar.netStatPort(); Sigar.tcp(); Sigar.nfsClientV2(); Sigar.nfsServerV2(); Sigar.arpList(); // Misc Sigar.rpcPing();


  • compile the entire library with gyp
  • fix up the tests (and improve on them)
  • utilize / reimplement / remove sigar_format.c functions
  • convert functions without args to be getters
  • provide async funcs for long-running actions
  • old / broken code still exists for converting network addresses (see


Node Sigar is licensed under the BSD license.