background

Durable Run Style

When we execute long-running tasks in the command line, it can be challenging to understand their real-time impact on system resources or to track their precise execution duration. Durable Run Style (druns) addresses this by providing a comprehensive terminal interface that monitors these tasks, offering insights into CPU usage, memory consumption, disk I/O, and more.

Capabilities

Durable Run Style provides the following capabilities to help you monitor and understand your command-line tasks:

Installation

We recommend installing druns via Cargo, Rust’s package manager, because it ensures you get the latest stable version directly from the source, leveraging Rust’s robust build system for optimal performance and compatibility with your system.

cargo install --git https://github.com/durableprogramming/durable-run-style.git

From Pre-built Binaries

Download the latest release from the releases page.

From Source

git clone https://github.com/durableprogramming/durable-run-style.git
cd durable-run-style
cargo build --release

The binary will be available at target/release/druns.

Usage

Basic Usage

To monitor any command, you can prefix it with druns. For instance, if you want to observe the resource usage and execution time of a simple ls -la command, you would run:

druns ls -la

When you execute this, druns will launch ls -la and present a terminal interface. You will see real-time updates on CPU and memory consumption, disk I/O, and the elapsed time for the ls -la command. The output of ls -la itself will be streamed directly within the druns interface, allowing you to see both the command’s results and its system impact simultaneously.

Development Workflows

druns can be particularly useful for monitoring long-running development tasks, helping you identify performance bottlenecks or unexpected resource spikes. This allows you to gain insights into the efficiency of your build processes, test suites, or local development servers.

# Watch Docker Compose services to understand their resource footprint
druns docker compose up

# Run test suites and observe their execution time and resource usage
druns cargo test

# Build projects and monitor compilation times and resource demands
druns npm run build

System Tasks

For intensive system operations, druns provides visibility into their impact, enabling you to track resource usage and ensure tasks complete within expected parameters. This is crucial for understanding the system load imposed by various maintenance or data processing jobs.

# Monitor database migrations for resource consumption and duration
druns rails db:migrate

# Track video encoding processes to optimize performance
druns ffmpeg -i input.mp4 output.mp4

# Observe data processing scripts for memory and CPU usage
druns python process_data.py

Demo

Try the graphics demo to see the interface:

druns gfx-demo

What It Monitors

Practical Applications

druns offers valuable insights across various scenarios where understanding the behavior and resource consumption of command-line tasks is critical:

Philosophy

Durable Run Style is built on principles that prioritize practical understanding and long-term utility for developers and system administrators:

Development

Requirements

To build and run druns from source, you will need the following:

Building

cargo build --release

Testing

cargo test

Contributing

Contributions are welcome! Please read our contributing guidelines before submitting pull requests.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Make your changes
  4. Ensure tests pass (cargo test)
  5. Commit your changes
  6. Push to your fork
  7. Open a pull request

License

MIT License - see LICENSE.md for details.

Copyright (c) 2025 Durable Programming, LLC. All rights reserved.

Support

For bugs, feature requests, or questions, please open an issue on GitHub.

Acknowledgments

druns is built upon the robust foundation provided by several excellent open-source projects:

We extend our gratitude to the maintainers and contributors of these projects, and to the broader Rust community for fostering an environment of innovation and collaboration.

GitHub

View on GitHub