Introduction

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: https://groups.google.com/forum/#!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 http://clojurians.slack.com, 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

buddy is a complete security library for clojure.

catacumba

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

cats

Category Theory abstractions for Clojure(Script).

suricatta

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

clojure.jdbc

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

Is an alternative implementation to the official clojure.java.jdbc.

hodgepodge

A idiomatic ClojureScript interface to local and session storage.

cuerdas

The missing Clojure(Script) string manipulation library.

promesa

A promise library for Clojure(Script)

httpurr

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

urania

Elegant and Efficient remote data access for Clojure(Script)

beicon

Reactive Streams for ClojureScript (built on top of RxJS)

struct

Validation library for Clojure and ClojureScript

Third party libraries for Clojure

cheshire

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

clj-time

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

nippy

Clojure serialization library

jet

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

nomad

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

ring

Clojure HTTP server abstraction

bidi

A concise routing library for Ring/Clojure

clout

HTTP route-matching library for Clojure

hiccup

Fast library for rendering HTML in Clojure

Third party libraries for ClojureScript

secretary

A client-side router for ClojureScript.

shodan

A ClojureScript library providing wrappers for the JavaScript console API.

rum

Minimal React wrapper for ClojureScript. Decomplected, extensible, simple

sablono

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

Third party libraries for both Clojure and ClojureScript

test.check

QuickCheck for Clojure