Instant startup
Leveraging GraalVM native-image and the Small Clojure Interpreter, babashka is a self-contained and instantly starting scripting environment.
Avoid switching between Clojure and bash scripts. Enjoy your parens on the command line.
time bb -e '{:ci (System/getenv "CI")}'
{:ci "true"}
0.01s user 0.01s system 79% cpu 0.026 total
Leveraging GraalVM native-image and the Small Clojure Interpreter, babashka is a self-contained and instantly starting scripting environment.
Babashka comes with scripting batteries included: tools.cli, cheshire, babashka.fs, babashka.process, java.time and many more libraries and classes.
Babashka scripts work on linux, macOS and Windows.
Besides the built-in libraries, babashka is able to load libraries from source, tapping into the world of already existing Clojure libraries.
Babashka supports real JVM threads and like Clojure, supports futures and dynamic thread-locally bound vars
Babashka features a built-in task runner which covers the most popular use cases of make, just and npm scripts.
Babashka can shell out to other CLI programs like you are used to in bash. It goes one step further and offers seamless integration with other binaries using the pod protocol. Pods can be implemented in any language, including Clojure, Rust and Go.
The babashka channel on Clojurians Slack has quickly summoned more than 500 members. We are sharing ideas and helping each other out with questions and issues. Github discussions can be used to reach out for any topic if you are more into slower moving communication.
If you enjoy babashka and it is helping you succeed, consider sponsoring the development and maintainance of this project.