|
| 1 | += Clojure Deref (Jun 16, 2026) |
| 2 | +Christoph Neumann |
| 3 | +2026-06-16 |
| 4 | +:jbake-type: post |
| 5 | + |
| 6 | +ifdef::env-github,env-browser[:outfilesuffix: .adoc] |
| 7 | + |
| 8 | +Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem (feed: https://clojure.org/feed.xml[RSS]). |
| 9 | + |
| 10 | + |
| 11 | +== Selected Highlights |
| 12 | + |
| 13 | +Would you like to learn more about optimizing Clojure code? |
| 14 | +Anders Murphy investigated the performance of |
| 15 | +https://andersmurphy.com/2026/06/05/the-perils-of-uuid-primary-keys-in-sqlite.html[UUIDs as primary keys in SQLite]. |
| 16 | +Also, Sashko Yakushev spent some time |
| 17 | +https://www.metabase.com/blog/improving-performance-clojure-development-tools[improving the performance of clojure-lsp]. |
| 18 | +Learn from their experience, and if you've never had a chance, read about |
| 19 | +https://clojure-goes-fast.com/kb/profiling/clj-async-profiler/[clj-async-profiler] and |
| 20 | +https://clojure-goes-fast.com/kb/profiling/clj-async-profiler/diffgraphs/[differential |
| 21 | +flamegraphs]. Useful tools! |
| 22 | + |
| 23 | +And speaking of performance, https://www.flow-storm.org/[FlowStorm] 4.6.0 was |
| 24 | +released. It added support for `async` and `await` in ClojureScript. Calling |
| 25 | +FlowStorm a "debugger" only scratches the surface of what it can do. Take a |
| 26 | +look at its https://www.youtube.com/watch?v=YYHRx3EnPmg[ClojureScript support]. |
| 27 | + |
| 28 | +On the subject of Clojure dialects, https://github.com/jolt-lang/jolt[Jolt], a |
| 29 | +new dialect hosted on Janet, has been making rapid progress since last week. It |
| 30 | +supports https://github.com/nrepl/nREPL[nREPL], |
| 31 | +https://github.com/ring-clojure/ring[Ring], |
| 32 | +https://clojure.org/reference/deps_edn[deps.edn], |
| 33 | +https://github.com/yogthos/Selmer[Selmer], |
| 34 | +https://github.com/seancorfield/honeysql[HoneySQL], and more. |
| 35 | +Join the #jolt channel on https://clojurians.net/[Clojurians Slack] to keep up |
| 36 | +on all the latest developments. Jolt joins https://github.com/nooga/let-go[let-go], |
| 37 | +https://github.com/glojurelang/glojure[Glojure] and |
| 38 | +https://github.com/phel-lang/phel-lang[Phel] as Clojure dialects seeing a surge |
| 39 | +in development due to LLMs. |
| 40 | + |
| 41 | +If you use Emacs, check out |
| 42 | +https://metaredux.com/posts/2026/06/16/cider-1-22.html[CIDER 1.22.0] which is |
| 43 | +out after 4 months of development work. Thanks to funding from |
| 44 | +https://www.clojuriststogether.org/[Clojurists Together] and others, Bozhidar |
| 45 | +was able to tackle some problems that have been bugging him for years! Perhaps |
| 46 | +they were also bugging you? |
| 47 | + |
| 48 | +When you're not editing Clojure application code, perhaps you'd like to edit |
| 49 | +some 3D shapes as Clojure code. For that, look no further than |
| 50 | +https://github.com/vipenzo/ridley/[Ridley]: a turtle graphics 3D modeling tool. |
| 51 | +https://vipenzo.github.io/ridley/[Try it out online]. |
| 52 | + |
| 53 | +Clojure core can map, filter, and reduce millions of maps in memory, but should |
| 54 | +you? If your data situation has gotten to that point, you might want |
| 55 | +https://github.com/yogthos/flatiron[Flatiron], an in-memory columnar analytics |
| 56 | +library. Load your data and try some grouping, aggregating, filtering, and |
| 57 | +sorting--all in process, without a database. |
| 58 | + |
| 59 | +Do you love immutable history but hate running out of storage? |
| 60 | +Use https://github.com/simplemono/eventstore[Event Store] to save all your |
| 61 | +events in a minimal, append-only log in any S3-compatible object-store. |
| 62 | + |
| 63 | +Business workflows and form logic may not be the most captivating technology in |
| 64 | +software engineering these days, but if you need to make a bunch of form-data |
| 65 | +screens, https://github.com/yogthos/stepvine[Stepvine] is a new project to |
| 66 | +help. It is a "server-authoritative reactive form & app builder." You describe |
| 67 | +your forms as EDN data, and it runs all the logic on the server while keeping |
| 68 | +the UI responsive using https://data-star.dev/[Datastar]. |
| 69 | + |
| 70 | +You know what we say in the Clojure community: "the library isn't dead, it's |
| 71 | +just done." Well, sometimes it takes 7 years to discover it's not done, and so, |
| 72 | +it was time to release https://github.com/liwp/again[again] again, this time |
| 73 | +with circuit breakers. And if one day again, it's time to release again, we |
| 74 | +look forward to seeing again again. |
| 75 | + |
| 76 | + |
| 77 | +== Save the Date |
| 78 | + |
| 79 | +Save the date! HeartConf 2027 is happening August 18-19, 2027, in Mechelen, |
| 80 | +Belgium. It is the successor to Heart of Clojure, still with a strong Clojure |
| 81 | +representation, but also inviting friends from other communities. |
| 82 | + |
| 83 | + |
| 84 | +== Upcoming Events |
| 85 | + |
| 86 | +* https://2026.clojure-conj.org/[Clojure/Conj 2026]: Sep 30-Oct 2. Charlotte, NC, USA. https://2026.clojure-conj.org/[Early Bird tickets]. |
| 87 | +* https://2027.euroclojure.org/[EuroClojure 2027]: May 19-21, 2027. Prague, Czech Republic. https://forms.gle/JjzsY6n25oSCUMas6[Join the mailing list] |
| 88 | + |
| 89 | + |
| 90 | +== Podcasts, videos, and media |
| 91 | + |
| 92 | +* https://youtu.be/jvOIHMbHbLk[Deploying Ring Vs. Deploying Rails - A Rant.] - Clojure Diary |
| 93 | + |
| 94 | + |
| 95 | +== Blogs, articles, and news |
| 96 | + |
| 97 | +* https://blog.michielborkent.nl/clj-kondo-call-graph-metadata.html[Finding transitive var usages with clj-kondo] - Michiel Borkent |
| 98 | +* https://emil0r.com/posts/2026-06-10-glint-dev-diary-iv/[Glint: Dev diary IV - One step forward, two steps back] - Emil Bengtsson |
| 99 | +* https://www.tomwaddington.dev/paredit-helix.html[Parediting in Helix] - Tom Waddington |
| 100 | +* https://wedesoft.github.io/sfsim/interface/2026/06/11/navball-mfd.html[Navball MFD in sfsim] - Jan Wedekind |
| 101 | +* https://ertu.dev/posts/4_clojure-reaching-c-performance/[Clojure is almost as fast as C (with some help)] - Ertuğrul Çetin |
| 102 | +* https://epiccastle.io/blog/announcing-clojuressh/[Announcing ClojureSSH] - Crispin Wellington |
| 103 | +* https://clojure-diary.gitlab.io/2026/06/15/deploying-ring-app-on-ubuntu-26-04.html[Deploying Ring App on Ubuntu 26.04] - Karthikeyan A K |
| 104 | +* https://biffweb.com/p/fx/[biff.fx: lightweight effects system] - Jacob O'Bryant |
| 105 | +* https://metaredux.com/posts/2026/06/16/cider-1-22.html[CIDER 1.22 (“São Miguel”)] - Bozhidar Batsov |
| 106 | +* https://yogthos.net/posts/2026-06-08-dirge-code.html[Making budget models punch above their weight with a smart harness] - Dmitri Sotnikov |
| 107 | + |
| 108 | +== Libraries and Tools |
| 109 | + |
| 110 | +Debut release |
| 111 | + |
| 112 | +* https://github.com/yogthos/flatiron[flatiron] - A columnar database for analytics |
| 113 | +* https://codeberg.org/timokramer/weowe[weowe] - A native Android app (ClojureDart/Flutter) for tracking shared expenses between people. Local-first. |
| 114 | +* https://github.com/replikativ/dvergr[dvergr] - FRP-based LLM agent framework with git-like memory model. |
| 115 | +* https://github.com/TheFakeLorLyons/clj-colors[clj-colors] - A color palette utility intended for generative art with clojure. |
| 116 | +* https://github.com/epiccastle/clojuressh[clojuressh] - A Clojure library for using SSH in Clojure that is API compatible with bbssh |
| 117 | +* https://codeberg.org/liblin/url_redirect[libl.in] - A URL redirect app for all Codeberg users |
| 118 | +* https://github.com/simplemono/eventstore[eventstore] - A minimal, production-oriented append-only event log, backed by S3-compatible object storage. |
| 119 | +* https://github.com/maxweber/todo-sqlite-eventstore[todo-sqlite-eventstore] - A basic todo app that stores events in Tigris Data and uses SQLite for the projected todos read model. Events are the source of truth; the todos table is rebuilt from projections. |
| 120 | +* https://github.com/jacobobryant/biff/tree/v2.x/libs/fx[biff.fx] - Turn your functions into pure state machines. |
| 121 | +* https://github.com/jacobobryant/biff/tree/v2.x/libs/config[biff.config] - A light Biff wrapper around Aero. |
| 122 | +* https://github.com/yogthos/stepvine[stepvine] - form building platform |
| 123 | + |
| 124 | +Updates |
| 125 | + |
| 126 | +* https://github.com/babashka/sci[sci] https://github.com/babashka/sci/releases/tag/v0.13.52[0.13.52] - Configurable Clojure/Script interpreter suitable for scripting and Clojure DSLs |
| 127 | +* https://github.com/babashka/nbb[nbb] https://github.com/babashka/nbb/blob/main/CHANGELOG.md[1.4.208] - Scripting in Clojure on Node.js using SCI |
| 128 | +* https://github.com/phel-lang/phel-lang[phel-lang] https://github.com/phel-lang/phel-lang/releases/tag/v0.44.0[0.44.0] - A functional, Lisp-inspired language that compiles to PHP. Inspired by Clojure, Phel brings macros, persistent data structures, and expressive functional idioms to the PHP ecosystem. |
| 129 | +* https://github.com/flow-storm/flow-storm-debugger[flow-storm-debugger] https://github.com/flow-storm/flow-storm-debugger/blob/master/CHANGELOG.md[4.6.0] - A debugger for Clojure and ClojureScript with some unique features. |
| 130 | +* https://github.com/avanelsas/bareforge[bareforge] https://github.com/avanelsas/bareforge/releases/tag/v0.7.1[0.7.1] - Companion visual builder for BareDOM web components. Drag components, declare reactive state, export fully interactive CLJS or JS project |
| 131 | +* https://github.com/tolitius/mount[mount] https://github.com/tolitius/mount/blob/master/CHANGELOG.md[0.1.24] - managing Clojure and ClojureScript app state since (reset) |
| 132 | +* https://github.com/multiplyco/quiescent[quiescent] https://github.com/multiplyco/quiescent/blob/main/CHANGELOG.md[0.3.0] - A Clojure library for composable async tasks with automatic parallelization, structured concurrency, and parent-child and chain cancellation |
| 133 | +* https://github.com/funcool/promesa[promesa] https://github.com/funcool/promesa/blob/master/CHANGELOG.md[12.0.0] - A promise library & concurrency toolkit for Clojure and ClojureScript. |
| 134 | +* https://github.com/weavejester/teensyp[teensyp] https://github.com/weavejester/teensyp/commits/0.6.4[0.6.4] - A small, zero-dependency Clojure TCP server that uses Java NIO |
| 135 | +* https://github.com/babashka/cli[cli] https://github.com/babashka/cli/releases/tag/v0.11.72[0.11.72] - Turn Clojure functions into CLIs! |
| 136 | +* https://github.com/replikativ/yggdrasil[yggdrasil] https://github.com/replikativ/yggdrasil/commits/0.2.29[0.2.29] - Git-like, causal space-time lattice abstraction over systems supporting this memory model. |
| 137 | +* https://github.com/metabase/hawk[hawk] 1.0.14 - It watches your code like a hawk! You like tests, right? Then run them with our state-of-the-art Clojure test runner. |
| 138 | +* https://github.com/replikativ/spindel[spindel] https://github.com/replikativ/spindel/commits/v0.1.23[0.1.23] - Cross-platform FRP runtime with a git-like memory model. |
| 139 | +* https://github.com/replikativ/pg-datahike[pg-datahike] https://github.com/replikativ/pg-datahike/releases/tag/v0.1.45[0.1.45] - Postgres compatibility layer for Datahike. |
| 140 | +* https://github.com/flow-storm/clojurescript[ClojureScriptStorm] https://github.com/flow-storm/clojurescript/blob/cljs-storm/CHANGELOG.md[1.12.145-1] - A fork of the official ClojureScript compiler with extra code to make it a dev compiler |
| 141 | +* https://github.com/cnuernber/charred[charred] https://github.com/cnuernber/charred/blob/master/CHANGELOG.md[1.039] - zero dependency efficient read/write of json and csv data. |
| 142 | +* https://github.com/vipenzo/ridley[ridley] https://github.com/vipenzo/ridley/releases/tag/v3.1.0[3.1.0] - A turtle graphics-based 3D modeling tool for 3D printing. Write Clojure scripts, see real-time 3D preview, export STL. WebXR support for VR/AR visualization. |
| 143 | +* https://github.com/replikativ/raster[raster] https://github.com/replikativ/raster/releases/tag/v0.1.3[0.1.3] - Fast, functional numerical computing for Clojure/JVM. |
| 144 | +* https://github.com/borkdude/html[html] https://github.com/borkdude/html/releases/tag/v0.2.5[0.2.5] - Html generation library inspired by squint's html tag |
| 145 | +* https://github.com/taoensso/encore[encore] https://github.com/taoensso/encore/blob/master/CHANGELOG-template.md[3.165.0] - Core utils library for Clojure/Script |
| 146 | +* https://github.com/cjohansen/dataspex[dataspex] https://github.com/cjohansen/dataspex/commits/v2026.06.3[2026.06.3] - See the shape of your data: point-and-click Clojure(Script) data browser |
| 147 | +* https://github.com/replikativ/stratum[stratum] https://github.com/replikativ/stratum/releases/tag/v0.3.75[0.3.75] - Versioned, fast and scalable columnar database. |
| 148 | +* https://github.com/liwp/again[again] https://github.com/liwp/again/blob/main/CHANGELOG.md[2.0.0] - A retry library for Clojure |
| 149 | +* https://github.com/marksto/clj-tg-bot-api[clj-tg-bot-api] 1.2.270 - 🤖 The latest Telegram Bot API spec and client lib for Clojure-based apps |
| 150 | +* https://github.com/Blockether/svar[svar] https://github.com/Blockether/svar/releases/tag/v0.7.29[0.7.29] - Type‑safe LLM output for Clojure. Works with any text‑only model. |
| 151 | +* https://github.com/replikativ/ansatz[ansatz] https://github.com/replikativ/ansatz/commits/0.1.58[0.1.58] - Dependently typed Clojure DSL with a Lean4 compatible kernel. |
| 152 | +* https://github.com/clojure-emacs/cider[cider] https://github.com/clojure-emacs/cider/releases/tag/v1.22.0[1.22.0] - The Clojure Interactive Development Environment that Rocks for Emacs |
| 153 | +* https://github.com/sstraust/deft[deft] 0.2.0 - A collection of macros designed to address issues with objects in Clojure. |
0 commit comments