v2026-03-01.107 of https://github.com/eerohele/pp, a fast, zero-dependency, single-namespace pretty-printer for data (not code). This release contains much-improved support for printing metadata, as well as a fix for a bug where pp sometimes printed map vals on the same line as a multi-line map key. pp is compatible with Clojure, ClojureScript, and Babashka.
Something interesting going on, this page: https://clojars.org/me.flowthing/pp shows the latest as "2026-02-28.98"
but I get an error referencing that version:
Error building classpath. Could not find artifact me.flowthing:pp:jar:2026-02-28.98 in central ( )maven central has 2024-11-13.77 as the latest version:
Thanks for reporting! I can reproduce it after deleting the artifact from my local Maven repo. I'll look into it.
For sure - definitely odd, I don't recall many times seeing clojars list a dep I couldn't get. 🙂
Indeed. I have no idea what could cause this.
The 2024-11-13.77 version prints my lists pretty good, fwiw 🙂
gl 🙇 gn
http://mvnrepository.com seems to glean data from Clojars, by the way. I was confused by that for a moment. 🙂 I don't (at least knowingly) deploy any of my projects into Maven Central.
2026-03-01.107 should work better. Thanks again for the heads up, @hhausman!
That worked, cool library.
https://github.com/phronmophobic/clj-media: Read, write, and transform audio and video. clj-media directly wraps the FFmpeg native libraries (not the cli). version: 3.0-alpha.3 The public API for this version has very few changes. Many functions that used to require or provide opaque data types now return or accept plain maps. However, the library internals have been almost completely rewritten: • replace FFI with https://github.com/cnuernber/dtype-next/ • processing orchestrated via core.async.flow The result is: • Much, much lower memory usage, especially for large files • Automatic multi-threaded processing • Easier and faster native memory manipulation (via dtype-next) • Simpler and more general foundation for adding new features in the future The code should be stable, but this release is marked alpha for the following reasons: • There's still some debug print statements that will be removed • This version relies on core.async.flow, which is currently in alpha • There may still be some rough edges for less common media formats Enjoy! Feedback welcome!
Wow! Impressive! I've been curious about Clong - and how to do FFI neatly from Clojure in general. Great to see helpful applications released!
I'm curious about your motivation for making this. Do you need media for Easel, or is it just a library you figure the ecosystem needs?
Easel needs a media player.
Agreed! 😁
this is the first use of flow I've seen in the wild, how is it like?
Overall, using core.async.flow has been pretty great. There are a few aspects that feel a bit clunky, but something like core.async.flow was one of the missing pieces that I needed to improve clj-media.
I would like to do a video or write up about using flow at some point.