compose-rs

Crates.iocompose-rs
lib.rscompose-rs
version0.0.3
sourcesrc
created_at2024-04-18 20:57:11.282376
updated_at2024-04-18 22:14:06.743616
descriptionA Rust library to execute docker-compose commands and monitor compose stacks
homepage
repositoryhttps://github.com/tomvoet/compose-rs
max_upload_size
id1212903
size33,959
Tom Voet (tomvoet)

documentation

https://docs.rs/compose-rs/

README

compose-rs

compose-rs is a Rust library designed to manage Docker Compose environments programmatically. It provides a straightforward API for executing common Docker Compose commands directly from Rust code.

Features

  • Easy Setup: Quickly configure your Docker Compose path and start managing containers.
  • Command Execution: Support for basic Docker Compose commands like up, down, ps, and stats.
  • Stream Stats: Stream statistics of services in real-time.

Installation

Add to your Cargo.toml:

[dependencies]
+ compose-rs = "0.0.3"

Quick Start

This example demonstrates how to bring up a Docker Compose environment and monitor the stats of running services in real-time.

use compose_rs::{Compose, ComposeCommand};

fn main() {
    let compose = Compose::builder()
        .path("docker-compose.yml")
        .build()
        .unwrap();

    // Execute the `up` command to start services defined in the Docker Compose file
    if let Err(e) = compose.up().exec() {
        eprintln!("Error starting services: {}", e);
    }

    // Stream stats and print them in real-time for each service
    compose
        .stats()
        .stream()
        .unwrap()
        .into_iter()
        .for_each(|service| {
            println!("{:?}", service);
        });

    // After monitoring, bring down the services
    if let Err(e) = compose.down().exec() {
        println!("Error stopping services: {}", e);
    }
}

Documentation

For detailed API documentation and advanced usage, please refer to the generated documentation.

Contributing

Contributions are welcome! Please feel free to contribute by opening issues or submitting pull requests.

License

compose-rs is licensed under the MIT license. See LICENSE for details.

Commit count: 6

cargo fmt