Babashka: a meta-circular Clojure interpreter for the command line
summary
Babashka is a Clojure-based command-line interpreter compiled to a single binary with GraalVM native-image and real-world Java interop; it starts in about 22 milliseconds vs ~0.5s for Clojure on the JVM. It implements a meta‑circular interpreter (SCI) that analyzes then evaluates forms, swaps immutable maps for fixed arrays to speed locals 15×, bundles common libraries, supports pods for extensions, and demonstrably runs real scripts and tests with native startup and reasonable interpreter performance.
AI-written summary · about
chapters (11)
- 0:00Introduction to Babashka
- 4:49What is Babashka
- 7:20Babashka features
- 12:07Clojure ecosystem compatibility
- 16:42Fast startup time
- 20:57Meta-circular interpreter basics
- 26:43Optimizing interpreter
- 31:44Performance trade-offs
- 34:15Binary size and extensions
- 36:22Babashka on JavaScript
- 38:30Babashka in production
related talks
48mInteractive Java Support to your tool
45mJShell: An Interactive Shell for the Java Platform
40mProgramming Clojure, Smalltalk-Style
41mJava9 and REPL. Forget debugging, welcome joy and productivity
41mIntroducing a lightweight, data first Clojure interpreter for tracing code
14mMoldable Live Programming with Clerk
18mJBang, a Java file to rule them all? 💍
35mPowderkeg: teaching Clojure to Spark
