Rash: The Reckless Racket Shell
Rash is a shell language, library, and REPL for Racket.
Use as a repl that is as convenient for pipelining programs as Bash is, but has all the power of Racket. Use as a scripting language with #lang rash
. Embed in normal Racket files with (require rash)
, and mix freely with any other Racket language or library.
Rash is in active development, and is not stable as a language. But I use it as my default interactive shell on my laptop. It's far from complete, but I already like it much better than Bash. Give it a try.
Getting started
Prerequisites
Rash does work on windows, but it works better and is more useful on unix based systems.
To install, you will need a working instalation of racket v6.12.
Installation
You can either install with racket's built in package manager, raco
, or install directly from github. If you have DrRacket installed, you can install rash with File -> Install Package
.
via raco:
raco pkg install rash
git version:
git clone https://github.com/willghatch/racket-rash rash && cd rash/linea && raco pkg install && cd ../shell-pipeline && raco pkg install && cd ../rash && raco pkg install
OR
use raco pkg install --clone rash
Usage
Online documentation is here. After installation, local documentation can be accessed with raco docs rash
.
Here's a quick demo video of Rash in action:
I gave a talk about Rash at RacketCon 2017. It's slightly out of date, but you can watch it here.
This repo also contains the shell-pipeline and linea packages. They mostly support Rash itself, so they live in the same repo.