Skip to content

Commit 8685330

Browse files
add deref
1 parent f354db7 commit 8685330

1 file changed

Lines changed: 222 additions & 0 deletions

File tree

content/news/2026/06/23/deref.adoc

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
= Clojure Deref (Jun 23, 2026)
2+
Christoph Neumann
3+
2026-06-23
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+
https://github.com/ring-clojure/ring[Ring] released v1.15.5 which contains a
14+
https://github.com/ring-clojure/ring/blob/master/CHANGELOG.md[security fix] for
15+
a regular expression denial of service (ReDoS) attack.
16+
17+
https://github.com/babashka/sci[SCI] released v0.13.53 to
18+
https://github.com/babashka/sci/blob/master/CHANGELOG.md#01353-2026-06-20[fix a sandbox escape].
19+
SCI is the Small Clojure Interpreter used in
20+
https://github.com/babashka/babashka[babashka],
21+
https://github.com/babashka/nbb[nbb],
22+
https://github.com/nextjournal/clerk[clerk],
23+
https://github.com/BetterThanTomorrow/joyride/[joyride] and
24+
https://github.com/babashka/sci#projects-using-sci[other projects].
25+
26+
If you like https://github.com/borkdude/reagami[Reagami], but you want even
27+
more pure data in your lightweight ClojureScript UIs, look no further. Team
28+
https://github.com/cjohansen/replicant[Replicant] combined powers with Team
29+
https://github.com/squint-cljs/squint[Squint] to bring
30+
https://github.com/squint-cljs/squint/tree/main/examples/replicant[your
31+
data-driven UIs into focus] by squinting, of course.
32+
33+
And speaking of Squint, as of v0.13.194, lazy seqs got a big performance boost,
34+
and you can specify dependencies with `:git/sha` and `:local/root`. See
35+
https://github.com/squint-cljs/squint/blob/main/CHANGELOG.md#013194[all the
36+
details].
37+
38+
Not to be outdone, thanks to a team assist, Replicant released v2026.06.1 to
39+
https://github.com/cjohansen/replicant/commit/b63d6ff33dbf2fd56f430802e3675ffb4f39e39c[fix
40+
a long standing annoyance] with tidying DOM nodes. Another team score for
41+
https://github.com/cjohansen[Christian Johansen] and
42+
https://github.com/borkdude[Michiel Borkent].
43+
44+
Perhaps you're not fond of web UIs because your heart's been stolen by the CLI. Now
45+
you can tell your CLI, "you complete me." Quite literally!
46+
https://github.com/babashka/cli[Babashka CLI]
47+
added shell completions and automatic help. It's like Cupid fired a
48+
https://github.com/Tensegritics/ClojureDart[ClojureDart] right through the
49+
heart. Oh yes, Babashka CLI added support for that too.
50+
https://github.com/babashka/cli/blob/main/CHANGELOG.md#v01174-2026-06-23[See all the details.]
51+
52+
Sometimes, you just don't want to talk. (It's not you, it's me!) In the spirit of
53+
rejection, https://github.com/taoensso/sente/[Sente] v1.22 added a
54+
https://github.com/taoensso/sente/releases/tag/v1.22.0-RC1[flexible connection
55+
rejection hook]. Try again later. Maybe.
56+
57+
If you want to talk, NATS style, but you've been flummoxed by all that
58+
complicated stateful interop. No one saying what they really mean in plain
59+
data. Oh! Why do we play these games? Agonize no longer.
60+
https://github.com/lispyclouds/claxon[Claxon] is here to cut the drama and
61+
simplify your NATS messaging through a minimal, data-driven API with only one
62+
dependency. If only it could bring such simplicity and clarity to the
63+
complicated matters of the heart.
64+
65+
Maybe you didn't say what you really meant? Perhaps it could be even better?
66+
Say it again, even faster with
67+
https://github.com/clj-commons/rewrite-clj[rewrite-clj] v1.2.55. It's the
68+
latest in a series of performance improvements. See
69+
https://github.com/clj-commons/rewrite-clj/blob/main/CHANGELOG.adoc[the changes].
70+
71+
And if you want to go even faster, take a look at
72+
https://github.com/replikativ/raster[Raster]: fast numerical computing for
73+
Clojure that compiles down to JVM bytecode or Web Assembly (WASM). For some fun, play
74+
https://replikativ.github.io/raster/asteroids/[Astroids] or
75+
https://replikativ.github.io/raster/valley/[Valley].
76+
For something serious, look at
77+
https://github.com/replikativ/umap-rstr[Uniform Manifold Approximation and Projection]
78+
or https://github.com/replikativ/evoc-rstr[Embedding Vector Oriented Clustering].
79+
80+
And speaking of WASM, what if your Clojure host was WASM itself? What if WASM
81+
was the lingua franca to let you call functions from Rust, Go, Zig, C or any
82+
other language that can target WASM?
83+
https://github.com/clojurewasm/ClojureWasm[ClojureWasm] is an experimental
84+
dialect to explore that future.
85+
86+
Also on the young dialect front, https://github.com/jolt-lang/jolt[Jolt] has
87+
pivoted, yet again, to target https://cisco.github.io/ChezScheme/[Chez Scheme].
88+
Goodbye Janet. The heart is fickle. Chez is faster, with true threading, and
89+
easy access to native code, while still starting a lightweight runtime instantly.
90+
91+
On the tried-and-true dialect front, if you're using https://calva.io/[Calva] for
92+
https://clojurescript.org/[ClojureScript] via
93+
https://github.com/thheller/shadow-cljs[shadow-cljs], Calva v2.0.592 has
94+
https://github.com/BetterThanTomorrow/calva/issues/3244[improved support for
95+
working with simultaneous runtimes]. It's particularly helpful when working
96+
with multiple devices at once.
97+
98+
If you like to use Calva for AI-assisted coding,
99+
https://github.com/BetterThanTomorrow/calva-backseat-driver[Calva Backseat Driver] added
100+
https://github.com/BetterThanTomorrow/calva-backseat-driver/blob/master/CHANGELOG.md#v0037---2026-06-22[support for Cursor with zero config].
101+
102+
103+
Clojure is taking on Electronic Health Records (EHR). Have you suffered through
104+
EHR integrations? Have you told yourself,
105+
https://clojureverse.org/t/ehr-adapter-declarative-ehr-integrations-in-clojure/14934["There must be an easier way!"]
106+
Look no further than the https://github.com/SamuelCarriles/ehr-adapter[ehr-adapter].
107+
108+
Do you use https://github.com/clj-python/libpython-clj[libpython-clj]
109+
as a bridge to PyTorch? Would you like to cut down on the boilerplate? Take a
110+
look at https://github.com/rthadani/clj-pytorch[clj-pytorch] to see how it can
111+
help.
112+
113+
With all that important work getting done, don't forget to have a little fun with Clojure too.
114+
https://github.com/plexus[Arne Brasseur] started a list for
115+
https://github.com/plexus/awesome-creative-clojure[Awesome Creative Clojure]
116+
projects. Take a look. Better yet, go make something delightful and share it
117+
with the community. Perhaps you'll find yourself in the Deref too.
118+
119+
120+
== Clojure/Conj 2026
121+
122+
Wednesday, September 30 is Workshop Day.
123+
124+
This year, as a gift to the community, the full day of workshops are included
125+
at one low price starting at just $42!
126+
127+
One morning + one afternoon session of your choice: Babashka, Datomic, Calva, AI tooling, and more.
128+
129+
https://2026.clojure-conj.org/workshops[Get your Workshop Day pass] before the price goes up.
130+
131+
Also, the room block at the
132+
https://www.hilton.com/en/attend-my-event/nubankclojureconj2026/[conference
133+
hotel is available now]! The group rate expires August 31.
134+
135+
136+
== Jank Survey
137+
138+
139+
https://github.com/jeaye[Jeaye Wilkerson] would like to get
140+
https://jank-lang.org/[jank] into your hands as soon as possible. How does that
141+
involve you? Help Jeaye by taking a short survey.
142+
143+
https://forms.gle/MrooqChbKyowoMDNA[Jank Adoption Survey]
144+
145+
146+
== Upcoming Events
147+
148+
* https://www.meetup.com/clojure-br/events/315182987/[Clojure BR: Introduzindo programação funcional na Carteira Digital de Trânsito]: Jun 25
149+
* https://clojureverse.org/t/clojure-real-world-data-63-special-hour/14935[Clojure real-world-data 63]: Jun 26. Note: different time than usual.
150+
* https://2026.clojure-conj.org/[Clojure/Conj 2026]: Sep 30-Oct 2. Charlotte, NC, USA. https://2026.clojure-conj.org/[Early Bird tickets].
151+
* https://2027.euroclojure.org/[EuroClojure 2027]: May 19-21, 2027. Prague, Czech Republic. https://forms.gle/JjzsY6n25oSCUMas6[Join the mailing list]
152+
* HeartConf 2027: Aug 18-19, 2027, in Mechelen, Belgium. Save the date.
153+
154+
155+
== Podcasts, videos, and media
156+
157+
* https://youtu.be/2ECucq-mTGg[Datastar: It’s Pretty Good — with David Nolen] - Datastar
158+
* https://youtu.be/bQSQua46cdc[Clojure Corner: Interview with Burin Choomnuan] - Flexiana
159+
* https://youtu.be/PjWZTyf_z-A[Clojure Cond Case Else] - Mike Møller Nielsen
160+
* https://youtu.be/ha4gSmzaQaE[Clojure Exception Handling] - Mike Møller Nielsen
161+
162+
163+
== Blogs, articles, and news
164+
165+
* https://www.clojuriststogether.org/news/june-2026-short-term-project-updates/[June 2026 Short Term Project Updates] - Kathy Davis
166+
* https://gloathub.org/blog/2026/06/16/gloat-q2-grant-halfway-report/[Gloat Q2 Grant Halfway Report - GloatHub] - Ingy dot Net
167+
* https://yogthos.net/posts/2026-06-17-perlin-flow.html[The Hidden Elegance of Gradient Noise] - Dmitri Sotnikov
168+
* https://conjobble.velisco.com/2026/06/17/bowling-kata.html[Bowling Kata] - Steve Miner
169+
* https://blog.michielborkent.nl/babashka-cli-help-and-completions.html[Automatic help and completions in Babashka CLI] - Michiel Borkent
170+
* https://blog.taylorwood.io/2026/06/19/social-norms-and-low-doers.html[Cartels of Mediocrity] - Taylor Wood
171+
* https://clojurecivitas.org/math/stats/quantquestions/what_are_the_odds/cheat_zine.html[A Survival Themed Probability Cheatsheet Zine – Clojure Civitas] - Timothy Pratley
172+
173+
== Libraries and Tools
174+
175+
Debut release
176+
177+
* https://github.com/plexus/awesome-creative-clojure[awesome-creative-clojure] - A list of creative coding resources for Clojure and its dialects
178+
* https://github.com/replikativ/umap-rstr[umap-rstr] - UMAP (Uniform Manifold Approximation and Projection) for Clojure — a port of umap-learn on the raster typed-dispatch compiler.
179+
* https://github.com/replikativ/evoc-rstr[evoc-rstr] - EVoC (Embedding Vector Oriented Clustering) for Clojure — a port of the Tutte Institute's evoc on raster + umap-rstr.
180+
* https://github.com/jaketothepast/codetutor[codetutor] - An AI Pair Programmer, that teaches you to code as you write, for Emacs
181+
* https://github.com/lispyclouds/claxon[claxon] - Minimal, pure clojure, data-driven NATS client
182+
* https://github.com/SamuelCarriles/ehr-adapter[ehr-adapter] - Simplify EHR integrations by defining and validating your entire provider connection pipeline using native Clojure data structures.
183+
* https://github.com/rthadani/clj-pytorch[clj-pytorch] - A Clojure wrapper around PyTorch with libpython-clj
184+
* https://github.com/netb258/huffman-tree[huffman-tree] - A small Huffman tree implementation in Clojure
185+
* https://github.com/frankadrian314159/fol[fol] - A Clojure dialect that combines persistent data structures (from Clojure), CLOS-style object orientation with persistent objects, and array programming capabilities (inspired by Q/APL).
186+
187+
Updates
188+
189+
* https://github.com/simm-is/partial-cps[partial-cps] 0.1.58 - A lean and efficient continuation passing style transform, includes async-await support.
190+
* https://github.com/gojek/ziggurat[ziggurat] https://github.com/gojek/ziggurat/releases/tag/v4.12.1[4.12.1] - A stream processing framework to build stateless applications on Kafka
191+
* https://github.com/tomekw/hikari-cp[hikari-cp] https://github.com/tomekw/hikari-cp/blob/master/CHANGELOG.md[4.1.0] - A Clojure wrapper to HikariCP JDBC connection pool
192+
* https://github.com/luposlip/json-schema[json-schema] https://github.com/luposlip/json-schema/releases/tag/v0.4.8[0.4.8] - Clojure library JSON Schema validation and generation - Draft-07 compatible
193+
* https://github.com/metabase/hawk[hawk] 1.0.15 - It watches your code like a hawk! You like tests, right? Then run them with our state-of-the-art Clojure test runner.
194+
* https://github.com/epiccastle/clojuressh[clojuressh] https://github.com/epiccastle/clojuressh/releases/tag/v1.0.0[1.0.0] - A Clojure library for using SSH in Clojure that is API compatible with bbssh
195+
* https://github.com/taoensso/sente[sente] https://github.com/taoensso/sente/releases/tag/v1.22.0-RC1[1.22.0-RC1] - Realtime web comms library for Clojure/Script
196+
* https://codeberg.org/meissa/dda-tara[dda-tara] 3.0.2 - Threat modeling toolkit based on threagile
197+
* https://github.com/clj-commons/rewrite-clj[rewrite-clj] https://github.com/clj-commons/rewrite-clj/releases/tag/v1.2.55[1.2.55] - Rewrite Clojure code and edn
198+
* https://github.com/marksto/clj-tg-bot-api[clj-tg-bot-api] 1.2.271 - 🤖 The latest Telegram Bot API spec and client lib for Clojure-based apps
199+
* https://github.com/weavejester/teensyp[teensyp] https://github.com/weavejester/teensyp/commits/0.7.2[0.7.2] - A small, zero-dependency Clojure TCP server that uses Java NIO
200+
* https://github.com/babashka/sci[sci] https://github.com/babashka/sci/releases/tag/v0.13.53[0.13.53] - Configurable Clojure/Script interpreter suitable for scripting and Clojure DSLs
201+
* https://github.com/phel-lang/phel-lang[phel-lang] https://github.com/phel-lang/phel-lang/releases/tag/v0.45.1[0.45.1] - 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.
202+
* https://github.com/seancorfield/next-jdbc[next-jdbc] https://github.com/seancorfield/next-jdbc/releases/tag/v1.3.1118[1.3.1118] - A modern low-level Clojure wrapper for JDBC-based access to databases.
203+
* https://github.com/manetu/temporal-clojure-sdk[temporal-clojure-sdk] https://github.com/manetu/temporal-clojure-sdk/releases/tag/v2.1.0[2.1.0] - A Temporal SDK for Clojure
204+
* https://github.com/cjohansen/replicant[replicant] https://github.com/cjohansen/replicant/commits/v2026.06.1[2026.06.1] - A data-driven rendering library for Clojure(Script) that renders hiccup to DOM or to strings.
205+
* https://github.com/replikativ/raster[raster] https://github.com/replikativ/raster/releases/tag/v0.1.15[0.1.15] - Fast, functional numerical computing for Clojure/JVM.
206+
* https://github.com/RokLenarcic/mcp-server[mcp-server] https://github.com/RokLenarcic/mcp-server/commits/v0.3.50[0.3.50] - MCP Server library
207+
* https://github.com/clojurewasm/ClojureWasm[ClojureWasm] https://github.com/clojurewasm/ClojureWasm/commits/v1.0.0-alpha.1[1.0.0-alpha.1] - A lightweight Clojure runtime in Zig — call WebAssembly from Clojure to tap libraries written in any language.
208+
* https://github.com/BetterThanTomorrow/calva-backseat-driver[calva-backseat-driver] https://github.com/BetterThanTomorrow/calva-backseat-driver/releases/tag/v0.0.37[0.0.37] - VS Code AI Agent Interactive Programming. Tools for CoPIlot and other assistants. Can also be used as an MCP server.
209+
* https://github.com/cjohansen/nexus[nexus] https://github.com/cjohansen/nexus/commits/v2026.06.2[2026.06.2] - Data-driven action dispatch for Clojure(Script): Build systems that are easier to test, observe, and extend
210+
* https://github.com/BetterThanTomorrow/calva[calva] https://github.com/BetterThanTomorrow/calva/releases/tag/v2.0.593[2.0.593] - Clojure & ClojureScript Interactive Programming for VS Code
211+
* https://github.com/replikativ/persistent-sorted-set[persistent-sorted-set] https://github.com/replikativ/persistent-sorted-set/blob/main/CHANGES.md[0.4.124] - Fast B-tree based persistent sorted set for Clojure/Script
212+
* https://github.com/plumce/plumcp[plumcp] https://github.com/plumce/plumcp/releases/tag/v0.2.2[0.2.2] - Clojure/ClojureScript library for making MCP server and client
213+
* https://github.com/yaml/yamlstar[yamlstar] https://github.com/yaml/yamlstar/releases/tag/0.1.9[0.1.9] - A YAML framework for all programming languages
214+
* https://github.com/benedekfazekas/mranderson[mranderson] https://github.com/benedekfazekas/mranderson/blob/master/CHANGELOG.md[0.6.0] - Dependency inlining and shadowing
215+
* https://github.com/taoensso/encore[encore] https://github.com/taoensso/encore/blob/master/CHANGELOG-template.md[3.167.0] - Core utils library for Clojure/Script
216+
* https://github.com/Blockether/svar[svar] https://github.com/Blockether/svar/releases/tag/v0.7.33[0.7.33] - Type‑safe LLM output for Clojure. Works with any text‑only model.
217+
* https://github.com/replikativ/ansatz[ansatz] https://github.com/replikativ/ansatz/commits/0.1.64[0.1.64] - Dependently typed Clojure DSL with a Lean4 compatible kernel.
218+
* https://github.com/grid-coordination/clj-midas[clj-midas] https://github.com/grid-coordination/clj-midas/blob/main/CHANGELOG.md[1.0.0] - Clojure client library for the California Energy Commission's MIDAS API
219+
* https://github.com/babashka/cli[cli] https://github.com/babashka/cli/releases/tag/v0.11.74[0.11.74] - Turn Clojure functions into CLIs!
220+
* https://github.com/squint-cljs/squint[squint] https://github.com/squint-cljs/squint/releases/tag/v0.13.195[0.13.195] - Light-weight ClojureScript dialect
221+
* https://github.com/ring-clojure/ring[ring] https://github.com/ring-clojure/ring/blob/master/CHANGELOG.md[1.15.5] - Clojure HTTP server abstraction
222+
* https://github.com/donut-party/generate[generate] https://github.com/donut-party/generate/blob/main/CHANGELOG.md[1.0.69] - code generation for Clojure projects

0 commit comments

Comments
 (0)