Annually-Funded Developers' Update: September/October 2025

By Kathy Davis

Hello Fellow Clojurists! This is the fifth report from the 5 developers receiving Annual Funding in 2025. Thanks everyone for the fantastic work!

Dragan Djuric: Clojure ML, Clojure CUDA, Neanderthal, Deep Diamond, Commons
Eric Dallo: ECA, clojure-lsp
Michiel Borkent: Eucalypt, Reagent, Squint, babashka, and more…
Oleksandr Yakushev: CIDER, nREPL, JDK25
Peter Taoussanis: Sente, Tempel, Carmine

Dragan Djuric

2025 Annual Funding Report 5. Published November 9, 2025.

My goal with this funding in 2025 is to support Apple silicon (M cpus) in Neanderthal (and other Uncomplicate libraries where that makes sense and where it’s possible).

Having a decent Apple CPU engine for Neanderthal and a BNNS-based CPU engine for Deep Diamond completed in the previous periods, my main focus was on improving things achieved in the previous periods to support features and fix bugs that discovered while working on Clojure ML (diamond-onnxrt), the other major project funded by CT.

The first milestone for THIS project is that I supproted Intel’s DNNL (the Deep Diamond’s CPU backend) on Apple’s MacOS (both arm64 and older intel based). Due to Deep Diamond’s flexible design, this required only small changes to DD code, while the main issue was enabling and testing that architecture in the build of upstream libraries.

Several other areas fixed/improved throughout Uncomplicate libraries during this period include:

I released several new versions of Uncomplicate libraries with these user-facing improvements including:

Hammock time. Researched available native libraries that we can integrate next into Clojure ecosystem, including Nvidia’r TensorRT and Triton, Intel’s OpenVino, and similar AI-related stuff.

I wrote two tutorials and published them on dragan.rocks blog. They were received quite favorably, and it seems to me that Clojure programmers are quite eager to learn how to apply the stuff I’ve worked on.


Eric Dallo

2025 Annual Funding Report 5. Published November 10, 2025.

In these last 2 months I mainly focused on ECA development and related projects and improvements along with my Clojure Conj talk that’s coming this week, excited for it!

eca

ECA (Editor Code Assistant) is a OpenSource, free, standardized server written in Clojure to make any editor have AI features like Cursor, Continue, Claude and others.
There were so many releases and changes to ECA making it way more stable, with new features and fixing lots of bugs, especially with way more people using it daily and contributing!

0.44.0 - 0.78.1

Most important changes:

And many more, check all changes below:

clojure-lsp

I worked together with @weavejester from cljfmt to fix some bugs and finally deliver vertical alignment of maps to Clojure via LSP!
I should release these changes when coming back from Conj.


Michiel Borkent

2025 Annual Funding Report 5. Published November 3, 2025.

In this post I’ll give updates about open source I worked on during September and October 2025.
To see previous OSS updates, go here.

Sponsors

I’d like to thank all the sponsors and contributors that make this work possible. Without you, the below projects would not be as mature or wouldn’t exist or be maintained at all! So a sincere thank you to everyone who contributes to the sustainability of these projects.

gratitude

Current top tier sponsors:

Open the details section for more info about sponsoring.

Sponsor info

If you want to ensure that the projects I work on are sustainably maintained, you can sponsor this work in the following ways. Thank you!

Updates

The summer heat has faded, and autumn is upon us. One big focus for me is preparing my talk for Clojure Conj 2025, titled “Making tools developers actually use”. I did a test run of the talk at the Dutch Clojure Meetup. It went a bit too long at 45 minutes, so I have to shrink it almost by half for the Conj. The more I work on the talk the more ideas come up, so it’s challenging!

image

Presentation at Dutch Clojure meetup in October 2025.

Of course I spent a ton of time on OSS the past two months as well. Some special mentions:

Here are updates about the projects/libraries I’ve worked on in the last two months in detail.

Contributions to third party projects:

Other projects

These are (some of the) other projects I’m involved with but little to no activity happened in the past month.

