loading...

My 5 favourite clojure libraries

alekcz profile image Alexander Oloo Originally published at alexanderoloo.com on ・2 min read

In my travels I have collected a set of clojure libraries that I can rely on to help me solve problems effectively. These are my top 5.

  1. cheshire by @dakrone
  2. http-kit by @shenfeng and maintained by @ptaoussanis
  3. nippy by @ptaoussanis
  4. at-at by @samaaron, @rosejn, and @michaelneale
  5. charmander by @alekcz

1. cheshire

cheshire is a library for “JSON and JSON SMILE (binary json format) encoding/decoding”.

I’m currently using [cheshire "5.9.0"] successfully in production. My favourite thing about cheshire is that when parsing JSON it can automatically convert the keys to keywords in Clojure. I must admit I’ve abuse this feature in places where I probably shouldn’t have. Haha.

2. http-kit

http-kit is a “minimalist, event-driven, high-performance Clojure HTTP server/client library”.

I’m currently using [http-kit "2.4.0-alpha3"] successfully in production. #cowboy

My favourite thing about http-kit is that the HTTP client is really straight forward. Checkout the docs, you’ll see what I mean.

3. nippy

nippy is a “high-performance serialization library for Clojure”.

I’m currently using [com.taoensso/nippy "2.14.0"] successfully in production. My favourite thing about nippy (besides it being rediculously fast) is that after processing large datasets I can save the object straight from memory directly to disk. This allows my application to pick up instantaneously from where it left off after a reboot.

4. at-at

at-at is an “ahead-of-time function scheduler”.

I’m currently using [overtone/at-at "1.2.0"] successfully in production. My favourite trick with at-at is to use it to schedule a ping every 5 minutes to keep my dynos awake. Obviously I use http-kit to do the ping.

5. charmander

charmander is a “set of libraries to make working with firebase easier in clojure”.

I’m currently using [alekcz/charmander "0.6.0"] successfully in production.

My favourite thing about charmander is that it has been the project that has taught me the most about clojure. Writing it has been one heck of a journey.

May your build always pass.

Alex

This post is part of the "Advent of Parens".

Posted on by:

alekcz profile

Alexander Oloo

@alekcz

Engineer. Designer. Jack of all trades. Great at Product, Clojure, frontend and debugging.

Discussion

markdown guide