pawd

Crates.iopawd
lib.rspawd
version0.1.1
sourcesrc
created_at2023-11-14 02:02:50.809184
updated_at2023-11-16 02:25:01.66837
descriptionProcess analysis & watcher daemon
homepage
repositoryhttps://lab.themackabu.dev/crates/pawd
max_upload_size
id1034297
size8,322
Mack (theMackabu)

documentation

README

Paw

Paw is a Rust library for monitoring and controlling child processes. It provides a simple API for spawning processes, reading their output, and getting their memory and CPU usage.

Usage

To use Paw, first create a new instance of the Paw struct. You can specify the command to run, the arguments to pass to the command, and the duration to monitor the process for.

Once you have a Paw instance, you can call the watch() method to start monitoring the process. The watch() method takes a callback function as an argument. The callback function will be called periodically with the current state of the process.

The PawResult struct contains the following information about the process:

  • info: Information about the process, such as its memory usage, CPU usage, and uptime.
  • process: Information about the process command, such as the command name and arguments.

The PawDone struct contains the following information about the process:

  • stdout: The standard output of the process.
  • code: The exit code of the process.

Example

The following example shows how to use Paw to monitor a Node.js process:

use paw::{Paw, PawResult};

let paw = Paw::new("node", &["tests/test.js"], 500);
let callback = move |result: PawResult| {
  println!("{:?}", result);
};

match paw.watch(callback) {
  Ok(result) => println!("{:?}", result),
  Err(error) => println!("{error}"),
}

Running the tests

To run the tests, simply run the following command:

cargo test
Commit count: 0

cargo fmt