funcool is a growing collection of open source Clojure and ClojureScript libraries and learning material that share the following principles:

  • Good documentation.

  • Clear state of development.

  • Easy way to contribute.

  • Support Clojure & ClojureScript when possible.

  • Beautiful is better than ugly.

  • Explicit is better than implicit.

  • Simple is better than complex.

  • Complex is better than complicated.

  • Readability counts.

Clojure has a very good community and has very good libraries for doing almost everything and the majority aren’t known. On the other hand there are also libraries that are undocumented, unmantained or with a very bad implementation.

We will try to maintain a little collection of libraries developed by ourselves and also another list of well maintained libraries that we have used in the past or are currently using for our projects.

Who is responsible for it?

funcool is a community managed by a little group of persons that loves functional programming and good, well documented open source software.

You can contact us using funcool google groups:!forum/funcool or joining into #funcool channel on clojure community slack.

How can I help?

The funcool projects don’t have any restrictions for contributions. We track issues using GitHub issues and accept contributions via pull requests.

If you want to contribute to any of our projects just open an issue or pull request. We usually hang out in the #funcool channel of the Clojurians Slack, we’ll be happy to answer your questions and help you contribute to our projects.

Code of Conduct

Funcool is a inclusive organization, all are welcome.

Please respect each other.

Do not dismiss, abuse, harass, attach, insult or discriminate against others.

If you feel unwelcome, unsafe or in danger please report the incident/s to one of us:

We will work with you to resolve the issue promptly.

Learning material

Libraries developed by us


buddy is a complete security library for clojure.


Asynchronous web toolkit for clojure built on top of Ratpack / Netty


Category Theory abstractions for Clojure(Script).


High level sql toolkit for clojure (backed by jooq library)


clojure.jdbc is a library for low level, jdbc-based database access.

Is an alternative implementation to the official


A idiomatic ClojureScript interface to local and session storage.


The missing Clojure(Script) string manipulation library.


A promise library for Clojure(Script)


A ring-inspired, promise-returning, simple Clojure(Script) HTTP client


Elegant and Efficient remote data access for Clojure(Script)


Reactive Streams for ClojureScript (built on top of RxJS)


Validation library for Clojure and ClojureScript

Third party libraries for Clojure


Clojure JSON and JSON SMILE (binary json format) encoding/decoding.


A date and time library for Clojure, wrapping the Joda Time library.


Clojure serialization library


Jetty9 ring server adapter with WebSocket support via core.async and Jetty9 based HTTP & WebSocket clients.


A Clojure library designed to allow Clojure configuration to travel between hosts.


Clojure HTTP server abstraction


A concise routing library for Ring/Clojure


HTTP route-matching library for Clojure


Fast library for rendering HTML in Clojure

Third party libraries for ClojureScript


A client-side router for ClojureScript.


A ClojureScript library providing wrappers for the JavaScript console API.


Minimal React wrapper for ClojureScript. Decomplected, extensible, simple


Lisp/Hiccup style templating for Facebook’s React in ClojureScript.

Third party libraries for both Clojure and ClojureScript


QuickCheck for Clojure