Write Lisp.
Ship Go.

GoLisp is a general-purpose Lisp hosted on Go — its own vocabulary, compile-time macros, and a full standard library, the way Clojure is hosted on the JVM. Compiles to a single static binary. No runtime to ship.

Read the Book GitHub
$ curl -fsSL https://raw.githubusercontent.com/leinonen/golisp-language/main/install.sh | sh

Requires the Go toolchain — GoLisp transpiles to Go and shells out to go build.

Why GoLisp

Its own language

Not Go in parentheses. GoLisp has its own core vocabulary, compile-time defmacro with syntax-quote, and idioms — extend the language in a library, not the compiler.

Single static binary

Transpiles to clean Go, then go build to one self-contained binary. Deploy to a scratch Docker image — no runtime, no dependencies to ship.

Concurrency, undiluted

Go's concurrency model in Lisp form. go, go-val, par, for-chan, with-lock, select!, typed channels, and atoms — without the boilerplate.

First-class Go interop

Go is the host platform. Import any Go package with dot-free method dispatch, field access, type assertions, and multi-return values — backed by real signatures from the Go toolchain.

Beyond servers

CLI and scripting are first-class — a #! shebang runs a .glsp file with no build step. Plus a data stack: transducers, CSV, and streaming JSON over sys/, path/, and str/.

Hypermedia web stack

Build server-rendered apps with hiccup HTML, htmx, server-sent events, and websockets — plus routing and middleware in golisp/web. No JS framework, no CDN, one binary.

Get started.

GoLisp is live and ready to use. Install the compiler — you'll need the Go toolchain, since GoLisp transpiles to Go and builds with it — then learn the whole language, from first steps to Go interop, concurrency, and web services, in The GoLisp Book. First-class tooling included: an LSP with completions and diagnostics, a built-in formatter, and Neovim support.