Click for more details - [CLI](https://github.com/babashka/cli): Turn Clojure functions into CLIs! - [pod-babashka-fswatcher](https://github.com/babashka/pod-babashka-fswatcher): babashka filewatcher pod - [sci.nrepl](https://github.com/babashka/sci.nrepl): nREPL server for SCI projects that run in the browser - [babashka.nrepl-client](https://github.com/babashka/nrepl-client) - [fs](https://github.com/babashka/fs) - File system utility library for Clojure - [http-server](https://github.com/babashka/http-server): serve static assets - [nbb](https://github.com/babashka/nbb): Scripting in Clojure on Node.js using SCI - [sci.configs](https://github.com/babashka/sci.configs): A collection of ready to be used SCI configs. - [http-client](https://github.com/babashka/http-client): babashka's http-client - [quickblog](https://github.com/borkdude/quickblog): light-weight static blog engine for Clojure and babashka - [process](https://github.com/babashka/process): Clojure library for shelling out / spawning sub-processes - [html](https://github.com/borkdude/html): Html generation library inspired by squint's html tag - [instaparse-bb](https://github.com/babashka/instaparse-bb): Use instaparse from babashka - [sql pods](https://github.com/babashka/babashka-sql-pods): babashka pods for SQL databases - [rewrite-edn](https://github.com/borkdude/rewrite-edn): Utility lib on top of - [rewrite-clj](https://github.com/clj-commons/rewrite-clj): Rewrite Clojure code and edn - [tools-deps-native](https://github.com/babashka/tools-deps-native) and [tools.bbuild](https://github.com/babashka/tools.bbuild): use tools.deps directly from babashka - [bbin](https://github.com/babashka/bbin): Install any Babashka script or project with one command - [qualify-methods](https://github.com/borkdude/qualify-methods) - Initial release of experimental tool to rewrite instance calls to use fully qualified methods (Clojure 1.12 only) - [neil](https://github.com/babashka/neil): A CLI to add common aliases and features to deps.edn-based projects.
- [tools](https://github.com/borkdude/tools): a set of [bbin](https://github.com/babashka/bbin/) installable scripts - [babashka.json](https://github.com/babashka/json): babashka JSON library/adapter - [speculative](https://github.com/borkdude/speculative) - [squint-macros](https://github.com/squint-cljs/squint-macros): a couple of macros that stand-in for [applied-science/js-interop](https://github.com/applied-science/js-interop) and [promesa](https://github.com/funcool/promesa) to make CLJS projects compatible with squint and/or cherry. - [grasp](https://github.com/borkdude/grasp): Grep Clojure code using clojure.spec regexes - [lein-clj-kondo](https://github.com/clj-kondo/lein-clj-kondo): a leiningen plugin for clj-kondo - [http-kit](https://github.com/http-kit/http-kit): Simple, high-performance event-driven HTTP client+server for Clojure. - [babashka.nrepl](https://github.com/babashka/babashka.nrepl): The nREPL server from babashka as a library, so it can be used from other SCI-based CLIs - [jet](https://github.com/borkdude/jet): CLI to transform between JSON, EDN, YAML and Transit using Clojure - [lein2deps](https://github.com/borkdude/lein2deps): leiningen to deps.edn converter - [cljs-showcase](https://github.com/borkdude/cljs-showcase): Showcase CLJS libs using SCI - [babashka.book](https://github.com/babashka/book): Babashka manual - [pod-babashka-buddy](https://github.com/babashka/pod-babashka-buddy): A pod around buddy core (Cryptographic Api for Clojure). - [gh-release-artifact](https://github.com/borkdude/gh-release-artifact): Upload artifacts to Github releases idempotently - [carve](https://github.com/borkdude/carve) - Remove unused Clojure vars - [4ever-clojure](https://github.com/oxalorg/4ever-clojure) - Pure CLJS version of 4clojure, meant to run forever! - [pod-babashka-lanterna](https://github.com/babashka/pod-babashka-lanterna): Interact with clojure-lanterna from babashka - [joyride](https://github.com/BetterThanTomorrow/joyride): VSCode CLJS scripting and REPL (via [SCI](https://github.com/babashka/sci)) - [clj2el](https://borkdude.github.io/clj2el/): transpile Clojure to elisp - [deflet](https://github.com/borkdude/deflet): make let-expressions REPL-friendly! - [deps.add-lib](https://github.com/borkdude/deps.add-lib): Clojure 1.12's add-lib feature for leiningen and/or other environments without a specific version of the clojure CLI


Oleksandr Yakushev

2025 Annual Funding Report 5. Published November 5 , 2025.

Hello friends! Here’s my update on September-October 2025 Clojurists Together work. I was mostly focused on CIDER-related work during these months.

nREPL

nREPL has received 1.5.0 and 1.5.1 updates which improve the reliability of load-file middleware and enable further improvements to CIDER debugger (mentioned below).

CIDER

We shipped CIDER 1.20 which includes several highly-requested features and fixes.

CIDER-adjacent libraries

JDK25 release support

As it happens semi-anually, the release of new JDK prompts ensuring that the libraries and tools are compatible with the newest version.


Peter Taoussanis

2025 Annual Funding Report 5. Published November 7, 2025.

Open source update

A big thanks to Clojurists Together, Nubank, and other sponsors of my open source work! I realise that it’s a tough time for a lot of folks and businesses lately, and that sponsorships aren’t always easy 🙏
- Peter Taoussanis

Hi everyone, hope you’ve all been well! 👋 Almost the end of another year, unbelievable 🫣 Note that some releases ran a bit late this period so were actually published in November, but I’m including them here since they’re part of my Sep-Oct tasks.

Recent work

(See here for all releases)

Sente

Sente provides an easy-to-use abstraction over WebSockets and AJAX to help write realtime web apps with Clj and Cljs.
Sente v1.21 is now out!

This is a major release with plenty of new features, performance improvements, reliability improvements, and a number of bug fixes. Big thanks to all contributors and testers! As usual please see the release notes for details. Some highlights include:

Tempel

Tempel is a new high-level data security framework for Clojure
After an extended release candidate period, Tempel v1 is finally out!

Tempel provides high-level crypto utils to help protect user data. It offers a coherent and opinionated API focused on helping with the toughest parts of actually using encryption in practice:

It includes extensive beginner-oriented documentation, docstrings, and error messages.

I’m proud of how Tempel came out, and my hope is that it might be a practical and approachable tool that goes beyond the usual “here are all these complicated low-level crypto utils, good luck!”.

There’s a 36 min demo video (36m) that showcases some if the main functionality.

Carmine

Carmine is a mature, idiomatic Redis for Clojure

Carmine v3.5.0 is out now, the first major release in >1 year.

This release includes:

It also includes the first publicly released (though experimental and undocumented!) next-gen Carmine v4 core. This is basically a complete rewrite of Carmine, using the latest Redis protocol - and incorporating tons of performance and flexibility improvements. This has been a very large and ongoing job, and there’s still plenty of work to do. But I now have the new core happily running in a couple production environments, so there’s definite forward progress.

BTW for folks that might not have been following- Redis itself has had a lot of really cool developments recently. The new dev team seems to be doing a great job and has been very productive re: new features and performance improvements. Salvatore (the original Redis author) is also actively involved again, and introduced a very useful new vector set type that’s a great fit for similarity searching against vectors produced by LLMs, etc.

Talk: Effective Open Source Maintenance Maintenance

So I’ve been actively doing Clojure open source now for almost 14 years (cue clichés about time flying). I’ve made some observations in that time that I think might be useful, so I recorded a talk on the subject.

The focus is on better understanding some of the emotional dynamics of doing (esp. prolonged) open source work. The talk’s directed at OSS users and includes actionable tips on how users can help reduce creator burnout in some small/simple ways.

Other stuff

Lots of other small stuff, including minor releases for Trove (modern structured logging facade for Clj/s), and http-kit (lightweight HTTP server+client).

And of course the usual support on GitHub and Slack, etc. 👍

Upcoming work