Collection of useful links for Clojurians. Inspired by other awesome-* stuffs.
| Description | Link |
|---|---|
| Open-Source packages in for Clojure ecosystem | http://www.clojuresphere.com/ |
| Open Source Clojure projects | http://open-source.braveclojure.com/ |
| Posts from various Clojure hackers and contributors | http://planet.clojure.in/ |
| A categorised directory of libraries and tools for Clojure | http://www.clojure-toolbox.com/ |
| Clojure daily | http://paper.li/ajlopez/1291580164 |
| Community Curated Clojure Resources | https://hackr.io/tutorials/learn-clojure |
| Description | Link |
|---|---|
| News and updates about ClojureWerkz projects | http://blog.clojurewerkz.org/ |
| Learn the ultimate language, become a better programmer | http://www.braveclojure.com |
| Tons of cool ideas | http://yogthos.net |
| Parens of death | http://www.parens-of-the-dead.com/ |
| Anna Pawlicka | http://annapawlicka.com/ |
| Jessica Kerr | http://blog.jessitron.com/ |
| Stuart Sierra | http://stuartsierra.com/ |
| Adam Bard | https://adambard.com/blog/ |
| Parallel Universe | http://blog.paralleluniverse.co |
| Verma / blog | http://udayv.com/ |
| Description | Link |
|---|---|
| Clojurians Slack | http://clojurians.net/ |
| Clojurians Discord | https://discord.gg/kjKb3Gx |
| Lisp Discord (with clojure channel) | https://discord.gg/T5D2EAJ |
| Description | Link |
|---|---|
| Understanding transducers | http://elbenshira.com/blog/understanding-transducers/ |
| Processing documents with transducers | http://blog.juxt.pro/posts/xpath-in-transducers.html |
| Clojure transducers from the ground up | https://labs.uswitch.com/transducers-from-the-ground-up-the-practice/ |
| Description | Link |
|---|---|
| Clojure Spec Tips | http://conan.is/blogging/clojure-spec-tips.html |
| Focus on Spec: predicates | http://blog.cognitect.com/blog/2016/8/9/focus-on-spec-predicates |
| Spec Transformers | https://www.metosin.fi/blog/spec-transformers/ |
Function description needed? Eager of examples / tutorials? Take a look at one of following sources:
| Description | Link |
|---|---|
| Community-driven documentation site for the Clojure | http://clojure-doc.org/ |
| Community-powered documentation and examples | http://clojuredocs.org/ |
| Community Clojure Documentation | http://conj.io/ |
| Cross-referencing the Clojure ecosystem | http://crossclj.info/ |
| Clojure* cheatsheets | http://jafingerhut.github.io/ |
| ClojureScript cheatsheets | http://cljs.info/cheatsheet/ |
Following is a list of amazing projects, worth to keep an eye on.
ClojureScript is a new compiler for Clojure that targets JavaScript. It is designed to emit JavaScript code which is compatible with the advanced compilation mode of the Google Closure optimizing compiler.
https://github.com/clojure/clojurescript
The fully transactional, cloud-ready, distributed database.
| Description | Link |
|---|---|
| Helper library for datomic | https://github.com/flyingmachine/datomic-junk |
| Interactive tutorial | http://www.learndatalogtoday.org/ |
Facilities for async programming and communication in Clojure
| Description | Link |
|---|---|
| Examples | https://github.com/halgari/clojure-conj-2013-core.async-examples/blob/master/src/clojure_conj_talk/core.clj |
| Tutorials | https://github.com/martintrojer/go-tutorials-core-async |
| Using Transducers with Core.async in ClojureScript | http://blog.venanti.us/using-transducers-with-core-async-clojurescript/ |
| Core.async in the browser is sweet | http://ku1ik.com/2015/10/12/sweet-core-async.html |
| Introduction to Asynchronous Programming in Clojure | http://www.bradcypert.com/clojure-async/ |
Build tooling for Clojure.
| Description | Link |
|---|---|
| Boot, the Fancy New Clojure Build Framework | http://www.flyingmachinestudios.com/programming/boot-clj/ |
| Advanced Boot Scripting | https://lionfacelemonface.wordpress.com/2015/04/11/advanced-boot-scripting/ |
| Clojurescript Boot Live-Reload | https://adambard.com/blog/clojurescript-boot-fireplace/ |
A ClojureScript interface to Facebook's React.
| Description | Link |
|---|---|
| Om cookbook | https://github.com/om-cookbook/om-cookbook |
| Application template for ClojureScript/Om with live reloading | https://github.com/plexus/chestnut |
| Om interop with 3rd party JS libs | http://www.stuttaford.me/2014/08/10/om-interop-with-3rd-party-libs/ |
| Mistakes to avoid when creating an Om component. Part 1. | http://annapawlicka.com/common-mistakes-to-avoid-when-creating-an-om-component-part-1/ |
| Mistakes to avoid when creating an Om component. Part 2. | http://annapawlicka.com/common-mistakes-to-avoid-when-creating-an-om-component-part-2/ |
| High performance web apps in Om and React | http://www.slideshare.net/borgesleonardo/high-performance-web-apps-in-om-react-and-clojurescript |
| Removing bloilerplate | http://blog.tarn-vedra.de/posts/om-removing-boilerplate.html |
Minimalistic Ract for ClojureScript.
http://holmsand.github.io/reagent/
| Description | Link |
|---|---|
| Reagent deep dive part 1 | http://timothypratley.blogspot.com/2017/01/reagent-deep-dive-part-1.html |
| Reagent deep dive part 2 | http://timothypratley.blogspot.com/2017/01/reagent-deep-dive-part-2-lifecycle-of.html |
| Reagent cookbook | https://github.com/reagent-project/reagent-cookbook |
| Reagent Framework For Writing SPAs, in Clojurescript | https://github.com/Day8/re-frame |
| No-hashes bidirectional routing in re-frame with bidi and pushy | https://carouselapps.com/2015/08/26/no-hashes-bidirectional-routing-in-re-frame-with-bidi-and-pushy/ |
| Creating reagent components | https://github.com/Day8/re-frame/wiki/Creating-Reagent-Components |
| Why reagent rocks? | http://www.mattgreer.org/articles/reagent-rocks/ |
| TodoMVC for Reagent | https://github.com/tastejs/todomvc |
| Applications built with Reagent | https://github.com/reagent-project/reagent/wiki/Applications-built-with-Reagent |
| Beautiful Bootstrap 3 forms for Om, Reagent and Rum | https://github.com/bilus/reforms |
Riemann aggregates events from your servers and applications with a powerful stream processing language.
| Description | Link |
|---|---|
| An Introduction to Riemann | http://kartar.net/2014/12/an-introduction-to-riemann/ |
Yada is a library that helps building RESTful web APIs quickly and easily.
Utilities making development even more pleasant
| Description | Link |
|---|---|
| General Purpose Utilities Library | https://github.com/zcaudate/hara |
| Language extensions for clojurescript | https://github.com/purnam/purnam |
| Give your clojure workflow more flow | https://github.com/zcaudate/vinyasa |
Emacs bits and pieces. Definitely worth checking out if you're addicted to this editor.
| Description | Link |
|---|---|
| Cider IDE that rocks! | https://github.com/clojure-emacs/cider |
| Collection of Clojure refactoring functions | https://github.com/clojure-emacs/clj-refactor.el |
| Help on clojuredocs.org | https://github.com/mbuczko/helm-clojuredocs |
Other interesting libraries, style guides, etc. found on github
| Description | Link |
|---|---|
| A community coding style guide for the Clojure programming language | https://github.com/bbatsov/clojure-style-guide |
| This is the home of O'Reilly's Clojure Cookbook | https://github.com/clojure-cookbook/clojure-cookbook |
| Routing library for Ring | https://github.com/weavejester/compojure/wiki |
| Example project for Cljs/Om using Boot instead of Lein. Inspired by Chestnut. | https://github.com/Deraen/saapas |
| Clojure static page generation using boot | https://github.com/DanThiffault/boot-pages |
| Simple css/js asset fingerprinting for Boot | https://github.com/pointslope/boot-fingerprint |
| Init scheme with service supervision with Boot | https://github.com/danielsz/boot-runit |
| Compatibility layer with the environ library | https://github.com/danielsz/boot-environ |
| Database migrations with Ragtime using Boot | https://github.com/mbuczko/boot-ragtime |
| Your trampoline to Clojure dev toolbox | https://github.com/mbuczko/revolt |
| Clojure implementation of RFC 6749 OAuth 2.0 authorization framework | https://github.com/mbuczko/cerber-oauth2-provider |
| Security library for Clojure | https://github.com/niwibe/buddy |
| Enlive/Enfocus style templating for Facebook's React and Om in ClojureScript | https://github.com/ckirkendall/kioo |
| Produce and consume JMX beans from Clojure | https://github.com/clojure/java.jmx |
| Clojure library for using SQL | https://github.com/krisajenkins/yesql |
| Source code documentation tool | https://github.com/gdeer81/marginalia |
| Clojure documentation tool | https://github.com/weavejester/codox |
| Clojure functions with parameter pattern matching just like erlang or elixir | https://github.com/killme2008/defun |
| A simple static site generator written in Clojure | https://github.com/lacarmen/cryogen |
| Data processing on Hadoop without the hassle | https://github.com/nathanmarz/cascalog |
| Clojure reducers, but for parallel execution: locally and on distributed systems | https://github.com/aphyr/tesser |
| More transducers and reducing functions for Clojure(script) | https://github.com/cgrand/xforms |
| A thin facade around Coda Hale's metrics library | https://github.com/sjl/metrics-clojure/ |
| Multi-class Naive Bayes Classifier library written in Clojure | https://github.com/danielfm/judgr |
| Authentication library for Clojure and Ring based on OAuth2 | https://github.com/pelle/clauth |
| Managed lifecycle of stateful objects in Clojure | https://github.com/stuartsierra/component |
| Event-driven programming and stream processing toolkit for the JVM | https://github.com/clojurewerkz/meltdown |
| Understanding Clojure Sequences and providing some small, tight operations to perform on them | https://github.com/JulesGosnell/seqspert |
| Erlang-style supervisor error handling for Clojure | https://github.com/MichaelDrogalis/dire |
| A validation DSL for Clojure & Clojurescript applications | https://github.com/leonardoborges/bouncer |
| Simple scraper and tokenizer for miles.no | https://github.com/miles-no/MilesCampHackatonScraper |
| Clojure template for REST web services in the style of MixRadio | https://github.com/mixradio/mr-clojure |
| Display ghostly yesql defqueries inline, in Emacs | https://github.com/magnars/yesql-ghosts |
| A lightweight ClojureScript abstraction over ReactJS | https://github.com/levand/quiescent |
| Clojure file and directory watcher | https://github.com/wkf/hawk |
| Types again :) | https://github.com/arrdem/guten-tag |
| ClojureScript interface to local and session storage | https://github.com/funcool/hodgepodge |
| A tiny Clojure routing library for Ring | https://github.com/taylorlapeyre/nav |
| Minimal React wrapper for ClojureScript | https://github.com/tonsky/rum |
| A Ragtime extention for ArangoDB | https://github.com/deusdat/waller |
| Contracts programming with Clojure | https://github.com/fogus/trammel |
| Threadpool tools for Clojure | https://github.com/TheClimateCorporation/claypoole |
| Utility library to write microservices in Clojure | https://github.com/zalando-stups/friboo |
| Experimental multilenses | https://github.com/ctford/traversy |
| A Constraint Programming library for Clojure | https://github.com/aengelberg/loco |
| Logo in Clojure | https://github.com/google/clojure-turtle |
| Elegant and efficient remote data access | https://github.com/kachayev/muse |
| Geometry toolkit for Clojure/ClojureScript | https://github.com/thi-ng/geom |
| DSL for building client to remote service APIs | https://github.com/outpace/remote |
| Trace-oriented debugging tools for Clojure | https://github.com/dgrnbrg/spyscope |
| New dependencies in REPL on the fly | https://github.com/zcaudate/vinyasa |
| Priority map | https://github.com/clojure/data.priority-map |
| Durable queue implementation | https://github.com/layerware/pgqueue |
| Durable reference types for Clojure | https://github.com/riverford/durable-ref |
| A really lightweight Clojure scheduler | https://github.com/jarohen/chime |
| Interface to the Pikaday js date-picker | https://github.com/timgilbert/cljs-pikaday |
| REPL functions to support the reloaded workflow | https://github.com/weavejester/reloaded.repl |
| Control throughput of function calls and core.async channels | https://github.com/brunoV/throttler |
| Managing Clojure app state since (reset) | https://github.com/tolitius/mount |
| "Smarter" threading macros | https://github.com/maitria/packthread |
| Human dates | https://github.com/philjackson/wordy-date |
| A routing library | https://github.com/Hendrick/avenue |
| Syntax threading macros for Clojure | https://github.com/LonoCloud/synthread |
| Fast clojure json parser | https://github.com/gerritjvv/pjson |
| Elegant and Efficient remote data access for Clojure(Script) | https://github.com/funcool/urania |
| Hierarchical Timing Wheels for Clojure and ClojureScript | https://github.com/sunng87/rigui |
| Turn files into asynchronous streams | https://github.com/ane/vigil |
| Bidirectional data-driven request routing | https://github.com/aroemers/sibiro |
| Library agnostic way to stub HTTP endpoints in Clojure | https://github.com/johanhaleby/stub-http |
| Query your maps as in Datalog | https://github.com/alandipert/intension |
| A feature flag library for Clojure | https://github.com/plexus/pennon |
| Clojure Error Message Catalog | https://github.com/yogthos/clojure-error-message-catalog |
| Functional, persistent, off-heap, high performance data structure | https://github.com/datacrypt-project/hitchhiker-tree |
| Forward-chaining rules in Clojure | https://github.com/rbrush/clara-rules |
| Monadic error handling | https://github.com/adambard/failjure |
| Visualization of Clojure data structures using Graphviz | https://github.com/walmartlabs/datascope |
| Clojure wrapper over failsafe - sophisticated failure handling | https://github.com/sunng87/diehard/ |
| One Time Password (TOTP and HOTP) for Clojure | https://github.com/suvash/one-time |
| Mocks, stubs, and spies for Clojure protocols | https://github.com/bguthrie/shrubbery |
| Failure handling with Manifold | https://github.com/tulos/manifail |
| A gentle touch of Clojure to Hashicorp's Consul | https://github.com/tolitius/envoy |
| A lightweight library of useful Clojure functions | https://github.com/weavejester/medley |
| Meldable priority queues in Clojure | https://github.com/michalmarczyk/maxiphobe |
| XChart wrapper for Clojure | https://github.com/hyPiRion/clj-xchart |
| Convenience features making Clojure even sweeter | https://github.com/cloojure/tupelo |
| Elasticsearch client for Clojure | https://github.com/mpenet/spandex |
| A functional Clojure progress bar for the command line | https://github.com/weavejester/progrock |
| Hazelcast bells and whistles under the Clojure belt | https://github.com/tolitius/chazel |
| Clojure library for working with the Github v3 API | https://github.com/irresponsible/tentacles/ |
| Reactive Streams for Clojure(Script) | https://github.com/funcool/beicon |
| Clojure/ClojureScript URI library | https://github.com/lambdaisland/uri |
| Command-line interfaces using only docstring | https://github.com/carocad/docopt.clj |
| Rewrite Clojure Code and EDN | https://github.com/xsc/rewrite-clj |
| Fast Clojure Matrix Library | https://github.com/uncomplicate/neanderthal |
| Bidirectional Ring router. REST oriented. Rails inspired. | https://github.com/darkleaf/router |
| Clojure Test Fixtures & Datasources | https://github.com/stylefruits/fixpoint |
| Evaluating composable language rules on input strings | https://github.com/dpom/clj-duckling |
| Re-frame with DataScript as a data storage | https://github.com/denistakeda/data-frame |
| Fast http api format negotiation, encoding and decoding | https://github.com/metosin/muuntaja |
| A remote (CQRS) API library for Clojure | https://github.com/metosin/kekkonen |
| Ring async Server-Sent Events handler | https://github.com/bobby/ring-sse |
| General-purpose ACME client | https://github.com/danielsz/certificaat |
| Functional JVM bytecode generation for Clojure | https://github.com/jgpc42/insn |
| All functions deserve to be measured | https://github.com/tolitius/calip |
| A trace window for re-frame | https://github.com/Day8/re-frame-trace |
| Add structure to a reagent/re-frame app at the page level | https://github.com/gadfly361/re-surface |
| A queue which schedules fairly by key | https://github.com/acrolinx/clj-queue-by |
| Fork of official Ring Jetty adapter enhanced with servlet-mapping support | https://github.com/jiacai2050/ring-jetty-servlet-adapter |
| Accessing HDFS, S3, SFTP and other file systems via a single API | https://github.com/oshyshko/uio |
| AWS pure Clojure, spec-based implementation | https://github.com/portkey-cloud/aws-clj-sdk |
| An isolation framework for Clojure/ClojureScript | https://github.com/metametadata/clj-fakes |
| Reformat Clojure and Clojurescript source code and s-expressions | https://github.com/kkinnear/zprint |
| Lean Hash Array Mapped Trie (Lean Map) | https://github.com/bendyworks/lean-map |
| Succint and readable integration tests over RESTful APIs | https://github.com/facundoolano/restpect |
| Fast Idiomatic Pretty Printer | https://github.com/brandonbloom/fipp |
| Graphing tool for Clojure built with the web and interactivity in mind | https://github.com/hswick/jutsu |
| REPL-based data visualization in the browser | https://github.com/yieldbot/vizard |
| Graphql client for re-frame and clojurescript applications | https://github.com/oliyh/re-graph |
| A library of parallel-enabled Clojure functions | https://github.com/reborg/parallel |
| Structural diffs for clojure source code | https://github.com/ladderlife/autochrome |
| Homoglyph/IDN homograph detection/handling | https://github.com/mpenet/thorn |
| A fast data-driven router for Clojure(Script) | https://github.com/metosin/reitit |
| A durable datalog implementation adaptable for distribution | https://github.com/replikativ/datahike |
| An all-purpose Clojure graph data structure that implements Loom protocols and more | https://github.com/Engelberg/ubergraph |
| Clojure/ClojureScript library for stubs, spies and mocks | https://github.com/alexanderjamesking/spy |
| Add function args and return Spec checking via assertions | https://github.com/Provisdom/defn-spec |
| Clojure library for fast JSON encoding and decoding | https://github.com/metosin/jsonista |
| Fetch data from SQL using Clojure(script) | https://github.com/walkable-server/walkable |
| Asynchronous programming toolkit for clojure and clojurescript | https://github.com/leonoel/missionary |
| Clojure mocking library | https://github.com/igrishaev/mockery |
| Configuration from various sources | https://github.com/sunng87/stavka |
| Measure object memory consumption from Clojure | https://github.com/clojure-goes-fast/clj-memory-meter |
| Convert REPL interactions into example-based tests | https://github.com/cognitect-labs/transcriptor |
| Lein-jlink | https://github.com/sunng87/lein-jlink |
| Programmatic access to AWS services | https://github.com/cognitect-labs/aws-api/ |
Must-have YouTube subscriptions:
People to follow, writing about clojure/lisp:
- [@richhickey] (https://twitter.com/richhickey)
- [@bbatsov] (https://twitter.com/bbatsov)
- [@cognitect] (https://twitter.com/cognitect)
- [@adzerktech] (https://twitter.com/adzerktech)
- [@alandipert] (https://twitter.com/alandipert)
- [@michaniskin] (https://twitter.com/michaniskin)
- [@stuartsierra] (https://twitter.com/stuartsierra)
- [@weavejester] (https://twitter.com/weavejester)
- [@stuarthalloway] (https://twitter.com/stuarthalloway)
- [@juliansgamble] (https://twitter.com/juliansgamble)
- [@swannodette] (https://twitter.com/swannodette)
- [@jwiegley] (https://twitter.com/jwiegley)
- [@ClojureFact] (https://twitter.com/ClojureFact)
- [@ClojureRecipes] (https://twitter.com/ClojureRecipes)
- [@ClojureWerkz] (https://twitter.com/ClojureWerkz)
- [@planetclojure] (https://twitter.com/planetclojure)
- [@thelittlelisper] (https://twitter.com/thelittlelisper)
- [@pithyless] (https://twitter.com/pithyless)
- [@haksior] (https://twitter.com/haksior)