← Home

Open source update

A big thanks to Clojurists Together, Nubank, lambdaschmiede, and other sponsors of my open source work!

2024 Mar - Apr

Recent work

Hi folks! 🦎

It’s been a very productive couple months! Have been able to continue full-time on open source. Output included-

http-kit v2.8.0

http-kit v2.8.0 final is now on Clojars 👍

http-kit is a simple, high-performance event-driven HTTP client+server for Clojure.

This is the first major stable http-kit release since 2023-06-30, and includes work from 10 contributors. Big thanks to everyone involved! 🙏

Some highlights include:

  • Performance improvements, incl. auto JVM 21+ virtual threads when available.
  • Support for the latest Ring async and WebSocket APIs.
  • A comprehensive new benchmark suite for http-kit server and client.
  • >15 fixes and numerous other improvements

Nippy v3.4.0

Nippy v3.4.0 final is now on Clojars 👍

Nippy is a fast and mature binary serialization library for Clojure.

This is the first major stable Nippy release since 2023-10-11, and includes:

  • Faster, more accurate freezable? util (checks if arg is serializable)
  • Zstandard compression support
  • Support for serializing next.JDBC results (this was previously broken)

Telemere v1.0.0 first public pre-releases

My main focus during this period has been has been Telemere.

Telemere is a major new library (and along with Tempel, my first all-new library in 7+ years). It’s a structured telemetry library for Clojure/Script, and a highly-polished modern rewrite of Timbre without any of the historical constraints.

It offers a superset of the functionality found in traditional and structured logging, and out-the-box support for SLF4J, OpenTelemetry, clojure.tools.logging, etc.

The latest release can be found here (currently beta5).

Folks happy with Timbre have zero pressure to update, I’ll continue to support Timbre as usual. But Telemere offers a lot of new features and improvements (see README), and migration is often pretty easy.

Will note that based on Clojure survey feedback, I’ve been putting a lot more emphasis lately on beginner-oriented support.  For Telemere this includes the most comprehensive wiki and API docs I’ve yet included with a library.

Please do let me know if this stuff is helpful, since it adds a lot to the development effort! 🙏

There’s also a new Telemere Slack channel and short demo video.

Telemere’s a small library, but it’s been a lot of work getting the details just right. I’m happy with the results, and excited for folks to try it out.

Telemere is in many ways the refinement and culmination of ideas brewing over 12+ years in TimbreTufteTruss, etc.

Ultimately the hope is for it to help enable Clojure/Script systems that are observablerobust, and debuggable. The wiki intro is probably a good place to start if you’re interested in hearing more.

London Clojurians talk

This was actually recorded back in February, but I have folks still occasionally mentioning that they’d missed it earlier - so I’ll share a reminder here.

The talk is available on YouTube, and is titled Some Controversial Truths: _challenging some commonly-held ideas about Clojure, software engineering, and startups; and sharing the 1 secret that will solve all your problems.

Big thanks to Bruno Bonacci for hosting!

Interview with Daniel Compton

Likewise for folks that missed it earlier - Daniel Compton recently posted a chat we had about my open source work. Big thanks to Daniel for hosting!

Upcoming work

My current roadmap can always be found here.

Current objectives for May-June include:

  • Release the final stable version of Tempel - my new data security framework for Clojure. Before the final release I’m planning to add support for MFA, extend the docs re: use with OpenID, OWASP, and make a few other last improvements.

  • Continued efforts on Telemere. I’m currently working on porting handlers over from Timbre, improving the documentation, and helping out folks on the Slack channel.

  • (If time allows) I’d also like to update Tufte to use the new engine that was written for Telemere. The two already work well together, but this’ll be especially true after they share the same engine (and so filtering and handler API).

- Peter Taoussanis