Go + bb!
Gobb is a Go-native implementation of the Babashka experience, powered by Gloat and the full Glojure runtime—without SCI, GraalVM, or a JVM.
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.
Run Clojure directly
Evaluate expressions, scripts, stdin, namespaces, tasks, and project dependencies through the full Glojure runtime.
gobb script.clj one two three
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
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
The architecture and roadmap are defined.
Runtime execution, compatibility work, and cross-platform artifacts are the next engineering milestones.