In this post I'll give updates about open source I worked on during May and June 2025.
To see previous OSS updates, go here.
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.

Current top tier sponsors:
Open the details section for more info about sponsoring.
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!
Here are updates about the projects/libraries I've worked on in the last two months, 19 in total!
babashka: native, fast starting Clojure interpreter for scripting.
#^ metadata)satisfies? for protocol extended to nil1.2.50taoensso/trove work in bb by exposing another timbre vartimbre to 6.7.1:protocol metaprint-simple1.21.1with-redefs + intern (see SCI issue #973clojure.lang.Var/interninit as task nameclojure.lang.Var/{get,clone,reset}ThreadBindingFrame for JVM Clojure compatibilitytaoensso.timbre/spy and include testtaoensso.timbre/set-ns-min-level! and taoensso.timbre/set-ns-min-level1.12.1clojure.java.io/resource implementationjava.text.BreakIteratorjava.lang.Thread$Builder$OfPlatformjava.util.concurrent.ForkJoinPooljava.util.concurrent.ForkJoinPool$ForkJoinWorkerThreadFactoryjava.util.concurrent.ForkJoinWorkerThreadjava.util.concurrent.SynchronousQueuetaoensso.timbre/set-min-level!taoensso.timbre/set-config!fs to 0.5.26jsoup to 1.20.1edamame to 1.4.30taoensso.timbre to 6.7.0pods: more graceful error handling when pod quits unexpectedlytype should prioritize :type metadatans-name should work on symbols:clojure.core/eval-file should affect *file* during eval:init in tasks only once:init in tasks before task specific requiresresolve when *ns* is bound to symboldeps.clj to 1.12.1.1550http-client to 0.4.23SCI: Configurable Clojure/Script interpreter suitable for scripting
satisfies? for protocol that is extended to nilsci.async/eval-string+ should return promise with :val nil for ns form rather than :val <Promise>1.4.30:type key priority in type implementationns-name should work on symbols^:clojure.core/eval-file metadata should affect binding of *file* during evaluationsci.impl.Reflector with changes in clojure.lang.Reflector in clojure 1.12.1:static-methods option for class with different name in hostwith-redefs on core vars, e.g. intern. The fix for this issue entailed quite a big refactor of internals which removes "magic" injection of ctx in core vars that need it.unchecked-set and unchecked-get for CLJS compatibilityclerk: Moldable Live Programming for Clojure
quickblog: light-weight static blog engine for Clojure and babashka
--date to api/new. (@jmglov):preview optionedamame: configurable EDN and Clojure parser with location metadata and more
:imports to parse-ns-form#^:foo deprecated metadata reader macro (@NoahTheDuke)continue value that indicates continue-ing parsing (@NoahTheDuke):auto-resolve-ns affect syntax-quote:auto-resolve-ns failing casesquint: CLJS syntax to JS compiler
random-uuid (@rafaeldelboni)trampoline (@rafaeldelboni)throw in expression positionnilclj-kondo: static analyzer and linter for Clojure code that sparks joy.
:locking-suspicious-lock: report when locking is used on a single arg, interned value or local objectclojure.string/replace and partial as replacement fn:discouraged-java-method. See docs:config-in-ns on :missing-protocol-method:redundant-ignore on :missing-protocol-methodformat and whitespace flag after percent:missing-protocol-method when using alias in method:redundant-ignore aware of .cljc:missing-protocol-method linterReentrantLock to coordinate writes to cache directory within same process:langs option in :discouraged-var to narrow to specific language:ns to &env in :macroexpand-hook macros when executing in CLJS:name data to :unresolved-namespace finding for clojure-lspsci.configs: A collection of ready to be used SCI configs.
scittle: Execute Clojure(Script) directly from browser script tags via SCI
nbb: Scripting in Clojure on Node.js using SCI
import-meta-resolve to fix deprecation warnings on Node 22+jsr: and npm: deps, including react in combination with reagentnode:quickdoc: Quick and minimal API doc generation for Clojure
<sub>deps.edn2025.04.07org.babashka/cli dependencynative-image friendlynextjournal.markdown.utils:html-block) and inline HTML (:html-inline) (see #7):code according to spec into <pre> and <code> block with language class (see #39)applied-science/js-interop->hiccup functionnextjournal.markdown.transform through main nextjournal.markdown namespace:responses key with raw responseseven?http-client: babashka's http-client
:request-method in addition to :request to align more with other clients:url in addition to :uri to align more with other clientsunused-deps: Find unused deps in a clojure project
fs - File system utility library for Clojure
cherry: Experimental ClojureScript to ES6 module compiler
cherry.embed which is used by mallideps.clj: A faithful port of the clojure CLI bash script to Clojure
These are (some of the) other projects I'm involved with but little to no activity happened in the past month.
Published: 2025-07-01
Tagged: clojure oss updates