Reveal:
Read Eval Visualize Loop for Clojure
Overview
Reveal is a Clojure-oriented data inspection toolbox that aims to remove the barrier between you and objects in your VM.
The goals of Reveal are:
- to empower you to hold a value in your hand — meaning you can look at it from different angles, pick it apart and analyze different pieces of the data just by pointing at them;
- to complement REPL-aided development — providing both interactive output panes for the REPL and tools to use at the REPL;
- to get the most from being in-process — in addition to working with remote processes.
There are 2 versions of Reveal:
- Reveal Free: FOSS, sponsored on GitHub;
- Reveal Pro: $9.99 per month, start a free trial here. For residents and citizens of Ukraine Reveal Pro is free forever — use “PUTINKHUILO” promocode during checkout.
Try it out
To try Reveal Free:
- Start a Reveal Free REPL:
clj \ -Sdeps '{:deps {vlaaad/reveal {:mvn/version "1.3.280"}}}' \ -X vlaaad.reveal/repl
- Evaluate some forms and inspect the results.
To try Reveal Pro:
- Start a Reveal Pro REPL:
clj \ -Sdeps '{:deps {dev.vlaaad/reveal-pro {:mvn/version "1.3.359"}}}' \ -X vlaaad.reveal/repl
- Start a free trial here;
- Paste the license key from confirmation email into a license input field in the Reveal Pro window;
- Evaluate some forms and inspect the results.
Features
Free
Eval on selection Inspector popup Vega(-Lite) visualizations Object inspector Test runner REPL, pREPL, nREPL Look and feel customization Tap support URL and file browsers Docs and sources Ref watchers Charts Table viewPro
Everything in Free, plus:
Learn Reveal
Here you can find useful high-level information about Reveal:
Documentation
Lower-level guides:
- setup Reveal in your project;
- customize Reveal;
- use Reveal at the REPL;
- extend Reveal for your project.
Reveal in media
I gave 3 talks about Reveal:
- Reclojure 2020, 24 minutes;
- Reclojure 2021 data science special: visual tools, 10 minutes;
- Scicloj meeting, 2 hours including Q&A, cljfx and live demo.
Other videos about Reveal:
- Practicalli demo, 5 minutes;
- REPL Driven Development, Clojure’s Superpower by Sean Corfield (1h15m), not about Reveal per se, but uses Reveal extensively.
I also talked about Reveal on defn podcast (1h30m).
Various written setup instructions using Reveal:
- Practicalli page describes Reveal setup for CLI, nrepl editors, emacs (using cider) and rebel-readline;
- Calva page describes vscode setup with Calva extension (using both tools-deps and leiningen examples);
- my blog post describes various Reveal socket REPL setups that talk with remote processes.
Closing thoughts
If repl is a window to a running program, then Reveal is an open door — and you are welcome to come in. I get a lot of leverage from the ability to inspect any object I see, and I hope you will find Reveal useful too.
If you do, please consider supporting my work either by sponsoring the development of the free version or by buying the subscription for Pro version.