{"id":13459761,"url":"https://github.com/mbuczko/awesome-clojure","last_synced_at":"2025-09-12T21:34:03.064Z","repository":{"id":30171016,"uuid":"33721373","full_name":"mbuczko/awesome-clojure","owner":"mbuczko","description":"list of useful links for clojurians","archived":false,"fork":false,"pushed_at":"2024-08-20T19:52:43.000Z","size":318,"stargazers_count":352,"open_issues_count":0,"forks_count":21,"subscribers_count":22,"default_branch":"master","last_synced_at":"2024-12-20T07:04:08.029Z","etag":null,"topics":["article","clojure","clojurescript"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mbuczko.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-04-10T09:51:28.000Z","updated_at":"2024-11-28T05:41:52.000Z","dependencies_parsed_at":"2024-01-14T06:04:37.027Z","dependency_job_id":"d666b15d-02be-41be-a743-14896856efe8","html_url":"https://github.com/mbuczko/awesome-clojure","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbuczko%2Fawesome-clojure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbuczko%2Fawesome-clojure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbuczko%2Fawesome-clojure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbuczko%2Fawesome-clojure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mbuczko","download_url":"https://codeload.github.com/mbuczko/awesome-clojure/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247092377,"owners_count":20882218,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["article","clojure","clojurescript"],"created_at":"2024-07-31T10:00:28.379Z","updated_at":"2025-04-05T14:08:29.438Z","avatar_url":"https://github.com/mbuczko.png","language":null,"readme":"#+TITLE: Awesome Clojure [[https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg]]\n#+OPTIONS: toc:nil\n#+OPTIONS: num:nil\n#+STARTUP: align shrink\n\nCollection of useful links for Clojurians. Inspired by other awesome-* stuffs.\n\nPRs nicely welcomed. Please add your suggestions to README.org file.\n\n#+TOC: headlines 2 local\n\n* Aggregators\n| Description                         | Link                                                 |\n|-------------------------------------+------------------------------------------------------|\n| Open Source Clojure projects        | http://open-source.braveclojure.com/                 |\n| Posts from various contributors     | http://planet.clojure.in/                            |\n| Libraries and tools for Clojure     | http://www.clojure-toolbox.com/                      |\n| Clojure daily                       | http://paper.li/ajlopez/1291580164                   |\n| Community Curated Clojure Resources | https://hackr.io/tutorials/learn-clojure             |\n| Clojure graph resources             | https://github.com/simongray/clojure-graph-resources |\n* Blogs\n| Description                | Link                               |\n|----------------------------+------------------------------------|\n| ClojureWerkz projects      | http://blog.clojurewerkz.org/      |\n| Become a better programmer | http://www.braveclojure.com        |\n| Tons of cool ideas         | http://yogthos.net                 |\n| Parens of death            | http://www.parens-of-the-dead.com/ |\n| Anna Pawlicka              | http://annapawlicka.com/           |\n| Jessica Kerr               | http://blog.jessitron.com/         |\n| Stuart Sierra              | http://stuartsierra.com/           |\n| Adam Bard                  | https://adambard.com/blog/         |\n| Parallel Universe          | http://blog.paralleluniverse.co    |\n| Verma / blog               | http://udayv.com/                  |\n| Lisp Chronicles            | https://lispchronicles.com/        |\n| Clojure goes fast          | http://clojure-goes-fast.com/      |\n| Inside Clojure             | https://insideclojure.org/         |\n* Chats\nNeed to talk with someone? Visit one of following places:\n\n| Description                         | Link                             |\n|-------------------------------------+----------------------------------|\n| Clojurians Slack                    | http://clojurians.net/           |\n| Searchable Slack-archive            | https://clojurians.zulipchat.com |\n| Clojurians Zulip                    | http://clojurians.zulipchat.com/ |\n| Clojurians Discord                  | https://discord.gg/kjKb3Gx       |\n| Lisp Discord (with clojure channel) | https://discord.gg/T5D2EAJ       |\n* Documentation\nFunction description needed? Eager of examples / tutorials? Take a look at one of following sources:\n\n| Description                                | Link                          |\n|--------------------------------------------+-------------------------------|\n| Community-driven documentation             | http://clojure-doc.org/       |\n| Community-powered docs and examples        | http://clojuredocs.org/       |\n| Community Clojure Documentation            | http://conj.io/               |\n| Documentation for Clojure/Script libraries | https://cljdoc.org/           |\n| Cross-referencing the Clojure ecosystem    | http://crossclj.info/         |\n| Clojure* cheatsheets                       | http://jafingerhut.github.io/ |\n| ClojureScript API                          | http://cljs.github.io/api/    |\n| ClojureScript cheatsheets                  | http://cljs.info/cheatsheet/  |\n* Articles\n- [[http://yogthos.net/posts/2015-01-15-A-Plugin-System-in-Clojure.html][Plugin system in Clojure]]\n- [[http://blog.mattgauger.com/blog/2014/09/15/clojure-code-quality-tools/][Clojure quality tools]]\n- [[http://blog.josephwilk.net/clojure/building-clojure-services-at-scale.html][Clojure services at Scale]]\n- [[http://josf.info/blog/2014/10/02/practical-zippers-extracting-text-with-enlive/][Zippers]]\n- [[http://spootnik.org/entries/2014/11/06_playing-with-clojure-core-interfaces.html][Clojure interfaces]]\n- [[http://dev.mixrad.io/blog/2014/10/19/Clojure-libraries/][Clojure at MixRadio]]\n- [[http://www.braveclojure.com/writing-macros/][Clojure Macros explained]]\n- [[http://yobriefca.se/blog/2014/05/19/the-weird-and-wonderful-characters-of-clojure/][Weird Clojure characters explained]]\n- [[https://aphyr.com/posts/319-clojure-from-the-ground-up-debugging][Debugging clojure]]\n- [[http://getprismatic.com/story/1421983286985][Ring Web Applications with Comsat]]\n- [[http://learnxinyminutes.com/docs/compojure/][Compojure tutorial]]\n- [[http://blog.factual.com/open-source-clojure-library-for-geospatial-information][Geospatial Information]]\n- [[http://www.jasonstrutz.com/posts/obfuscate-your-clojure-webapp-ids-with-hashids/][Clojure web-apps IDs with Hashids]]\n- [[http://rundis.github.io/blog/2015/buddy_auth_part1.html][Securing Clojure Microservices using buddy]]\n- [[http://suva.sh/2014/10/27/test-workflow-setup-for-clojure/][Setup TDD workflow for Clojure]]\n- [[http://sunng.info/blog/blog/2014/07/08/microservice-and-slacker-cluster/][Microservice Architecture With Slacker Cluster]]\n- [[https://semaphoreci.com/community/tutorials/testing-clojure-web-applications-with-selenium][Testing Clojure with Selenium]]\n- [[https://semaphoreci.com/community/tutorials/testing-clojure-web-applications-with-kerodon][Testing Clojure web apps with kerodon]]\n- [[http://blog.circleci.com/testing-clojurescript-code-with-clojurescript-test-and-karma/][Testing Clojurescript with Karma]]\n- [[http://lab.brightnorth.co.uk/2014/05/07/midje-rocks-integration-testing-in-clojure/][Integration tests with Midje]]\n- [[https://nelsonmorris.net/2015/04/22/streaming-responses-using-ring.html][Streaming responses using Ring]]\n- [[http://insideclojure.org/2015/04/27/poly-perf/][Polymorfic performance]]\n- [[http://stuarth.github.io/pixie/pixie-pi/][Pixie Pi]]\n- [[http://brownsofa.org/blog/2015/06/14/clojure-in-production-logging/][Clojure in Production: Logging]]\n- [[http://martinklepsch.github.io/tenzing/][Clojurescript application template]]\n- [[https://speakerdeck.com/kachayev/efficient-concurrent-and-concise-data-access-in-clojure][Efficient, Concurrent and Concise Data Access in Clojure]]\n- [[http://dev.solita.fi/2014/03/18/pimp-my-repl.html][Pimp my REPL]]\n- [[http://www.javacodegeeks.com/2015/09/clojure-prismatic-schemas-are-swagger.html][Clojure (Prismatic) Schemas are Swagger]]\n- [[http://camdez.com/blog/2015/08/27/practical-data-coercion-with-prismatic-schema/][Practical Data Coercion With Prismatic/schema]]\n- [[http://mishadoff.com/blog/clojure-design-patterns/][Clojure Design Patterns]]\n- [[http://daveyarwood.github.io/2014/07/30/20-cool-clojure-functions/][20 cool Clojure functions]]\n- [[https://adambard.com/blog/deploying-a-clojure-project-with-pallet/][Deploying a Clojure web app with Pallet]]\n- [[https://engineering.fundingcircle.com/blog/2016/01/11/tdd-in-clojure/][TDD in Clojure]]\n- [[http://nathanmarz.com/blog/functional-navigational-programming-in-clojurescript-with-sp.html][Functional-navigational programming with Specter]]\n- [[http://escherize.com/2016/02/29/boot-with-cljs/][Quickstart Boot and ClojureScript]]\n- [[https://kartar.net/2016/04/managing-maintenance-with-riemann/][Managing Maintenance With Riemann]]\n- [[http://blog.muhuk.com/2016/05/10/using_codox_effectively.html][Using Codox Effectively]]\n- [[http://blog.jenkster.com/2016/06/clojure-fu-with-juxt.html][Clojure-Fu with Juxt]]\n- [[http://garajeando.blogspot.com/2016/07/kata-ohce-in-clojure-using-outside-in.html][Ohce in Clojure using outside-in TDD with Midje]]\n- [[https://www.dotkam.com/2017/01/10/hubble-space-mission-securely-configured/][Hubble Space Mission Securely Configured]]\n- [[http://www.surrealanalysis.com/post/clojure-and-consul/][Consul \u0026 Clojure]]\n- [[https://adzerk.com/blog/2017/02/faster-clojure-metadevelopment-with-boot/][Faster meta-development with boot]]\n- [[http://dev.solita.fi/2017/03/09/isolated-integration-testing-with-clojure-and-postgres.html][Isolated integration testing with postgres]]\n- [[http://paul.stadig.name/2016/08/reducible-streams.html][Reducible streams]]\n- [[https://purelyfunctional.tv/guide/clojure-concurrency-the-ultimate-guide/][The Ultimate Guide to Clojure Concurrency]]\n- [[https://adambard.com/blog/domain-modeling-with-clojure-spec/][Domain modelling with clojure.spec]]\n- [[http://dragan.rocks/articles/17/Clojure-Numerics-1-Use-Matrices-Efficiently][Use Matrices Efficiently]]\n- [[http://tonsky.me/blog/readable-clojure/][Readable Clojure]]\n- [[https://labs.uswitch.com/comprehensible-code/][Comprehensible Code]]\n- [[http://www.functionalbytes.nl//clojure/mount/mount-lite/2016/02/11/mount-lite.html][Yet another \"mount\" alternative]]\n- [[http://clojure-goes-fast.com/blog/performance-nemesis-reflection/][Performance nemesis: reflection]]\n- [[http://clojure-goes-fast.com/blog/introspection-tools-java-decompilers/][Introspection tools: Java decompilers]]\n- [[http://www.metosin.fi/blog/reitit/][Reitit, Data-Driven Routing with Clojure(Script)]]\n- [[https://whimsical.co/tech/how-we-built-whimsical/][How We Built Whimsical]]\n- [[https://tirkarthi.github.io/programming/2018/08/17/redis-streams-clojure.html][Redis streams and Clojure]]\n- [[http://ahungry.com/blog/2018-12-26-Clojure-is-Capable.html][Clojure is capable]]\n- [[https://mjg123.github.io/2017/10/04/AppCDS-and-Clojure.html][Quicker Clojure startup with AppCDS and AOT]]\n- [[https://www.dotkam.com/2017/04/09/hazelcast-keep-your-cluster-close-but-cache-closer/][Hazelcast: Keep your cluster close, but cache closer]]\n- [[https://tech.redplanetlabs.com/2020/01/06/serializing-and-deserializing-clojure-fns-with-nippy/][Serializing and Deserializing Clojure Fns with Nippy]]\n- [[https://medium.com/@pwentz/laziness-in-clojure-3d83645bf7f3][Laziness in Clojure]]\n- [[http://bytopia.org/2016/10/15/beware-of-assertions/][Beware of assertions]]\n- [[https://aphyr.com/posts/360-loopr-a-loop-reduction-macro-for-clojure][Loopr: A Loop/Reduction Macro for Clojure]]\n*** collections\n- [[https://purelyfunctional.tv/guide/clojure-collections/][Clojure Data Structures Tutorial]]\n*** transducers\n- [[http://elbenshira.com/blog/understanding-transducers/][Understanding transducers]]\n- [[http://blog.juxt.pro/posts/xpath-in-transducers.html][Processing documents with transducers]]\n- [[https://labs.uswitch.com/transducers-from-the-ground-up-the-practice/][Transducers from the ground up]]\n- [[https://www.astrecipes.net/blog/2016/11/24/transducers-how-to/][Transducers how-to]]\n- [[https://dawranliou.com/blog/better-performance-with-java-arrays-in-clojure/][Better Performance With Java Arrays In Clojure]]\n*** specs\n- [[http://conan.is/blogging/clojure-spec-tips.html][Clojure Spec Tips]]\n- [[http://blog.cognitect.com/blog/2016/8/9/focus-on-spec-predicates][Focus on Spec: predicates]]\n- [[https://www.metosin.fi/blog/spec-transformers/][Spec Transformers]]\n*** virtual threads\n- [[https://andersmurphy.com/2024/05/06/clojure-managing-throughput-with-virtual-threads.html][Clojure: managing throughput with virtual threads]]\n- [[https://ericnormand.me/guide/clojure-virtual-threads][Virtual Threads in Clojure]]\n* Projects\nFollowing is a list of amazing projects, worth to keep an eye on.\n** clojurescript\nClojureScript 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\n\n- [[https://github.com/emrehan/awesome-clojurescript][Clojurescript awesomeness]]\n- [[http://cljsjs.github.io/][Javascript libraries packaged up with Google Closure externs]]\n- [[http://adambard.com/blog/a-simple-clojurescript-app/][Kioo example]]\n- [[http://www.niwi.be/cljs-workshop/][ClojureScript tutorial]]\n- [[http://www.niwi.be/2015/03/28/promises-and-clojurescript/][Promises and Clojurescript]]\n- [[http://kanaka.github.io/clojurescript/web/synonym.html][Translations from Javascript]]\n- [[https://github.com/magomimmo/modern-cljs][Modern ClojureScript]]\n- [[https://github.com/bhauman/devcards][Visual REPL experience for ClojureScript]]\n- [[https://github.com/binaryage/dirac][A Chrome DevTools fork for ClojureScript developers]]\n- [[https://github.com/jmmk/javascript-externs-generator][Javascript externs generator]]\n- [[https://purelyfunctional.tv/guide/re-frame-building-blocks/][The Re-frame Building Blocks Guide]]\n- [[https://pupeno.com/2017/05/06/how-to-work-with-a-private-library-in-clojurescript/][How to work with a private library in ClojureScript]]\n- [[https://code.thheller.com/blog/shadow-cljs/2019/03/03/code-splitting-clojurescript.html][Code-Splitting ClojureScript]]\n** datomic\nThe fully transactional, cloud-ready, distributed database - http://www.datomic.com/\n\n- [[https://github.com/flyingmachine/datomic-junk][Helper library for datomic]]\n- [[http://www.learndatalogtoday.org/][Interactive tutorial]]\n** core.async\nFacilities for async programming and communication in Clojure\n\n- [[https://github.com/halgari/clojure-conj-2013-core.async-examples/blob/master/src/clojure_conj_talk/core.clj][Examples]]\n- [[https://github.com/martintrojer/go-tutorials-core-async][Tutorials]]\n- [[http://blog.venanti.us/using-transducers-with-core-async-clojurescript/][Using Transducers with Core.async in ClojureScript]]\n- [[http://ku1ik.com/2015/10/12/sweet-core-async.html][Core.async in the browser is sweet]]\n- [[http://www.bradcypert.com/clojure-async/][Introduction to Asynchronous Programming in Clojure]]\n- [[http://danboykis.com/posts/things-i-wish-i-knew-about-core-async/][Things I Wish I Knew About Core Async in Clojure]]\n- [[http://danboykis.com/posts/core-async-timeout-channels/][Core Async Timeout Channels]]\n- [[https://www.braveclojure.com/core-async/][Mastering Concurrent Processes with core.async]]\n- [[https://blog.venanti.us/using-transducers-with-core-async-clojurescript/][Using transducers with core.async in Clojurescript]]\n** reagent\nMinimalistic React for ClojureScript - http://holmsand.github.io/reagent/\n\n- [[http://timothypratley.blogspot.com/2017/01/reagent-deep-dive-part-1.html][Reagent deep dive part 1]]\n- [[http://timothypratley.blogspot.com/2017/01/reagent-deep-dive-part-2-lifecycle-of.html][Reagent deep dive part 2]]\n- [[https://github.com/reagent-project/reagent-cookbook][Reagent cookbook]]\n- [[https://github.com/Day8/re-frame][Reagent Framework For Writing SPAs, in Clojurescript]]\n- [[https://carouselapps.com/2015/08/26/no-hashes-bidirectional-routing-in-re-frame-with-bidi-and-pushy/][No-hashes bidirectional routing in re-frame with bidi and pushy]]\n- [[https://github.com/Day8/re-frame/wiki/Creating-Reagent-Components][Creating reagent components]]\n- [[http://www.mattgreer.org/articles/reagent-rocks/][Why reagent rocks?]]\n- [[https://github.com/tastejs/todomvc][TodoMVC for Reagent]]\n- [[https://github.com/reagent-project/reagent/wiki/Applications-built-with-Reagent][Applications built with Reagent]]\n- [[https://github.com/bilus/reforms][Beautiful Bootstrap 3 forms for Om, Reagent and Rum]]\n** OM\nA ClojureScript interface to Facebook's React.\n\n- [[https://github.com/om-cookbook/om-cookbook][Om cookbook]]\n- [[https://github.com/plexus/chestnut][Application template for ClojureScript/Om with live reloading]]\n- [[http://www.stuttaford.me/2014/08/10/om-interop-with-3rd-party-libs/][Om interop with 3rd party JS libs]]\n- [[http://annapawlicka.com/common-mistakes-to-avoid-when-creating-an-om-component-part-1/][Mistakes to avoid when creating an Om component. Part 1.]]\n- [[http://annapawlicka.com/common-mistakes-to-avoid-when-creating-an-om-component-part-2/][Mistakes to avoid when creating an Om component. Part 2.]]\n- [[http://www.slideshare.net/borgesleonardo/high-performance-web-apps-in-om-react-and-clojurescript][High performance web apps in Om and React]]\n- [[http://blog.tarn-vedra.de/posts/om-removing-boilerplate.html][Removing bloilerplate]]\n** riemann\nRiemann aggregates events from your servers and applications with a powerful stream processing language.\n\n[[http://kartar.net/2014/12/an-introduction-to-riemann/][An Introduction to Riemann]]\n** yada\nYada is a library that helps building RESTful web APIs quickly and easily - http://yada.juxt.pro\n** crux\nCrux is an open source document database with bitemporal graph queries - https://juxt.pro/crux\n\n- [[https://dev.to/jorinvo/crux-as-general-purpose-database-kk3][Crux as General-Purpose Database]]\n- [[https://juxt.pro/blog/posts/crux-tutorial-setup.html][Crux tutorial - Setup]]\n- [[https://juxt.pro/blog/posts/crux-tutorial-await.html][Crux tutorial - Await transactions]]\n- [[https://nextjournal.com/crux-tutorial/datalog-queries][Datalog Queries with Crux – Mercury Assignment]]\n- [[https://github.com/acgollapalli/dataworks][Dataworks - Hot-swap API endpoints and stream processors]]\n- [[https://martinfowler.com/articles/bitemporal-history.html][Bitemporal History]]\n** reitit\nFast data-driven router for Clojure(Script) - https://metosin.github.io/reitit/\n\n- [[https://www.metosin.fi/blog/reitit/][Reitit, Data-Driven Routing with Clojure(Script)]]\n- [[https://www.metosin.fi/blog/reitit-ring/][Data-Driven Ring with Reitit]]\n** neanderthal\nFast native-speed matrix and linear algebra in Clojure - https://neanderthal.uncomplicate.org/\n\nBooks from the author:\n- [[https://aiprobook.com/deep-learning-for-programmers/][Deep Learning for Programmers]]\n- [[https://aiprobook.com/numerical-linear-algebra-for-programmers/][Numerical Linear Algebra for Programmers]]\n** eva\nA distributed database-system implementing an entity-attribute-value data-model that is time-aware, accumulative, and atomically consistent - https://github.com/Workiva/eva\n** graphql\nGraphQL for the Clojure land:\n\n- [[https://github.com/walmartlabs/lacinia][lacinia]] GraphQL implementation in pure Clojure\n- [[https://github.com/graphqlize/graphqlize][graphqlize]] GraphQL API instantly from Postgres and MySQL databases\n** datalog\n- [[http://www.learndatalogtoday.org/][Learn Datalog Today]] (actually nothing about clojure)\n- [[https://juxt.pro/blog/datascript-dom][Datalog for trees in Clojure]] (practical use of datalog to match and extract information)\n- [[https://github.com/tonsky/datascript][Datascript - Immutable database and Datalog query engine for Clojure, ClojureScript and JS]]\n- [[https://github.com/vvvvalvalval/datalog-rules][Datalog Rules - Utilities for managing Datalog rulesets from Clojure]]\n- [[https://github.com/replikativ/datahike][Datahike - A durable datalog implementation]]\n- [[https://www.youtube.com/watch?v=oo-7mN9WXTw][Domain modeling with datalog]] (why datalog is so cool!)\n** my own (not that amazing ;) projects\nHere is the list of my own (some of them forked...) projects that you might be interested in:\n\n- [[https://github.com/mbuczko/cerber-oauth2-provider][Clojure implementation of RFC 6749 OAuth 2.0 authorization framework]]\n- [[https://github.com/mbuczko/cerber-roles][Role Based Access Control]]\n- [[https://github.com/mbuczko/revolt][Revolt - your trampoline to Clojure dev toolbox]]\n- [[https://github.com/mbuczko/revolt-edge][Sample use of Revolt library]]\n- [[https://github.com/mbuczko/revolt-flyway-task][Flyway based migrations task for Revolt]]\n- [[https://github.com/mbuczko/revolt-catapulte-task][JAR deployer / installer for Revolt]]\n- [[https://github.com/mbuczko/clj-qrgen][QR generation with iCal scheme]]\n- [[https://github.com/mbuczko/skalar][Image processing based on pooled GraphicsMagick sessions]]\n- [[https://github.com/mbuczko/embodie][Fetching site-embedded data]]\n- [[https://github.com/mbuczko/metrics-riemann-reporter][Reporting JMX metrics directly to riemann aggregator]]\n- [[https://github.com/mbuczko/logback-riemann-appender][Logback riemann appender]]\n- [[https://github.com/mbuczko/flux][A clojure client for SOLR with nice criteria DSL]]\n- [[https://github.com/mbuczko/categorizer][Category tree made easy]]\n- [[https://github.com/mbuczko/moderator][Fancy scoring of input data]]\n- [[https://github.com/mbuczko/boot-ragtime][Ragtime migrations with Clojure Boot build tool]]\n- [[https://github.com/mbuczko/boot-build-info][Boot task to generate build information]]\n* Utilities\nUtilities making development even more pleasant.\n\n- [[https://github.com/zcaudate/hara][General Purpose Utilities Library]]\n- [[https://github.com/purnam/purnam][Language extensions for clojurescript]]\n- [[https://github.com/zcaudate/vinyasa][Give your clojure workflow more flow]]\n* Emacs\nEmacs bits and pieces. Definitely worth checking out if you're addicted to this editor.\n\n- [[https://github.com/clojure-emacs/cider][Cider IDE that rocks!]]\n- [[https://metaredux.com/posts/2019/10/05/hard-cider-project-specific-configuration.html][Hard CIDER: Project-specific Configuration]]\n- [[https://github.com/clojure-emacs/clj-refactor.el][Collection of Clojure refactoring functions]]\n- [[https://github.com/mbuczko/helm-clojuredocs][Help on clojuredocs.org]]\n* Github\n| Description                                                                  | Link                                                     |\n|------------------------------------------------------------------------------+----------------------------------------------------------|\n| A community coding style guide                                               | https://github.com/bbatsov/clojure-style-guide           |\n| This is the home of O'Reilly's Clojure Cookbook                              | https://github.com/clojure-cookbook/clojure-cookbook     |\n| Routing library for Ring                                                     | https://github.com/weavejester/compojure/wiki            |\n| Example project for Cljs/Om using Boot                                       | https://github.com/Deraen/saapas                         |\n| Clojure static page generation using boot                                    | https://github.com/DanThiffault/boot-pages               |\n| Simple css/js asset fingerprinting for Boot                                  | https://github.com/pointslope/boot-fingerprint           |\n| Init scheme with service supervision with Boot                               | https://github.com/danielsz/boot-runit                   |\n| Compatibility layer with the environ library                                 | https://github.com/danielsz/boot-environ                 |\n| Database migrations with Ragtime using Boot                                  | https://github.com/mbuczko/boot-ragtime                  |\n| Your trampoline to Clojure dev toolbox                                       | https://github.com/mbuczko/revolt                        |\n| Clojure implementation of RFC 6749 OAuth 2.0                                 | https://github.com/mbuczko/cerber-oauth2-provider        |\n| Security library for Clojure                                                 | https://github.com/niwibe/buddy                          |\n| Enlive/Enfocus style templating for Facebook's React                         | https://github.com/ckirkendall/kioo                      |\n| Produce and consume JMX beans from Clojure                                   | https://github.com/clojure/java.jmx                      |\n| Clojure library for using SQL                                                | https://github.com/krisajenkins/yesql                    |\n| Source code documentation tool                                               | https://github.com/gdeer81/marginalia                    |\n| Clojure documentation tool                                                   | https://github.com/weavejester/codox                     |\n| Functions with parameter pattern matching like erlang                        | https://github.com/killme2008/defun                      |\n| A simple static site generator written in Clojure                            | https://github.com/lacarmen/cryogen                      |\n| Data processing on Hadoop without the hassle                                 | https://github.com/nathanmarz/cascalog                   |\n| Reducers, but for parallel execution                                         | https://github.com/aphyr/tesser                          |\n| Transducers and reducing functions for Clojure(Script)                       | https://github.com/cgrand/xforms                         |\n| A thin facade around Coda Hale's metrics library                             | https://github.com/sjl/metrics-clojure/                  |\n| Multi-class Naive Bayes Classifier                                           | https://github.com/danielfm/judgr                        |\n| Auth library for Clojure and Ring based on OAuth2                            | https://github.com/pelle/clauth                          |\n| Managed lifecycle of stateful objects in Clojure                             | https://github.com/stuartsierra/component                |\n| State management with a `java.io.Closeable` map                              | https://github.com/piotr-yuxuan/closeable-map            |\n| Event-driven programming and stream processing toolkit                       | https://github.com/clojurewerkz/meltdown                 |\n| Understanding Clojure Sequences                                              | https://github.com/JulesGosnell/seqspert                 |\n| Erlang-style supervisor error handling for Clojure                           | https://github.com/MichaelDrogalis/dire                  |\n| A validation DSL for Clojure \u0026 Clojurescript applications                    | https://github.com/leonardoborges/bouncer                |\n| Simple scraper and tokenizer                                                 | https://github.com/miles-no/MilesCampHackatonScraper     |\n| Clojure template for REST web services in the style of MixRadio              | https://github.com/mixradio/mr-clojure                   |\n| Display ghostly yesql defqueries inline, in Emacs                            | https://github.com/magnars/yesql-ghosts                  |\n| A lightweight ClojureScript abstraction over ReactJS                         | https://github.com/levand/quiescent                      |\n| Clojure file and directory watcher                                           | https://github.com/wkf/hawk                              |\n| Types again :)                                                               | https://github.com/arrdem/guten-tag                      |\n| ClojureScript interface to local/session storage                             | https://github.com/funcool/hodgepodge                    |\n| A tiny Clojure routing library for Ring                                      | https://github.com/taylorlapeyre/nav                     |\n| Minimal React wrapper for ClojureScript                                      | https://github.com/tonsky/rum                            |\n| A Ragtime extention for ArangoDB                                             | https://github.com/deusdat/waller                        |\n| Contracts programming with Clojure                                           | https://github.com/fogus/trammel                         |\n| Threadpool tools for Clojure                                                 | https://github.com/TheClimateCorporation/claypoole       |\n| Utility library to write microservices                                       | https://github.com/zalando-stups/friboo                  |\n| Experimental multilenses                                                     | https://github.com/ctford/traversy                       |\n| A Constraint Programming library for Clojure                                 | https://github.com/aengelberg/loco                       |\n| Logo in Clojure                                                              | https://github.com/google/clojure-turtle                 |\n| Elegant and efficient remote data access                                     | https://github.com/kachayev/muse                         |\n| Geometry toolkit for Clojure/ClojureScript                                   | https://github.com/thi-ng/geom                           |\n| DSL for building client to remote service APIs                               | https://github.com/outpace/remote                        |\n| Trace-oriented debugging tools for Clojure                                   | https://github.com/dgrnbrg/spyscope                      |\n| New dependencies in REPL on the fly                                          | https://github.com/zcaudate/vinyasa                      |\n| Priority map                                                                 | https://github.com/clojure/data.priority-map             |\n| Durable queue implementation                                                 | https://github.com/layerware/pgqueue                     |\n| Durable reference types for Clojure                                          | https://github.com/riverford/durable-ref                 |\n| A really lightweight Clojure scheduler                                       | https://github.com/jarohen/chime                         |\n| Interface to the Pikaday js date-picker                                      | https://github.com/timgilbert/cljs-pikaday               |\n| REPL functions to support the reloaded workflow                              | https://github.com/weavejester/reloaded.repl             |\n| Control throughput of fn calls and async channels                            | https://github.com/brunoV/throttler                      |\n| Command-line args parsing and validation with malli schemas                  | https://github.com/piotr-yuxuan/malli-cli                |\n| Managing Clojure app state since (reset)                                     | https://github.com/tolitius/mount                        |\n| \"Smarter\" threading macros                                                   | https://github.com/maitria/packthread                    |\n| Human dates                                                                  | https://github.com/philjackson/wordy-date                |\n| A routing library                                                            | https://github.com/Hendrick/avenue                       |\n| Syntax threading macros for Clojure                                          | https://github.com/LonoCloud/synthread                   |\n| Fast clojure json parser                                                     | https://github.com/gerritjvv/pjson                       |\n| Elegant remote data access for Clojure(Script)                               | https://github.com/funcool/urania                        |\n| Hierarchical Timing Wheels for Clojure(Script)                               | https://github.com/sunng87/rigui                         |\n| Turn files into asynchronous streams                                         | https://github.com/ane/vigil                             |\n| Bidirectional data-driven request routing                                    | https://github.com/aroemers/sibiro                       |\n| Library agnostic way to stub HTTP endpoints                                  | https://github.com/johanhaleby/stub-http                 |\n| Query your maps as in Datalog                                                | https://github.com/alandipert/intension                  |\n| A feature flag library for Clojure                                           | https://github.com/plexus/pennon                         |\n| Clojure Error Message Catalog                                                | https://github.com/yogthos/clojure-error-message-catalog |\n| Functional, persistent, performant data structure                            | https://github.com/datacrypt-project/hitchhiker-tree     |\n| Forward-chaining rules in Clojure                                            | https://github.com/rbrush/clara-rules                    |\n| Monadic error handling                                                       | https://github.com/adambard/failjure                     |\n| Visualization of Clojure data structures using Graphviz                      | https://github.com/walmartlabs/datascope                 |\n| Clojure wrapper over failsafe                                                | https://github.com/sunng87/diehard/                      |\n| One Time Password (TOTP and HOTP) for Clojure                                | https://github.com/suvash/one-time                       |\n| Mocks, stubs, and spies for Clojure protocols                                | https://github.com/bguthrie/shrubbery                    |\n| Failure handling with Manifold                                               | https://github.com/tulos/manifail                        |\n| A gentle touch of Clojure to Hashicorp's Consul                              | https://github.com/tolitius/envoy                        |\n| A lightweight library of useful Clojure functions                            | https://github.com/weavejester/medley                    |\n| Meldable priority queues in Clojure                                          | https://github.com/michalmarczyk/maxiphobe               |\n| XChart wrapper for Clojure                                                   | https://github.com/hyPiRion/clj-xchart                   |\n| Convenience features making Clojure even sweeter                             | https://github.com/cloojure/tupelo                       |\n| Elasticsearch client for Clojure                                             | https://github.com/mpenet/spandex                        |\n| A functional Clojure progress bar for the CLI                                | https://github.com/weavejester/progrock                  |\n| Hazelcast bells and whistles under the belt                                  | https://github.com/tolitius/chazel                       |\n| Clojure library for working with the GH v3 API                               | https://github.com/irresponsible/tentacles/              |\n| Reactive Streams for Clojure(Script)                                         | https://github.com/funcool/beicon                        |\n| Clojure/ClojureScript URI library                                            | https://github.com/lambdaisland/uri                      |\n| Command-line interfaces using only docstring                                 | https://github.com/carocad/docopt.clj                    |\n| Rewrite Clojure Code and EDN                                                 | https://github.com/xsc/rewrite-clj                       |\n| Fast Clojure Matrix Library                                                  | https://github.com/uncomplicate/neanderthal              |\n| Bidirectional Ring router. Rails inspired.                                   | https://github.com/darkleaf/router                       |\n| Clojure Test Fixtures \u0026 Datasources                                          | https://github.com/stylefruits/fixpoint                  |\n| Evaluating composable lang rules on input strings                            | https://github.com/dpom/clj-duckling                     |\n| Re-frame with DataScript as a data storage                                   | https://github.com/denistakeda/data-frame                |\n| Http API format negotiation, encoding and decoding                           | https://github.com/metosin/muuntaja                      |\n| A remote (CQRS) API library for Clojure                                      | https://github.com/metosin/kekkonen                      |\n| Ring async Server-Sent Events handler                                        | https://github.com/bobby/ring-sse                        |\n| General-purpose ACME client                                                  | https://github.com/danielsz/certificaat                  |\n| Functional JVM bytecode generation for Clojure                               | https://github.com/jgpc42/insn                           |\n| All functions deserve to be measured                                         | https://github.com/tolitius/calip                        |\n| A trace window for re-frame                                                  | https://github.com/Day8/re-frame-trace                   |\n| Add structure to a reagent/re-frame app                                      | https://github.com/gadfly361/re-surface                  |\n| A queue which schedules fairly by key                                        | https://github.com/acrolinx/clj-queue-by                 |\n| Jetty adapter enhanced with servlet-mapping support                          | https://github.com/jiacai2050/ring-jetty-servlet-adapter |\n| Accessing HDFS, S3, SFTP and other fs via a single API                       | https://github.com/oshyshko/uio                          |\n| AWS pure Clojure, spec-based implementation                                  | https://github.com/portkey-cloud/aws-clj-sdk             |\n| An isolation framework for Clojure/ClojureScript                             | https://github.com/metametadata/clj-fakes                |\n| Reformat Clojure(Script) source code and s-expressions                       | https://github.com/kkinnear/zprint                       |\n| Lean Hash Array Mapped Trie (Lean Map)                                       | https://github.com/bendyworks/lean-map                   |\n| Succint and readable integration tests over RESTful APIs                     | https://github.com/facundoolano/restpect                 |\n| Fast Idiomatic Pretty Printer                                                | https://github.com/brandonbloom/fipp                     |\n| Graphing tool for Clojure built with interactivity in mind                   | https://github.com/hswick/jutsu                          |\n| REPL-based data visualization in the browser                                 | https://github.com/yieldbot/vizard                       |\n| Graphql client for re-frame                                                  | https://github.com/oliyh/re-graph                        |\n| A library of parallel-enabled Clojure functions                              | https://github.com/reborg/parallel                       |\n| Structural diffs for clojure source code                                     | https://github.com/ladderlife/autochrome                 |\n| Homoglyph/IDN homograph detection/handling                                   | https://github.com/mpenet/thorn                          |\n| A fast data-driven router for Clojure(Script)                                | https://github.com/metosin/reitit                        |\n| A durable datalog impl adaptable for distribution                            | https://github.com/replikativ/datahike                   |\n| An all-purpose Clojure graph data structure                                  | https://github.com/Engelberg/ubergraph                   |\n| Clojure(Script) library for stubs, spies and mocks                           | https://github.com/alexanderjamesking/spy                |\n| Add function args and return Spec checks via assertions                      | https://github.com/Provisdom/defn-spec                   |\n| Clojure library for fast JSON encoding and decoding                          | https://github.com/metosin/jsonista                      |\n| Fetch data from SQL using Clojure(script)                                    | https://github.com/walkable-server/walkable              |\n| Asynchronous programming toolkit for clojure(script)                         | https://github.com/leonoel/missionary                    |\n| Clojure mocking library                                                      | https://github.com/igrishaev/mockery                     |\n| Configuration from various sources                                           | https://github.com/sunng87/stavka                        |\n| Measure object memory consumption from Clojure                               | https://github.com/clojure-goes-fast/clj-memory-meter    |\n| Convert REPL interactions into example-based tests                           | https://github.com/cognitect-labs/transcriptor           |\n| Lein-jlink                                                                   | https://github.com/sunng87/lein-jlink                    |\n| Programmatic access to AWS services                                          | https://github.com/cognitect-labs/aws-api                |\n| Zero-configuration command-line HTTP files server                            | https://github.com/kachayev/nasus                        |\n| Clojure/ClojureScript data transformation library                            | https://github.com/noprompt/meander                      |\n| Content-addressable storage                                                  | https://github.com/greglook/blocks                       |\n| Automatic generative testing, side effect detection                          | https://github.com/gnl/ghostwheel                        |\n| A minimal and opinionated linter for Clojure code                            | https://github.com/borkdude/clj-kondo                    |\n| Aspect-oriented Clojure(script) def-forms                                    | https://github.com/galdre/morphe                         |\n| Chronicle Queue helpers                                                      | https://github.com/mpenet/tape                           |\n| String mangling library for Clojure                                          | https://github.com/randomseed-io/smangler                |\n| Binary byte buffer manipulation reminiscent of C                             | https://github.com/sonwh98/voodoo                        |\n| cond that supports :let clauses and other conveniences                       | https://github.com/engelberg/better-cond                 |\n| Nippy extension to add ability to freeze and thaw fns                        | https://github.com/redplanetlabs/nippy-serializable-fns  |\n| A replacement for Clojure's proxy                                            | https://github.com/redplanetlabs/proxy-plus              |\n| A library for accessing the OpenCage Geocoding API                           | https://github.com/sgsfak/clj-ocgeo                      |\n| Save/Load Extensions for Neanderthal                                         | https://github.com/katox/neanderthal-stick               |\n| Utility functions for working with Redis streams in carmine                  | https://github.com/oliyh/carmine-streams                 |\n| Functions as Data                                                            | https://github.com/dvlopt/fdat.cljc                      |\n| Next generation high performance Clojure toolkit                             | https://github.com/cnuernber/dtype-next                  |\n| Embeddable Clojure profiler                                                  | https://github.com/jvm-profiling-tools/async-profiler    |\n| DSL for compiling SVG elements with Clojure(script)                          | https://github.com/adam-james-v/svg-clj                  |\n| Royally reified regular expressions                                          | https://github.com/lambdaisland/regal                    |\n| Background job queue on top of PostgreSQL                                    | https://github.com/metametadata/byplay                   |\n| Implementation of DataLoader in Clojure                                      | https://github.com/oliyh/superlifter                     |\n| Datahike with Firebase as data storage                                       | https://github.com/alekcz/datahike-firebase              |\n| A data-driven, reagent-wrapper for RoughJS                                   | https://github.com/beders/rough-cljs                     |\n| Union Types for clj(s) based on clojure.spec                                 | https://github.com/lambdaisland/uniontypes               |\n| Native fast-starting Clojure scripting environment                           | https://github.com/borkdude/babashka                     |\n| Utilities for managing Datalog rulesets from Clojure                         | https://github.com/vvvvalvalval/datalog-rules            |\n| Graph based visualization tool for re-frame event chains                     | https://github.com/ertugrulcetin/re-frame-flow           |\n| ClojureScript wrapper around the JavaScript fetch API.                       | https://github.com/lambdaisland/fetch                    |\n| Clojure(Script) library for phrasing spec problems.                          | https://github.com/alexanderkiel/phrase                  |\n| Do-it-yourself i18n library for Clojure/Script                               | https://github.com/tonsky/tongue                         |\n| RCF – a REPL-first, async test macro for Clojure/Script                      | https://github.com/hyperfiddle/rcf                       |\n| Matcher combinator to compare nested data structures                         | https://github.com/nubank/matcher-combinators            |\n| Unorthodox control flow, for Clojurists                                      | https://github.com/aphyr/dom-top                         |\n| Zero dependency efficient read/write of json and csv data                    | https://github.com/cnuernber/charred                     |\n| A Clojure(Script) \u0026 babashka library for dealing with time                   | https://github.com/juxt/tick                             |\n| Efficient JavaScript object interop via idiomatic ClojureScript              | https://github.com/mfikes/cljs-bean                      |\n| Facilitates calling of client-side functions from server-side generated HTML | https://github.com/thheller/shadow-graft                 |\n| An extremely lightweight fault tolerance library for Clojure                 | https://github.com/potetm/fusebox                        |\n* Social Media\nBecause we love them :)\n** YouTube\nMust-have YouTube subscriptions:\n\n- ClojureTV (https://www.youtube.com/user/ClojureTV)\n- Metosin (https://www.youtube.com/channel/UC1lFJanm5Wp6IpNk-2C1Sxw)\n- :clojureD (https://www.youtube.com/channel/UCOTrRnxBOllb9UHLuap_lPg)\n- StrangeLoop (https://www.youtube.com/channel/UC_QIfHvN9auy2CoOdSfMWDw)\n- PolyConf (https://www.youtube.com/user/polyconf)\n** Twitter\nPeople to follow, writing about clojure/lisp:\n\n- @richhickey (https://twitter.com/richhickey)\n- @bbatsov (https://twitter.com/bbatsov)\n- @cognitect (https://twitter.com/cognitect)\n- @adzerktech (https://twitter.com/adzerktech)\n- @alandipert (https://twitter.com/alandipert)\n- @michaniskin (https://twitter.com/michaniskin)\n- @stuartsierra (https://twitter.com/stuartsierra)\n- @weavejester (https://twitter.com/weavejester)\n- @stuarthalloway (https://twitter.com/stuarthalloway)\n- @juliansgamble (https://twitter.com/juliansgamble)\n- @swannodette (https://twitter.com/swannodette)\n- @jwiegley (https://twitter.com/jwiegley)\n- @ClojureFact (https://twitter.com/ClojureFact)\n- @ClojureRecipes (https://twitter.com/ClojureRecipes)\n- @ClojureWerkz (https://twitter.com/ClojureWerkz)\n- @planetclojure (https://twitter.com/planetclojure)\n- @thelittlelisper (https://twitter.com/thelittlelisper)\n- @pithyless (https://twitter.com/pithyless)\n- @haksior (https://twitter.com/haksior)\n- @borkdude (https://twitter.com/borkdude)\n","funding_links":[],"categories":["Uncategorized","Others","Technical"],"sub_categories":["Uncategorized","awesome-*"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmbuczko%2Fawesome-clojure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmbuczko%2Fawesome-clojure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmbuczko%2Fawesome-clojure/lists"}