Loading...
Loading...
let-go is a new Clojure-inspired language implemented in pure Go that produces tiny (~10MB) static binaries with extremely fast cold starts (~7ms). Aiming for high compatibility with JVM Clojure, it supports macros, destructuring, persistent data structures, core.async backed by goroutines, nREPL, and broad standard libraries (EDN, JSON, HTTP, transit). It offers AOT compilation to portable bytecode, self-contained WASM/HTML apps with terminal emulation, and tight Go interop for embedding. Designed for scripting, tooling, CLIs, and browser-hosted REPL workflows, let-go trades full Java ecosystem access (no JAR loading) for a small footprint and rapid startup.
A compact roguelike called Xs of Y dynamically renames each run and encodes its magic system as Lisp s-expressions, so spells and rune mappings change every boot. Built in roughly 6.9k lines of let-go (a Clojure-like language targeting a Go bytecode VM), the game uses persistent data structures, has no external dependencies, and starts in about 6ms. It runs natively or in the browser via WASM, and gameplay mixes emergent scripting power—root access to the dungeon’s reality engine with shifting documentation—with classic roguelike hazards like traps, regenerating trolls, splitting slimes, and environmental fire spread. The project highlights concise, dependency-free game dev using modern language VMs and WebAssembly deployment.
let-go: Almost Clojure written in Go
A developer released let-go, a Clojure-like language implemented in Go that compiles to standalone binaries and fast-starting bytecode. The single ~10MB binary runs with ~7ms cold start and supports AOT compilation to LGB bytecode and self-contained WASM/HTML apps with xterm.js terminal emulation. let-go provides broad Clojure compatibility (macros, destructuring, persistent data structures, core.async backed by real goroutines), a rich standard library (EDN, JSON, HTTP, transit, core.async, nREPL), Go interop, and Linux syscalls. It passes 95.4% of the jank-lang/clojure-test-suite and aims for small footprint and developer productivity, while noting it’s not a drop-in Clojure replacement. This targets scripting, fast tooling, and browser-hosted REPL workflows.
Let-go, a Clojure-like language implemented in pure Go, delivers a ~10MB static binary that cold-boots in about 7ms—roughly 50x faster than the JVM and 3x faster than Babashka. Created since 2021, the project aims for ~90% compatibility with JVM Clojure and includes an nREPL server compatible with Calva and CIDER, AOT compilation to portable bytecode and standalone binaries, and easy embedding with Go (functions, structs and channels interoperable). The author used it for CLIs, web servers, data processing and a daemonless container runtime; it even runs on Plan9. Limitations include lack of JAR loading and incomplete Java API coverage, so existing Clojure code may need changes.