3 releases

0.1.2 Feb 20, 2021
0.1.1 Feb 2, 2021
0.1.0 Feb 1, 2021

#890 in Command-line interface

Download history 67/week @ 2024-02-25 31/week @ 2024-03-03 24/week @ 2024-03-10 24/week @ 2024-03-17 26/week @ 2024-03-24 74/week @ 2024-03-31 19/week @ 2024-04-07 25/week @ 2024-04-14 25/week @ 2024-04-21 20/week @ 2024-04-28 22/week @ 2024-05-05 32/week @ 2024-05-12 32/week @ 2024-05-19 23/week @ 2024-05-26 25/week @ 2024-06-02 10/week @ 2024-06-09

94 downloads per month



Project goal

The pals project aims at providing a binary utility and a Rust library to generate a running Processes' Arguments LiSt the portable way.

Application interface

See API doc for more.

Binary utility

The pals command will dump running processes' name, pid, arguments and the sub processes to form a JSON array of elements which are process trees.

A process is a JSON object composed of:

  1. cmd: Process name.

  2. pid: Process id.

  3. args: JSON array of splitted arguments, aka argv. It's optional.

  4. subs: JSON array of sub processes. It's optional.

Example of output

[{cmd: "alpha", pid:105, args:[ "alpha" ], subs:[
  {cmd: "beta", pid:107, args:[ "beta", "--help" ]},
  {cmd: "gamma", pid:106 }]},
 {cmd: "lorum", pid:102, subs:[
  {cmd: "ipsumipsum", pid:104, args:[ "ipsumipsumipsum", "--name-too-long" ]}]}]

Thanks to identing, the JSON output is even human readable.

Supported platform

Supporting on Windows, Linux and FreeBSD are tested. Furthermore, pals works on any platform that supports ps command, for example, macOS. However, ps is NOT required on all supported platforms.


On some platforms, process names may be truncted to fit in the maximum length.


Under Apache License 2.0 or MIT License, at your will.


~12K SLoC