3 releases (breaking)

✓ Uses Rust 2018 edition

0.5.0 Feb 21, 2020
0.4.0 May 6, 2019
0.1.0 Feb 13, 2019

#43 in Build Utils


652 lines


A deliberately minimal task runner.

This is an in-progress-pre-alpha project.

Rhiz executes tasks defined in a "Rhizfile", containing task descriptions with a Lisp like syntax.

(task "hello"
  (log "Rhiz says hello"))

;; Comments start with a semicolon
(task "fizzbuzz"
  "Tasks can have an optional description"
  (exec fizzbuzz.exe))

(task "clean"
  (delete "./output"))


  • log: Print a message.
  • exec: Run an external command.
  • empty-dir: Create an empty directory, or delete an existing directory's contents.
  • delete: Delete a file (if it exists).
  • copy: Copy a file; wont' overwrite an existing file.
  • rec-copy: Recursively copy one directory's contents into another.
  • par: Perform a set of commands in parallel.

TODO (Code)

  • Set up CI?
  • Migrate to GitHub?

TODO (Documentation)

  • Overview (motivation, high-level operation)
  • Reference information on each function (e.g. "do copy and rec-copy follow symlinks")
  • Example Rhizfile(s) (with equivalent script/makefile?)


~64K SLoC