Skip to content

Go + bb!

Gobb is the Babashka source code compiled by Gloat using the Go hosted Glojure runtime; without SCI, GraalVM, or a JVM.

Gobb project artwork
It's not a trick, it's an illusion.
Current phase: Production build command Native REPL services, local EDN pods, and Ring HTTP serving are implemented.

Install

No language toolchain required

The only prerequisites are git, make, curl, and a Bash binary. You do not need Go, Babashka, Glojure, Gloat, Python, or MkDocs pre-installed—Gobb's Makefile provisions its toolchain automatically.

Clone Gobb and install it:

git clone https://github.com/clojurestar/gobb
make -C gobb install

The default prefix is $HOME/.local, or /usr/local when running as root. To choose another installation prefix:

make -C gobb install PREFIX=/some/path

One runtime, two ways to ship

Gobb is designed to preserve the fast, practical scripting workflows that make BB useful while adding native compilation as a first-class operation.

01

Run Clojure directly

Evaluate expressions, scripts, stdin, namespaces, tasks, and project dependencies through the full Glojure runtime.

gobb script.clj one two three
02

Build native programs

Turn the same program into a native executable or WebAssembly artifact through Gloat and the Go toolchain.

gobb build script.clj -o app
03

Meet Java code in Go

Grow compatibility with Java-dependent Clojure libraries through reusable gojava shims and Go-backed host adapters.

(Math/sqrt 144) ; => 12.0

The intended pipeline

flowchart LR
    SRC["BB / Clojure source"] --> GOBB["Gobb"]
    GOBB --> RUN["Glojure runtime"]
    GOBB --> BUILD["Gloat build"]
    BUILD --> GO["Generated Go"]
    GO --> TARGET["Native or Wasm"]

Glojure provides reading, evaluation, namespaces, Vars, dynamic bindings, and Clojure semantics. Gobb adds BB-compatible command behavior, tasks, dependencies, bundled features, platform policy, and packaging.

Compatibility is measured, not implied

The project will track BB behavior feature by feature and test Gobb against a pinned BB executable. Platform differences are explicit: when a host cannot provide an operation, Gobb returns a stable capability error instead of a missing symbol or an obscure host failure.

Project status

Core BB workflows are running.

Runtime execution, projects, tasks, bundled-library waves, native and Wasm artifacts, and the live browser REPL are implemented and tested. Production build hardening is next.

View current progress →