Skip to content
@jlt-commons

jlt-commons

A community-led home for Jolt libraries and tooling.

jlt-commons

A shared home for Jolt libraries and tooling.

Jolt is a Clojure compiler built on Chez Scheme. This organization is where the people building on it publish together: libraries that have outgrown a single maintainer, ports of Clojure libraries, and new work that would rather start with company than alone. It is modelled on clj-commons, which has done the same job for Clojure for years.

How this org relates to jolt-lang, and what a project gets here

jolt-lang keeps the language and its standard library, and everything growing around them lives here. That is the arrangement Jolt's author, Dmitri Sotnikov, proposed when this organization was raised on #jolt: the language org stays focused on the essentials, and the wider ecosystem gets one obvious place to be found rather than being scattered across personal accounts. The two overlap on purpose. This organization's admins are members of jolt-lang too, and four jolt-lang projects (instaparse, tapestry, duratom and mulog) have since moved here.

Core-team work lands here directly. Jolt's author has started twenty projects in this organization rather than moving them in later, among them ebb, ensemble and writ. Anyone else can do the same, member or not.

Each project keeps its own maintainers, its own release cadence and its own review protocol. What it gains by being here is shared ground: a documentation site built and published for it, CI that checks it against a current Jolt, and conventions worked out once instead of once per repository.

Projects

Thirty-seven so far. Six arrived by adoption, transferred rather than forked, so their history and issues came with them and each kept its original maintainer. Four moved over from jolt-lang. Twenty-seven were started here, twenty of them by Jolt's author.

Graphics and games, 10 projects: raylib on desktop, iPhone and Android, flecs, GPU vector rendering, and an nREPL inside Blender's game engine
project what it is
raylib-jlt raylib bindings that call the system libraylib over its C ABI through jolt.ffi, with a keyword-argument drawing API on top. Its examples now live in raylib-jolt-demo. Docs
raylib-jolt-demo 187 raylib examples built on raylib-jlt, each one its own small runnable project. Docs
raygui-jlt 24 examples of raygui, raylib's immediate-mode GUI library, bound the same way. Docs
raylib-ios raylib and SDL2 on a physical iPhone, as portable bytecode with no JIT, since iOS forbids generating code at run time. The platform: host loop, bindings, build and deploy tools. Docs
raylib-ios-demo What runs on raylib-ios: 137 scenes, each a sub-project that builds an iPhone app of its own, plus a gallery app holding them all. Docs
raylib-android raylib on an Android phone as native arm64 code, with no JVM, Kotlin or Java anywhere in the app. Seventeen scenes under an owner loop of about thirty lines. Docs
graviton A physics game where you place gravitational attractors to steer a ship toward prizes and away from death zones. A Jolt and raylib port of a 2018 ClojureScript game, its field math checked by writ.
ents flecs entity component system bindings with a vybe-inspired API: components as plain maps, systems and observers over binding vectors.
slipstream GPU vector rendering through Slughorn: a declarative scene compiler, a reference GLFW renderer, and an incremental glimmer backend with gradients, masks, compositing, SDF/MSDF and shader effects.
upbge-jolt A Jolt nREPL inside the UPBGE/Blender game engine in place of its Python API, so CIDER, Calva or Cursive can evaluate against the running editor or game.
User interfaces, 8 projects: the glitter renderers for GTK4 and macOS, a terminal UI, and a Blender-style glimmer backend
project what it is
glitter-core The natives-free two-thirds of glitter: the Replicant-style reconciler and IRender/IMemory protocols, with no toolkit dependency at all. What glitter, glitter-uikit, and uikit-demo all build on. Docs
glitter A Replicant-style GTK4 renderer built on glitter-core: one state atom, a pure state -> hiccup view, event handlers as data. Docs
glitter-gl OpenGL geometry, matrices and shaders for glitter, plus a :gl-area widget to draw them in. Docs
glitter-uikit the same renderer model driving native macOS NSView widgets through AppKit, rather than GTK4. Docs
uikit-demo A demo of glitter-uikit: a hub of live example windows (counter, currency converter, live FX, particle toy) built as a real macOS app bundle. Docs
nexus-jolt A Jolt port of nexus: data-driven action/effect/placeholder dispatch, used today by the glitter family. Docs
ftxui-jolt A reagent-style API over FTXUI, the C++ terminal UI library: components as functions returning hiccup, rendered through FTXUI's own event loop, focus handling and mouse support.
glimmer-bui A backend for glimmer over BUI, Blender's UI as a standalone C library: panels, number sliders, color swatches, with damage-driven rendering that costs nothing while idle.
Concurrency and state, 4 projects: missionary, Erlang/OTP, structured concurrency and a durable atom
project what it is
ebb A port of missionary: composable tasks and flows with real cancellation and glitch-free dataflow, running on Chez fibers. Docs
ensemble Erlang processes and the OTP behaviours on Jolt's native fibers: links, monitors, selective receive, gen_server, gen_statem and supervisors.
tapestry Structured concurrency, where a unit of work is a derefable fiber carrying its result, errors, timeouts and cancellation. A port of teknql/tapestry onto core.async.
duratom A durable atom that writes every change through to a pluggable backend. A port of jimpil/duratom.
Libraries and ports, 6 projects: instaparse, mulog, the AWS SDK, Java through OpenLDK, and a geospatial grid
project what it is
instaparse instaparse on Jolt: parsers from EBNF or ABNF grammars, including left-recursive and ambiguous ones.
mulog The published mulog 0.9.0, with the Java classes it bundles supplied by portable Jolt registrations.
aws-api-jolt The unmodified cognitect aws-api Maven release running on Jolt. It supplies an HTTP client and a host-class declaration, and nothing is forked.
clj-to-ys Translates Clojure source into idiomatic YS (YAMLScript), built on the instaparse port.
jolt-openldk Java libraries from Jolt with no JVM, by loading SBCL with OpenLDK into the Jolt process and calling across a small C shim. Alpha.
dodeca A port of A5, the equal-area pentagonal discrete global grid: indexing, the cell hierarchy, cell measures and grid disks.
Checking and deciding, 5 projects: specs for LLM-written code, a decision engine, forecasting statistics and code metrics
project what it is
writ Checks plain Clojure against a spec of what the code is for: signatures, plus laws run through test.check. Built as a gate for code an LLM writes.
lev A decision engine that answers typed questions about a state with calibrated probabilities, using small encoder models or a GGUF chat model through llama.cpp.
augur Statistics for forecasting and learning from outcomes: online Bayesian posteriors with forgetting, calibration, logistic hazards, change-point detection and forecast scoring.
jolt-metrics Code metrics for Clojure, Jolt and Scheme, led by a ranked refactoring queue. Every metric is checked against a writ spec.
overseer A local-first agent loop: sensors watch the screen, camera or clipboard, lev decides, and a Jolt function acts on the answer.
Agent and editor tooling, 4 projects: a language server, an nREPL MCP server, agent skills and a Kimi Code plugin
project what it is
jolt-lsp A language server and agent toolset for Jolt projects: one pure engine over an in-memory index, with MCP, JSON CLI and LSP as thin transports.
jolt-nrepl-mcp An MCP server, written in Jolt, that gives a coding agent a persistent nREPL session: evaluate, reload, run tests, repair syntax and make structural edits.
jolt-skills Agent skills for building on the jolt-lang and jlt-commons stack, from projects and FFI to web, data, GUI, games and concurrency.
nrepl-kimi-code-plugin A Kimi Code plugin, written in Jolt, that evaluates in a persistent Jolt nREPL session.
Docs sites and shared tooling

