27 releases

new 0.2.0 Sep 24, 2021
0.1.0 Sep 12, 2021
0.0.24 Sep 3, 2021
0.0.23 Aug 31, 2021
0.0.8 Jun 30, 2021

#72 in Operating systems

Download history 22/week @ 2021-06-07 20/week @ 2021-06-14 77/week @ 2021-06-21 155/week @ 2021-06-28 27/week @ 2021-07-05 52/week @ 2021-07-12 76/week @ 2021-07-19 181/week @ 2021-07-26 203/week @ 2021-08-02 211/week @ 2021-08-09 126/week @ 2021-08-16 73/week @ 2021-08-23 76/week @ 2021-08-30 46/week @ 2021-09-06 60/week @ 2021-09-13 58/week @ 2021-09-20

441 downloads per month
Used in 3 crates

CC0 license

110KB
2K SLoC

ci status badge crates.io docs

cradle is a library for executing child processes. It provides a more convenient interface than std::process::Command. Here's an example:

use cradle::prelude::*;

fn main() {
    // output git version
    run!(%"git --version");
    // output configured git user
    let (StdoutTrimmed(git_user), Status(status)) = run_output!(%"git config --get user.name");
    if status.success() {
        eprintln!("git user: {}", git_user);
    } else {
        eprintln!("git user not configured");
    }
}

For comprehensive documentation, head over to docs.rs/cradle.

Design Goals

cradle is meant to make it as easy as possible to run child processes, while making it hard to use incorrectly. As such it provides an interface that is concise and flexible, and tries to avoid surprising behavior.

cradle does not try to emulate the syntax or functionality of bash or other shells, such as pipes (|), globs (*), or other string expansion. Instead, it aims to be a convenient wrapper around the operating system's interface for running child processes.

MSRV

The minimal supported rust version is 0.41.

Dependencies

~39–445KB