Collection of useful links for Clojurians. Inspired by other awesome-* stuffs.
PRs nicely welcomed. Please add your suggestions to README.org file.
Description | Link |
---|---|
Open Source Clojure projects | http://open-source.braveclojure.com/ |
Posts from various contributors | http://planet.clojure.in/ |
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 |
Clojure graph resources | https://github.com/simongray/clojure-graph-resources |
Description | Link |
---|---|
ClojureWerkz projects | http://blog.clojurewerkz.org/ |
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/ |
Lisp Chronicles | https://lispchronicles.com/ |
Clojure goes fast | http://clojure-goes-fast.com/ |
Inside Clojure | https://insideclojure.org/ |
Need to talk with someone? Visit one of following places:
Description | Link |
---|---|
Clojurians Slack | http://clojurians.net/ |
Searchable Slack-archive | https://clojurians.zulipchat.com |
Clojurians Zulip | http://clojurians.zulipchat.com/ |
Clojurians Discord | https://discord.gg/kjKb3Gx |
Lisp Discord (with clojure channel) | https://discord.gg/T5D2EAJ |
Function description needed? Eager of examples / tutorials? Take a look at one of following sources:
Description | Link |
---|---|
Community-driven documentation | http://clojure-doc.org/ |
Community-powered docs and examples | http://clojuredocs.org/ |
Community Clojure Documentation | http://conj.io/ |
Documentation for Clojure/Script libraries | https://cljdoc.org/ |
Cross-referencing the Clojure ecosystem | http://crossclj.info/ |
Clojure* cheatsheets | http://jafingerhut.github.io/ |
ClojureScript API | http://cljs.github.io/api/ |
ClojureScript cheatsheets | http://cljs.info/cheatsheet/ |
- Plugin system in Clojure
- Clojure quality tools
- Clojure services at Scale
- Zippers
- Clojure interfaces
- Clojure at MixRadio
- Clojure Macros explained
- Weird Clojure characters explained
- Debugging clojure
- Ring Web Applications with Comsat
- Compojure tutorial
- Geospatial Information
- Clojure web-apps IDs with Hashids
- Securing Clojure Microservices using buddy
- Setup TDD workflow for Clojure
- Microservice Architecture With Slacker Cluster
- Testing Clojure with Selenium
- Testing Clojure web apps with kerodon
- Testing Clojurescript with Karma
- Integration tests with Midje
- Streaming responses using Ring
- Polymorfic performance
- Pixie Pi
- Clojure in Production: Logging
- Clojurescript application template
- Efficient, Concurrent and Concise Data Access in Clojure
- Pimp my REPL
- Clojure (Prismatic) Schemas are Swagger
- Practical Data Coercion With Prismatic/schema
- Clojure Design Patterns
- 20 cool Clojure functions
- Deploying a Clojure web app with Pallet
- TDD in Clojure
- Functional-navigational programming with Specter
- Quickstart Boot and ClojureScript
- Managing Maintenance With Riemann
- Using Codox Effectively
- Clojure-Fu with Juxt
- Ohce in Clojure using outside-in TDD with Midje
- Hubble Space Mission Securely Configured
- Consul & Clojure
- Faster meta-development with boot
- Isolated integration testing with postgres
- Reducible streams
- The Ultimate Guide to Clojure Concurrency
- Domain modelling with clojure.spec
- Use Matrices Efficiently
- Readable Clojure
- Comprehensible Code
- Yet another “mount” alternative
- Performance nemesis: reflection
- Introspection tools: Java decompilers
- Reitit, Data-Driven Routing with Clojure(Script)
- How We Built Whimsical
- Redis streams and Clojure
- Clojure is capable
- Quicker Clojure startup with AppCDS and AOT
- Hazelcast: Keep your cluster close, but cache closer
- Serializing and Deserializing Clojure Fns with Nippy
- Laziness in Clojure
- Beware of assertions
- Loopr: A Loop/Reduction Macro for Clojure
- Understanding transducers
- Processing documents with transducers
- Transducers from the ground up
- Transducers how-to
- Better Performance With Java Arrays In Clojure
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
- Clojurescript awesomeness
- Javascript libraries packaged up with Google Closure externs
- Kioo example
- ClojureScript tutorial
- Promises and Clojurescript
- Translations from Javascript
- Modern ClojureScript
- Visual REPL experience for ClojureScript
- A Chrome DevTools fork for ClojureScript developers
- Javascript externs generator
- The Re-frame Building Blocks Guide
- How to work with a private library in ClojureScript
- Code-Splitting ClojureScript
The fully transactional, cloud-ready, distributed database - http://www.datomic.com/
Facilities for async programming and communication in Clojure
- Examples
- Tutorials
- Using Transducers with Core.async in ClojureScript
- Core.async in the browser is sweet
- Introduction to Asynchronous Programming in Clojure
- Things I Wish I Knew About Core Async in Clojure
- Core Async Timeout Channels
- Mastering Concurrent Processes with core.async
- Using transducers with core.async in Clojurescript
Minimalistic React for ClojureScript - http://holmsand.github.io/reagent/
- Reagent deep dive part 1
- Reagent deep dive part 2
- Reagent cookbook
- Reagent Framework For Writing SPAs, in Clojurescript
- No-hashes bidirectional routing in re-frame with bidi and pushy
- Creating reagent components
- Why reagent rocks?
- TodoMVC for Reagent
- Applications built with Reagent
- Beautiful Bootstrap 3 forms for Om, Reagent and Rum
A ClojureScript interface to Facebook’s React.
- Om cookbook
- Application template for ClojureScript/Om with live reloading
- Om interop with 3rd party JS libs
- Mistakes to avoid when creating an Om component. Part 1.
- Mistakes to avoid when creating an Om component. Part 2.
- High performance web apps in Om and React
- Removing bloilerplate
Riemann aggregates events from your servers and applications with a powerful stream processing language.
Yada is a library that helps building RESTful web APIs quickly and easily - http://yada.juxt.pro
Crux is an open source document database with bitemporal graph queries - https://juxt.pro/crux
- Crux as General-Purpose Database
- Crux tutorial - Setup
- Crux tutorial - Await transactions
- Datalog Queries with Crux – Mercury Assignment
- Dataworks - Hot-swap API endpoints and stream processors
- Bitemporal History
Fast data-driven router for Clojure(Script) - https://metosin.github.io/reitit/
Fast native-speed matrix and linear algebra in Clojure - https://neanderthal.uncomplicate.org/
Books from the author:
A distributed database-system implementing an entity-attribute-value data-model that is time-aware, accumulative, and atomically consistent - https://github.com/Workiva/eva
GraphQL for the Clojure land:
- lacinia GraphQL implementation in pure Clojure
- graphqlize GraphQL API instantly from Postgres and MySQL databases
- Learn Datalog Today (actually nothing about clojure)
- Datalog for trees in Clojure (practical use of datalog to match and extract information)
- Datascript - Immutable database and Datalog query engine for Clojure, ClojureScript and JS
- Datalog Rules - Utilities for managing Datalog rulesets from Clojure
- Datahike - A durable datalog implementation
- Domain modeling with datalog (why datalog is so cool!)
Here is the list of my own (some of them forked…) projects that you might be interested in:
- Clojure implementation of RFC 6749 OAuth 2.0 authorization framework
- Role Based Access Control
- Revolt - your trampoline to Clojure dev toolbox
- Sample use of Revolt library
- Flyway based migrations task for Revolt
- JAR deployer / installer for Revolt
- QR generation with iCal scheme
- Image processing based on pooled GraphicsMagick sessions
- Fetching site-embedded data
- Reporting JMX metrics directly to riemann aggregator
- Logback riemann appender
- A clojure client for SOLR with nice criteria DSL
- Category tree made easy
- Fancy scoring of input data
- Ragtime migrations with Clojure Boot build tool
- Boot task to generate build information
Utilities making development even more pleasant.
- General Purpose Utilities Library
- Language extensions for clojurescript
- Give your clojure workflow more flow
Emacs bits and pieces. Definitely worth checking out if you’re addicted to this editor.
- Cider IDE that rocks!
- Hard CIDER: Project-specific Configuration
- Collection of Clojure refactoring functions
- Help on clojuredocs.org
Because we love them :)
Must-have YouTube subscriptions:
- ClojureTV (https://www.youtube.com/user/ClojureTV)
- Metosin (https://www.youtube.com/channel/UC1lFJanm5Wp6IpNk-2C1Sxw)
- :clojureD (https://www.youtube.com/channel/UCOTrRnxBOllb9UHLuap_lPg)
- StrangeLoop (https://www.youtube.com/channel/UC_QIfHvN9auy2CoOdSfMWDw)
- PolyConf (https://www.youtube.com/user/polyconf)
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)
- @borkdude (https://twitter.com/borkdude)