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:
-
Andrey (twitter: http://twitter.com/niwinz, email: niwi@niwi.nz)
-
Alejandro (twitter: http://twitter.com/dialelo, email: alejandro@dialelo.com)
We will work with you to resolve the issue promptly.
Learning material
ClojureScript Unraveled
An open source book about ClojureScript
-
HTML version: http://funcool.github.io/clojurescript-unraveled/
-
PDF/Epub/Mobi: https://leanpub.com/clojurescript-unraveled
Libraries developed by us
buddy
buddy is a complete security library for clojure.
-
Code & Documentation: https://github.com/funcool/buddy
catacumba
Asynchronous web toolkit for clojure built on top of Ratpack / Netty
-
Documentation: https://funcool.github.io/catacumba/latest/
cats
Category Theory abstractions for Clojure(Script).
-
Documentation: http://funcool.github.io/cats/
suricatta
High level sql toolkit for clojure (backed by jooq library)
-
Documentation: http://funcool.github.io/suricatta/
clojure.jdbc
clojure.jdbc is a library for low level, jdbc-based database access.
Is an alternative implementation to the official clojure.java.jdbc
.
-
Documentation: http://funcool.github.io/clojure.jdbc/latest/
hodgepodge
A idiomatic ClojureScript interface to local and session storage.
-
Documentation: https://funcool.github.io/hodgepodge/
cuerdas
The missing Clojure(Script) string manipulation library.
-
Documentation: https://funcool.github.io/cuerdas/latest/
promesa
A promise library for Clojure(Script)
-
Documentation: https://funcool.github.io/promesa/latest/
httpurr
A ring-inspired, promise-returning, simple Clojure(Script) HTTP client
-
Documentation: https://funcool.github.io/httpurr/latest/
urania
Elegant and Efficient remote data access for Clojure(Script)
-
Documentation: https://funcool.github.io/urania/latest/
beicon
Reactive Streams for ClojureScript (built on top of RxJS)
-
Documentation: https://funcool.github.io/beicon/latest/
struct
Validation library for Clojure and ClojureScript
-
Documentation: https://funcool.github.io/struct/latest/
Third party libraries for Clojure
cheshire
Clojure JSON and JSON SMILE (binary json format) encoding/decoding.
-
Code & Documentation: https://github.com/dakrone/cheshire
clj-time
A date and time library for Clojure, wrapping the Joda Time library.
-
Code & Documentation: https://github.com/clj-time/clj-time
jet
Jetty9 ring server adapter with WebSocket support via core.async and Jetty9 based HTTP & WebSocket clients.
-
Code & Documentation: https://github.com/mpenet/jet
nomad
A Clojure library designed to allow Clojure configuration to travel between hosts.
-
Code & Documentation: https://github.com/james-henderson/nomad
bidi
A concise routing library for Ring/Clojure
-
Code & Documentation: https://github.com/weavejester/compojure
clout
HTTP route-matching library for Clojure
-
Code & Documentation: https://github.com/weavejester/clout
hiccup
Fast library for rendering HTML in Clojure
-
Code & Documentation: https://github.com/weavejester/hiccup
Third party libraries for ClojureScript
secretary
A client-side router for ClojureScript.
-
Code & Documentation: https://github.com/gf3/secretary
shodan
A ClojureScript library providing wrappers for the JavaScript console API.
-
Code & Documentation: https://github.com/noprompt/shodan
rum
Minimal React wrapper for ClojureScript. Decomplected, extensible, simple
-
Code & Documentation: https://github.com/tonsky/rum
sablono
Lisp/Hiccup style templating for Facebook’s React in ClojureScript.
-
Code & Documentation: https://github.com/r0man/sablono