README.adoc

June 11, 2026 · View on GitHub

= clojure-dialects-docs :idprefix: :idseparator: - :toc: :toclevels: 3 // a wee separator used in section headings: :s: ⬩ // github star unit :star: ☆

== Introduction https://clojure.org/[Clojure] has inspired a variety of dialects. This little repository's goal is to provide a brief description of each with links for the curious.

We consider something a Clojure dialect when it runs Clojure (or very Clojure-ish) code. Support for a dialect-specific reader-conditional target is a good hint that we have a true dialect. You'll find dialects sorted by their birth year below.

Where appropriate/possible, we've linked authors' sponsorship pages; consider sponsoring as a way of not only supporting ongoing work but also as a way of saying thank you for past efforts.

Additions and corrections to this living document are most welcome from the community.

== Other Resources

== Dialects Popularity Rankings It useful to see Clojure dialects ranked by some measure of popularity. https://clojure.org/news/2026/02/18/state-of-clojure-2025#dialects-tools[Question 23 of the 2025 Clojure Survey] asked, "Which dialects of Clojure have you used in the last year?"

Here's how our listed dialects ranked from the Survey:

// Rankings last updated 2026-03-19 |=== | Clojure Dialect | Percentage of Respondents Using | Count of Respondents Using | {star} GitHub Stars (as of March 2026)

| <> | 98.5% | 1,457 | 10.8k

| <> | 60.0% | 887 | 4.5k

| <> | 55.7% | 823 | 9.4k

| <> | 5.4% | 80 | 940

| <> | 5.2% | 77 | 842

| <> | 4.7% | 69 | 1.6k

| <> | 4.7% | 69 | 3.2k

| <> | 4.5% | 66 | 421

| <> | 2.2% | 33 | 571

| <> | 1.4% | 21 | 636

| <> | 1.4% | 20 | 1.6k

| <> | 1.2% | 18 | 441

| <> | 0.4% | 6 | 1.7k

| <> | 0.2% | 3 | 1.7k

| <> | 0.2% | 3 | 497

|===

Coming in with 0 responses this year were:

  • not in survey but active: <> 506{star}, <> 467{star}
  • truly historical dialects: <> 192{star}, <> 94{star},
  • more recent inactive dialects: <> 1.9k{star}, <> 1.1k{star}, <> 1k{star}
  • experimental dialects: <> 975{star}
  • dialects announced in 2026: <> 116{star}, <> 79{star}, <> 20{star}, <> 1{star}, <> 1{star}, <> 3{star}

