#cli #prelude #scripts

app denim

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

5 releases

new 0.1.5 Jun 18, 2021
0.1.4 Oct 9, 2020
0.1.3 Nov 22, 2019
0.1.1 Oct 25, 2019
0.1.0 Oct 24, 2019

#93 in Command-line interface

MIT license

17KB
334 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

  • Tool set to create, build and tests scripts without interrupting callers.
  • 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.

Non-goals

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

Installation

You will need Rust installed (tested with 1.37.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 exec hello_world

Run tests.

denim test hello_world

Check script.

denim check hello_world

Dependencies

~9.5MB
~184K SLoC