Thirteen of these publish through docs-engine, so none of them maintains a site generator of its own, and each site lives at jlt-commons.github.io/<repo>/ with search built in. The rest are recent enough that their documentation is still the repo README. The org also keeps some shared tooling: setup-jolt installs Jolt on a GitHub Actions runner, and ci-builds builds every project against one Jolt version so a breaking release shows up the day it ships.

These tables are only what's hosted here. For everything in the wider Jolt ecosystem (jolt-lang's own libraries, JVM and Clojure compatibility, docs and tooling), see awesome-jolt, a community-maintained curated list. Its own site publishes through docs-engine too.

Two ways a project gets here

Adoption. A Jolt project whose maintainer can no longer look after it, taken over so the community keeps a working version. We ask the current owner first, every time.

Incubation. New work started here. Ports of widely used Clojure libraries, and new libraries that belong beside the language rather than inside it. Twenty-seven projects came in this way, twenty of them started by Jolt's author. The bar is deliberately low: a real gap, and someone willing to maintain it.

Getting involved

Everyone is welcome to help, member or not. Open an issue or a pull request on any repo here.

  • Propose a project, or volunteer to maintain one: open an issue in meta
  • Read the rules, both short: governance and proposing a project
  • Talk to us on #jolt on the Clojurians Slack
  • Use the docs engine. Any project here can publish through docs-engine: write markdown and a short config file, and CI builds and deploys the site on merge. It's optional, so a project can keep its own site generator or simply document itself in the README.

Licenses vary by project, so check a repo's LICENSE file before reusing its code. EPL-2.0 is the default for new projects, matching Jolt and Clojure, though MIT and Apache-2.0 are fine too. Adopted projects keep the license they arrived with.

Pinned Loading

  1. docs-engine docs-engine Public

    The shared static-site generator behind jlt-commons project documentation

    Clojure 2

  2. raylib-jlt raylib-jlt Public

    187 raylib examples in Jolt: native Clojure on Chez Scheme, binding libraylib 6.0 directly over its C ABI

    Clojure 19 3

Repositories

Showing 10 of 45 repositories

Top languages

Loading…

Most used topics

Loading…