[#clojure,reftext=§Clojure] == Clojure {s} JVM {s} 2007- https://clojure.org/[Clojure] is the granddaddy of them all. https://en.wikipedia.org/wiki/Clojure[Clojure] was invented by https://github.com/sponsors/richhickey[Rich Hickey]. His first release of Clojure was in 2007. Clojure is maintained by the Clojure Dev Team, which, as of this writing, includes https://github.com/puredanger[Alex Miller], https://fogus.me/me/[Michael Fogus], https://www.jarrodctaylor.com/about/[Jarrod Taylor], https://github.com/ghadishayban[Ghadi Shayban], and https://www.cognitect.com/authors/StuartHalloway.html[Stuart Halloway] (and others!). Rich remains the lead. Clojure runs on the https://en.wikipedia.org/wiki/Java_virtual_machine[Java Virtual Machine] and has reach to the entire Java ecosystem.

Clojure supports targeting dialect-specific code in .cljc files via https://clojure.org/guides/reader_conditionals[Reader conditionals]. Clojure itself recognizes the :clj reader-conditional target, and files with the .clj extension as Clojure code.

[#las3r,reftext=§Las3r] == Las3r {s} ActionScript 2.0 {s} 2008-2011 // Announced ?: First commit 2008-09-13, last 2011-01-29 https://github.com/aemoncannon/las3r[Las3r], a lisp for the https://en.wikipedia.org/wiki/ActionScript[ActionScript] Virtual Machine 2 was created by https://github.com/aemoncannon/[Aemon Cannon] in 2008. Did Aemon create the first alternate dialect of Clojure? Could be!

[#clojureclr,reftext=§ClojureCLR] // Announced 2009-02-16 https://groups.google.com/g/clojure/c/VFccm49iXbo/m/FymmwGoCmBEJ == ClojureCLR {s} .NET Framework {s} 2009- https://github.com/clojure/clojure-clr[ClojureCLR] is a port of Clojure to the Common Language Runtime (which is the execution engine of Microsoft's .Net Framework). ClojureCLR lives under the Clojure Core Team umbrella. Its first commit was by https://github.com/sponsors/dmiller[David Miller] in 2009. David is still the leading force behind this project.

ClojureCLR recognizes the :cljr reader-conditional target, and files with the .cljr extension as ClojureCLR code.

[#scriptjure,reftext=§Scriptjure] == Scriptjure {s} JavaScript {s} 2009-2011 // Announced 2009-10-08 https://groups.google.com/g/clojure/c/7o-qyOamEqA/m/owNW1Qy4vXkJ https://github.com/arohner/scriptjure/[Scriptjure] is a Clojure library for generating JavaScript by https://github.com/arohner[Allan Rohner]. Scriptjure predates <>. This project was announced in 2009, and its last commit was in 2011.

While not actively under development, Scriptjure provided some initial inspiration for <>, <>, and likely, <>.

[#clojurescript,reftext=§ClojureScript] == ClojureScript {s} JavaScript {s} 2011- // Announced 2011-07-21 https://groups.google.com/g/clojure/c/7b34U0Z_ZXQ/m/CVmbo49Rh2MJ https://www.clojurescript.org/[ClojureScript] is a compiler for Clojure that emits JavaScript compatible with the Google Closure optimizing compiler. ClojureScript lives under the Clojure Core Team umbrella. Its first commit was by Rich Hickey in 2011, and its ongoing development has been led by https://github.com/readme/stories/david-nolen[David Nolen] & https://blog.fikesfarm.com/pages/about.html[Mike Fikes]. David remains the active lead to this day.

ClojureScript recognizes the :cljs reader-conditional target, and files with the .cljs extension as ClojureScript code.


While not a dialect in itself, https://github.com/thheller/shadow-cljs[shadow-cljs] is certainly worth mentioning. It was created by https://github.com/sponsors/thheller[Thomas Heller] in 2015. Described as "ClojureScript compilation made easy", it is favoured by many ClojureScript developers because of its ease of use.



In 2024, Google stopped public work on the Closure library. The Clojure Core team now maintains a https://github.com/clojure/closure-library[fork of Closure]. Being Clojure-minded, they undid many past breaking changes committed by Google.


[#planck,reftext=§Planck] == Planck {s} JavaScript {s} 2015-2024 // Announced 2015-07-31 https://groups.google.com/g/clojure/c/VaXIcAe6Sbw/m/SYSp0ErhBAAJ https://github.com/planck-repl/planck[Planck] is a stand-alone ClojureScript REPL announced by https://blog.fikesfarm.com/pages/about.html[Mike Fikes] in 2015. Planck uses https://clojurescript.org/reference/bootstrapping[Self-Hosted/Bootstrapped ClojureScript]. It includes core library extensions to make it more Clojure-like.

Planck ships its own executable and uses the https://docs.webkit.org/Deep%20Dive/JSC/JavaScriptCore.html[JavaScriptCore] engine.

Planck does not seem to be actively developed anymore.

Planck does not have a planck-specific reader conditional target, but recognizes the :cljs reader-conditional target and .cljs file.

[#jank,reftext=§Jank] == Jank {s} C++ atop LLVM jit {s} 2015- // Announced ???, first commit in 2015 // Full time announced https://clojurians.slack.com/archives/C03SRH97FDK/p1727896891784649 https://jank-lang.org/[Jank] is the native Clojure dialect hosted on https://llvm.org/[LLVM] with seamless C++ interop. https://github.com/sponsors/jeaye[Jeaye Wilkerson] started working on Jank in 2015, dove back into the effort in 2022, and went full-time on the project in 2025. Jank has gotten much attention from the Clojure community as Jeaye continues to lead it towards a production release.

Jank recognizes the :jank reader-conditional target, and files with .jank extension as Jank code.

[#lumo,reftext=§Lumo] == Lumo {s} JavaScript {s} 2016-2020 // Announced 2016-11-09 https://clojurians.slack.com/archives/C06MAR553/p1478721253001143 https://github.com/anmonteiro/lumo[Lumo], a fast, cross-platform, standalone ClojureScript environment, was announced in 2016 by https://github.com/sponsors/anmonteiro[Antonio Nuno Monteiro]. Development activity stopped in 2020, and the repository was archived in 2022.

Lumo is similar in spirit to <> but runs on https://nodejs.org[Node.js] and uses the https://v8.dev/[V8] JavaScript engine.

[#joker,reftext=§Joker] == Joker {s} Go {s} 2016- // Announced ??, first release(?) 2016-12-11 https://github.com/candid82/joker/releases/tag/v0.5.0 https://github.com/candid82/joker[Joker] is a small Clojure interpreter, linter, and formatter written in https://go.dev/[Go] by https://github.com/candid82[Roman Bataev]. Its first release was in 2016. Joker is targeted at lightweight scripting with amenities for formatting and scripting.

Fun fact: Joker's linter inspired https://github.com/clj-kondo/clj-kondo[clj-kondo].

Joker recognizes the :joker reader-conditional target, and files with the .joke extension as Joker code.

See also: <>.

[#clojerl,reftext=§CloJerl] == Clojerl {s} Erlang VM {s} 2017- // Announced ??? v0.1.0 released on 2017-10-23, seems still active? https://github.com/clojerl/clojerl[Clojerl], Clojure for the https://www.erlang.org/blog/a-brief-beam-primer/[Erlang VM], was released by https://juan.facorro.com/[Juan Facorro] in 2017.

From the README:

It is fair to say that combining the power of the Erlang VM with the expressiveness of Clojure could provide an interesting, useful result to make the lives of many programmers simpler and make the world a happier place.

Clojerl recognizes the :clje reader-conditional target, and files with the .clje extension as Clojerl code.

[#ferret,reftext=§Ferret] == Ferret {s} Embedded C++11 {s} 2018-2020 // Announced ?? no changelog... does release clojars but doesn't use sortable versions... // first release might be 2018-08-07 https://clojars.org/ferret/versions/0.3.0-9afb392 // last release might be 2020-01-29 https://clojars.org/ferret/versions/0.4.0-171a575 https://github.com/nakkaya/ferret[Ferret], a free software lisp implementation for real time embedded control systems, was released by https://nakkaya.com/contact.html[Nurullah Akkaya] in 2018.

Interesting fact: Perhaps in the spirit of embedding, all source code for the project is kept in a single org-mode file named ferret.org.

See also <>.

[#basilisp,reftext=§Basilisp] == Basilisp {s} Python 3 {s} 2018- // Announced ??? - first release 2018-08-31 https://github.com/basilisp-lang/basilisp/blob/main/CHANGELOG.md#v01dev0---2018-08-31 https://github.com/basilisp-lang/basilisp[Basilisp], a Clojure-compatible(-ish) Lisp dialect hosted on https://www.python.org/[Python 3] with seamless Python interop, was first released by https://github.com/sponsors/chrisrink10[Chris Rink] in 2018.

Basilisp recognizes the :lpy reader-conditional target, and files with the .lpy extension as Basilisp code.


For another way to reach out to the Python ecosystem, have a peek at https://github.com/clj-python/libpython-clj[libpython-clj].


[#babashka,reftext=§Babashka] == Babashka {s} JVM via GraalVM {s} 2019- // Announced 2019-08-09 https://clojurians.slack.com/archives/C06MAR553/p1565359474208600 https://book.babashka.org/[Babashka] is a https://www.graalvm.org/latest/reference-manual/native-image/[native], fast starting Clojure interpreter for cross-platform scripting. This very popular runtime includes many Clojure libraries built-in, and works with a large array of Clojure libraries. https://github.com/sponsors/borkdude[Michiel Borkent] made his first release of Babashka in 2019.

Babashka uses https://github.com/babashka/SCI[SCI], the Small Clojure Interpreter.

Babashka recognizes the :bb (or :clj, whichever comes first) reader-conditional target, and files with the .bb (or .clj) extension as Babashka code.

[#clojurers,reftext=§ClojureRS] == ClojureRS {s} Rust {s} 2020-.?. // Announced ?? no releases, no changelog, first commit 2020-03-18, last commit 2023-04-16 (as of this writing) https://github.com/clojure-rs/ClojureRS[ClojureRS], Clojure, implemented atop https://rust-lang.org/[Rust], was created by https://github.com/Tko1[Cameron Cooper] in 2020.

I don't see any announcements or releases. Perhaps this was an initial experiment.

[#phel,reftext=§Phel] == Phel {s} PHP {s} 2020- // First commit 2020-04-19, first release v0.1.0 on 2021-01-31 https://phel-lang.org/[Phel], a functional, Lisp-inspired language that compiles to https://www.php.net/[PHP], was created by https://github.com/jenshaase[Jens Haase] in 2020 and first released as v0.1.0 in 2021. Inspired by Clojure, Phel brings macros, persistent data structures, and a REPL to the PHP ecosystem, with seamless PHP interop. Phel is currently maintained by https://github.com/Chemaclass[Chemaclass].

Phel recognizes the :phel reader-conditional target, and files with the .phel extension as Phel code.


Phel is distributed through https://packagist.org/packages/phel-lang/phel-lang[Composer] (composer require phel-lang/phel-lang), giving direct access to the PHP ecosystem.


[#let-go,reftext=§let-go] == let-go {s} Go {s} 2021- // Announced 2021-03-07 https://clojurians.slack.com/archives/C06MAR553/p1615154906270600 // copied from README: https://github.com/nooga/let-go[let-go] is a Clojure dialect with a bytecode compiler and stack VM, written in Go. A single {tilde}10.7MB binary, {tilde}7ms cold start, no JVM. It passes the https://github.com/jank-lang/clojure-test-suite[jank-lang test suite].

https://github.com/nooga[Marcin Gasperowicz] announced let-go in 2021.

let-go recognizes the :lg reader-conditional target, and files with the .lg extension as let-go code.

[#scittle,reftext=§Scittle] == Scittle {s} JavaScript {s} 2021- // Announced 2021-06-12 https://clojurians.slack.com/archives/C06MAR553/p1623510278217800 https://github.com/babashka/scittle[Scittle] allows you to execute Clojure(Script) directly from browser script tags via https://github.com/babashka/SCI[SCI]. https://github.com/sponsors/borkdude[Michiel Borkent] announced Scittle in 2021.

Scittle allows for quick front-end development with no build ceremony at all.

Scittle recognizes the :scittle reader-conditional target.

[#nbb,reftext=§Nbb] == nbb {s} JavaScript {s} 2021- // Announced 2021-07-31 https://clojurians.slack.com/archives/C06MAR553/p1627745756012600 https://github.com/babashka/nbb[nbb] provides scripting in Clojure on https://nodejs.org[Node.js] using https://github.com/babashka/SCI[SCI]. It can be thought of as Babashka, but for Node.js. https://github.com/sponsors/borkdude[Michiel Borkent] announced nbb in 2021.

Nbb recognizes the :org.babashka/nbb (and :cljs, whichever comes first) reader-conditional tag.

[#joyride,reftext=§Joyride] == Joyride {s} JavaScript {s} 2022- // Announced 2022-04-07 https://clojurians.slack.com/archives/C06MAR553/p1651070702375889 https://github.com/BetterThanTomorrow/joyride[Joyride], making VS Code hackable like Emacs since 2022, was created by https://github.com/sponsors/PEZ[Peter Strömberg] and https://github.com/sponsors/borkdude[Michiel Borkent].

Joyride uses https://github.com/babashka/SCI[SCI], the Small Clojure Interpreter.

Joyride recognizes the :joyride (and :cljs) reader-conditional target.

[#clojuredart,reftext=§ClojureDart] == ClojureDart {s} Flutter & Dart {s} 2022- // Announced 2022-04-19 https://clojurians.slack.com/archives/C06MAR553/p1650373742801309 https://github.com/Tensegritics/ClojureDart[ClojureDart] is a Clojure dialect for https://flutter.dev/[Flutter] and https://dart.dev/[Dart]. The inventors and leads for this project are https://github.com/sponsors/cgrand[Christophe Grand] & https://github.com/sponsors/dupuchba[Baptiste Dupuch]. It was first announced in 2022, is being used for production applications, and remains under active development.

ClojureDart supports multiple targets. It can compile to native binaries (iOS, Android, macOS, Linux, and Windows) and can also target JavaScript and WASM.

ClojureDart recognizes the :cljd reader-conditional target, and files with the .cljd extension as ClojureDart code.

[#cherry,reftext=§Cherry] == Cherry {s} JavaScript {s} 2022- // Announced 2022-08-02 https://clojurians.slack.com/archives/C06MAR553/p1659438874095699 https://github.com/squint-cljs/cherry[Cherry] is an experimental ClojureScript to https://hacks.mozilla.org/2015/08/es6-in-depth-modules/[ES6 module] compiler. https://github.com/sponsors/borkdude[Michiel Borkent] first announced Cherry in 2022.

Although <> and Cherry share some underlying tech, Cherry is a full-fledged ClojureScript compiler. It might gain traction, or it might inspire changes to <>, or both.

Fun fact: Cherry was initially forked from <>.

Cherry recognizes the :cherry reader-conditional target.

[#squint,reftext=§Squint] == Squint {s} JavaScript {s} 2022- // Announced 2022-08-18 https://clojurians.slack.com/archives/C06MAR553/p1769439178989039 https://github.com/squint-cljs/squint[Squint] is a light-weight ClojureScript dialect. https://github.com/sponsors/borkdude[Michiel Borkent] first released Squint in 2022.

If you squint, it looks like Clojure, but it is really a lightweight transpiler of ClojureScript syntax to mutable JavaScript.

Fun fact: Squint was initially forked from <>.

Fun fact: Squint was originally called ClavaScript.

Squint recognizes the :squint reader-conditional target.

[#glojure,reftext=§Glojure] == Glojure {s} Go {s} 2023- // James Hamlin version: first commit 2022-11-05, first release 2023-11-07 // David Jarvis version: Announced 2017-04-04 https://clojurians.slack.com/archives/C06MAR553/p1491337638160799 https://github.com/glojurelang/glojure[Glojure] is a Clojure interpreter hosted on https://go.dev/[Go] with the Clojure core libraries available (as Go), full Go interop support, AOT compilation to Go source code, and REPL support. https://github.com/jfhamlin[James Hamlin] made his first release of Glojure in 2023.

In 2025, https://github.com/ingydotnet/[Ingy döt Net] started collaborating on Glojure and in 2026 created the Glojure Automation Tool, https://gloathub.org/[Gloat]. Gloat is a zero-dependency CLI that compiles Clojure (and https://yamlscript.org[YAMLScript]) code to Go-project-ready Go code, native binaries & shared libraries (for more than 20 architectures), and Wasm binaries (both server and browser). Gloat is currently using https://github.com/gloathub/glojure[an actively developed fork of Glojure] with plans to merge improvements and bug fixes upstream.

Glojure recognizes the :glj reader-conditional target, and files with the .glj extension as Glojure code.


In your travels, you might also stumble upon another https://github.com/venantius/glojure[Glojure] by https://github.com/venantius[David Jarvis]. This work was announced in 2017. It is documented as incomplete, and has not had new activity since 2017.


See also: <> and <>.

[#clojurewasm,reftext=§ClojureWasm] == ClojureWasm {s} WebAssembly {s} 2026- // Announced ???, first release 2026-02-13 https://github.com/clojurewasm/ClojureWasm/releases/tag/v0.1.0 https://github.com/clojurewasm/ClojureWasm[ClojureWasm] is an independent Clojure runtime implemented in https://ziglang.org/[Zig], optimized for high-performance native execution and deep WebAssembly runtime integration. https://github.com/sponsors/chaploud[Shota Kudo] created ClojureWasm in 2026.

This Pre-Alpha experiment can interop with https://webassembly.github.io/spec/core/syntax/modules.html[WebAssembly modules]. It can also be used to build your own stand-alone executable that does not require ClojureWasm.

ClojureWasm recognizes the :cljw (and :clj) reader-conditional target.

[#cream,reftext=§Cream] == Cream {s} JVM via GraalVM + Crema {s} 2026- // Announced 2026-02-22 https://clojurians.slack.com/archives/C06MAR553/p1771779902327969 https://github.com/borkdude/cream[Cream] is a fast starting Clojure runtime built with GraalVM native-image + https://github.com/oracle/graal/issues/11327[Crema] Cream is another https://github.com/sponsors/borkdude[Michiel Borkent] experiment, created in 2026.

GraalVM's Crema allows for eval, so unlike <>, it does not require https://github.com/babashka/SCI[SCI] and supports runtime class loading.

This is a very early, but interesting, experiment.

Since this is really running Clojure on a JVM, is it really a dialect? We can rationalize that its unique runtime (and its limitations) make it one. Besides, we aren't terribly pedantic.

[#clojurefnl,reftext=§ClojureFnl] == ClojureFnl {s} Fennel {s} 2026- // Announced 2026-04-08 here https://andreyor.st/posts/2026-04-07-clojure-on-fennel-part-one-persistent-data-structures/ https://gitlab.com/andreyorst/clojurefnl[ClojureFnl] is an early proof of concept of a Clojure to https://fennel-lang.org/[Fennel] transpiler. It was https://andreyor.st/posts/2026-04-07-clojure-on-fennel-part-one-persistent-data-structures/[announced] in 2026 by https://andreyor.st/about/[Andrey Listopadov]. The ClojureFnl runtime host is https://www.lua.org/start.html[Lua].

ClojureFnl recognizes the :cljfnl reader conditional target.

[#cljrs,reftext=§cljrs] == cljrs {s} Rust {s} 2026- // Shared on Slack on 2026-04-19 https://clojurians.slack.com/archives/C03RZGPG3/p1776625152001149 https://www.tytr.dev/about[Ty Tracey] started work on https://tytrdev.github.io/cljrs/[cljrs] in 2026.

// copied from cljrs web page: cljrs is a Clojure dialect implemented from scratch in Rust. The reader, evaluator, macros, and persistent collections run as a tree walker. Type-hinted functions compile to native code through MLIR and LLVM. GPU kernels compile to WGSL and run on Metal, Vulkan, DX12, or WebGPU.

[#go-joker,reftext=§go-joker] == go-joker {s} Go {s} 2026- // Shared on X on 2026-04-29 https://x.com/rcarmo/status/2049511236191052132 https://github.com/sponsors/rcarmo[Rui Carmo] announced https://github.com/rcarmo/go-joker[go-joker] in 2026.

go-joker is an optimized fork of <> for inclusion in https://github.com/rcarmo/gi[gi], a self-hosted coding agent.

See also: <>.

[#jolt,reftext=§Jolt] == Jolt {s} Janet {s} 2026- // Shared on Slack 2026-06-05 https://clojurians.slack.com/archives/C06MAR553/p1780694737700419 https://github.com/jolt-lang/jolt[Jolt], a Clojure interpreter running on Janet, was announced by https://github.com/sponsors/yogthos[Dmitri Sotnikov] in 2026.

// copied from README Jolt reads Clojure source and, by default, compiles each form to native Janet bytecode — falling back to a tree-walking interpreter for forms the compiler doesn't handle, so results always match the interpreter. It ships a Clojure-compatible standard library. The goal is a Janet-hosted https://github.com/borkdude/sci[SCI]-style runtime with a minimal bootstrap.

Jolt recognizes the :jolt reader conditional target, and files with the .jolt extension as Jolt code.

== License

Distributed under the EPL License, same as Clojure. See LICENSE.