Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Project Dependencies

This is a Rust programming language project requiring the Rust toolchain, including the Rust build system and package manager, named cargo.

In addition to the base toolchain, this project also makes use of the following:

ToolDescriptionRationale
uvAn extremely fast Python package and project managerSolely for benchmarking against the Python implementation
justA handy way to save and run project-specific commandsConvenience
jqA handy way to slice and filter JSON outputConvenience tool for JSON and JSONL.
mdbookA tool to create books with Markdown.This project is documented via mdbook.

Rust Crate Dependencies

Dependencies are declared in Cargo.toml and managed by cargo.

Runtime dependencies

CrateVersionPurpose
nvml-wrapper0.12NVIDIA GPU monitoring via NVML; loaded at runtime with libloading – no build-time system deps; returns empty on non-NVIDIA hosts
clap4CLI argument parsing; stripped to derive, std, help, usage, error-context, env features only
procfs0.18Linux /proc parsing for CPU, memory, disk, and network metrics
ureq3Lightweight synchronous HTTP client for Sentinel API and S3 PUT; avoids tokio runtime overhead
serde1Serialization/deserialization framework with derive macros
serde_json1JSON serialization for metric output and API payloads
toml1.0TOML config file parsing; parse + serde features only, no display overhead
hmac0.13.0-rc.6HMAC-SHA256 for manual AWS Signature Version 4 signing of S3 PUT requests
sha20.11.0SHA-256 hashing required by AWS Sig V4; paired with hmac
hex0.4Hex encoding of HMAC digests for Sig V4 canonical request construction
libc0.2FFI bindings for statvfs (filesystem space), gethostname, and SIGTERM signal handling
flate21.1.9 (pinned)Gzip compression for .csv.gz S3 batch uploads; rust_backend feature uses pure Rust (no zlib-sys C dep)
libamdgpu_top0.11.2AMD GPU monitoring via libdrm; libdrm_dynamic_loading feature loads the library at runtime – gracefully skipped on non-AMD hosts

Dev dependencies

CrateVersionPurpose
num_cpus1Smoke tests: verifies cpu.utilization_pct is expressed as fractional cores (bounded by logical CPU count), not a percentage