#script #cargo-script #prelude #cargo-command #cargo-toml #command-output #low-overhead

app denim

Denim is an alternative way to make and run Rust "scripts" with focus on minimal runtime overhead and ease of script development

6 releases

0.2.0 Dec 22, 2022
0.1.5 Jun 18, 2021
0.1.4 Oct 9, 2020
0.1.3 Nov 22, 2019
0.1.1 Oct 25, 2019

#285 in Command-line interface

MIT license

19KB
376 lines

Latest Version Documentation License

Denim is an alternative way to make and run Rust "scripts" with focus on minimal runtime overhead and ease of script development.

Features

  • Full real-time output of cargo command runs.
  • Support for Cargo.toml definitions within script source.
  • Sensible script templates.
  • Very low execution overhead after script was built.
  • #! support.
  • Create, build and tests scripts without interrupting existing script callers.

Non-goals

  • Run inline scripts - use cargo script(er) for this.
  • Non-Linux support.

Installation

You will need Rust installed (tested with 1.64.0).

cargo install denim

Examples

Crate new minimal script and build it.

denim new --bare hello_world

Crate new cotton prelude script and build it (this will take a moment).

denim new hello_world

Now you can run the script as any other binary. Note that you can also run the script without building it first - the build will be done silently before program is executed.

./hello_world

After making changes to script it needs to be rebuild for them to take effect. Executing script directly (e.g. ./hello_world) will execute last built version until changed script builds successfully.

denim build hello_world

Rebuild and run script after making changes.

denim run hello_world

Run tests.

denim test hello_world

Check script.

denim check hello_world

Dependencies

~5–14MB
~177K SLoC