594 lines
26 KiB
Markdown
594 lines
26 KiB
Markdown
# Awesome Clojure [](https://github.com/sindresorhus/awesome)
|
|
|
|
- [Awesome products in Clojure](#awesome-products-in-clojure)
|
|
- [OneKeePass](https://github.com/OneKeePass/desktop): A secure password manager and [mobile app in ClojureScript](https://github.com/OneKeePass/mobile)
|
|
- [Penpot](https://penpot.app/): design and prototyping platform
|
|
- [LightTable (IDE)](http://lighttable.com/) (archived)
|
|
- [Maria.cloud (Online IDE for beginners)](https://www.maria.cloud/)
|
|
- [Riemann (Monitoring)](http://riemann.io/)
|
|
- [Precursor (Online prototyping tool)](https://precursorapp.com/)
|
|
- [Puppet Server](https://github.com/puppetlabs/puppet-server)
|
|
- [PuppetDB](https://github.com/puppetlabs/puppetdb)
|
|
- [Metabase](https://github.com/metabase/metabase)
|
|
- [Metabase Datomic](https://github.com/lambdaisland/metabase-datomic)
|
|
- [CircleCI](https://circleci.com/)
|
|
- [Avi (vim rewrite)](https://github.com/maitria/avi)
|
|
- [Liquid (Text Editor)](https://github.com/mogenslund/liquid)
|
|
- [Clojupyter](https://github.com/clojupyter/clojupyter)
|
|
- [meins](https://github.com/matthiasn/meins)
|
|
- [Jepsen](https://github.com/jepsen-io/jepsen)
|
|
- [Braid](https://github.com/braidchat/braid): a team-chat app with a novel UI that leads to better conversations
|
|
- [Accelerated Text](https://github.com/tokenmill/accelerated-text): a natural language generation environment (backend: Clojure, frontend: JS)
|
|
- [Ziggurat](https://github.com/gojek/ziggurat): a framework built to simplify Stream processing on Kafka
|
|
- [Nightcode](https://github.com/oakes/Nightcode): An IDE for Clojure (archived)
|
|
- [Nightlight](https://github.com/oakes/Nightlight): text editor (archived)
|
|
- [Atea](https://github.com/pkamenarsky/atea): a minimalistic menu bar time tracker for MacOS (legacy, requires jvm 1.6)
|
|
- [herfi](https://github.com/ertugrulcetin/herfi) - 3D multiplayer game prototype written in Clojure and ClojureScript
|
|
- [racing-game-cljs](https://github.com/ertugrulcetin/racing-game-cljs) - A 3D racing game built with ClojureScript, React and ThreeJS
|
|
- [Awesome SaaS (partially OSS) in Clojure](#awesome-saas-in-clojure)
|
|
- [Logseq](https://github.com/logseq/logseq): knowledge management and collaboration (open frontend)
|
|
- [Languages written with Clojure](#languages-written-with-clojure)
|
|
- [jank](https://github.com/jeaye/jank)
|
|
- [lux](https://github.com/LuxLang/lux)
|
|
- [mal](https://github.com/kanaka/mal/tree/master/impls/clojure)
|
|
- [scheje](https://github.com/turbopape/scheje)
|
|
- [eden](https://github.com/benzap/eden)
|
|
- [ferret](https://ferret-lang.org)
|
|
- [Awesome tools in Clojure](#awesome-tools-in-clojure)
|
|
- [Awesome macros usage](#awesome-macros-usage)
|
|
- [Advanced datastructures](#advanced-datastructures)
|
|
- [Web Framework](#web-framework)
|
|
- [Dependency injection](#dependency-injection)
|
|
- [Build Automation and Package management](#build-automation-and-package-management)
|
|
- [Version Control Management](#version-control-management)
|
|
- [Date and Time](#date-and-time)
|
|
- [GUI](#gui)
|
|
- [Audio](#audio)
|
|
- [HTTP](#http)
|
|
- [Database](#database)
|
|
- [Connection pools](#connection-pools)
|
|
- [Structural Migrations](#structural-migrations)
|
|
- [Redis](#redis)
|
|
- [JSON](#json)
|
|
- [Protocol Buffers and gRPC](#protocol-buffers-and-grpc)
|
|
- [ORM and SQL generation](#orm-and-sql-generation)
|
|
- [Security](#security)
|
|
- [RESTful API](#restful-api)
|
|
- [GraphQL API](#graphql-api)
|
|
- [Emails](#emails)
|
|
- [HTML Manipulation](#html-manipulation)
|
|
- [Data Validation](#data-validation)
|
|
- [Type System](#type-system)
|
|
- [Pattern Matching](#pattern-matching)
|
|
- [Async processing](#async-processing)
|
|
- [Monads](#monads)
|
|
- [WebSocket](#websocket)
|
|
- [Testing](#testing)
|
|
- [Webdriver automation](#webdriver-automation)
|
|
- [Code Analysis and Linter](#code-analysis-and-linter)
|
|
- [Science and Data Analysis](#science-and-data-analysis)
|
|
- [Machine Learning](#machine-learning)
|
|
- [Computer Vision](#computer-vision)
|
|
- [Text Processing](#text-processing)
|
|
- [Parsing](#parsing)
|
|
- [Editor Plugins](#editor-plugins)
|
|
- [Documentation](#documentation)
|
|
- [Literate Programming](#literate-programming)
|
|
- [Archives and Compression](#archives-and-compression)
|
|
- [Miscellaneous](#miscellaneous)
|
|
- [Debugging tools](#debugging)
|
|
- [CI](#ci)
|
|
- [Project Management](#project-management)
|
|
- [Terminal UI](#terminal-ui)
|
|
- [Graphviz](#graphviz)
|
|
|
|
- [Resources](#resources)
|
|
- [Guides](#guides)
|
|
- [Video tutorials](#video-tutorials)
|
|
- [Websites](#websites)
|
|
- [Twitter](#twitter)
|
|
- [Exercises](#exercises)
|
|
|
|
## Awesome macros usage
|
|
|
|
*Answers why the lisp shines, killer features in action*
|
|
|
|
* [core.async](https://github.com/clojure/core.async) - transforms AST into CSP programs
|
|
* [cloroutine](https://github.com/leonoel/cloroutine) - suspends and continuations (coroutines)
|
|
* [missionary](https://github.com/leonoel/missionary) - a reactive dataflow programming toolkit
|
|
* [photon](https://github.com/venantius/photon) - realtime web, like Meteor, but for Clojure(Script)
|
|
* [metaclj](https://github.com/brandonbloom/metaclj) - staged compilation
|
|
* [meander](https://github.com/noprompt/meander) - transparent data transformation using datastructure pattermatching
|
|
* [proteus](https://github.com/ztellman/proteus) - introduce mutable variables (don't use, just learn how to map your mind into immutable world)
|
|
## Advanced datastructures
|
|
|
|
* [specter](https://github.com/redplanetlabs/specter): an elegant API for querying and transforming nested and recursive data
|
|
* [meander](https://github.com/noprompt/meander): transparent data transformation (defined as pattern-matching)
|
|
* [Persistent AVL trees](https://github.com/clojure/data.avl): persistent sorted maps and sets with log-time rank queries
|
|
* [Finger Tree](https://github.com/clojure/data.finger-tree): double-list, counted-double-list, counted-sorted-set
|
|
* [Hitchhiker Tree](https://github.com/datacrypt-project/hitchhiker-tree): create fast, snapshottable, massively scalable databases
|
|
* [Hierarchical set](https://github.com/llasram/hier-set)
|
|
* [Ordered](https://github.com/amalloy/ordered): ordered sets and maps
|
|
* [Lazy Map](https://github.com/Malabarba/lazy-map-clojure): whose values are only calculated when accessed
|
|
* [Duratom](https://github.com/jimpil/duratom): persisted atoms
|
|
* [Durable Queue](https://github.com/Factual/durable-queue): queue persisted on disk
|
|
* [bifurcan](https://github.com/lacuna/bifurcan): linear map/set/list (stores entries contiguously in memory), ;writtern in java, but test suite (read: usage examples) [in clojure](https://github.com/lacuna/bifurcan/blob/master/test/bifurcan)
|
|
|
|
## Web Framework
|
|
|
|
*Actually don't search rails/django here, but compose them by yourself*
|
|
* [Compojure](https://github.com/weavejester/compojure)
|
|
* [Compojure-api](https://github.com/metosin/compojure-api)
|
|
* [Luminus](http://www.luminusweb.net/)
|
|
* [Duct](https://github.com/weavejester/duct)
|
|
* [Pedestal](https://github.com/pedestal/pedestal)
|
|
* [Datsys](https://github.com/metasoarous/datsys)
|
|
* [yada](https://github.com/juxt/yada)
|
|
* [Hoplon](http://hoplon.io/)
|
|
* [Fulcro](https://github.com/fulcrologic/fulcro)
|
|
* [Coast](http://coastonclojure.com/)
|
|
* [Reitit](https://github.com/metosin/reitit)
|
|
* [Tadam](https://www.tadam-framework.dev/)
|
|
* [Column](https://gitlab.com/demonshreder/column)
|
|
* [Biff](https://biffweb.com/)
|
|
|
|
## Dependency injection
|
|
|
|
*Managed lifecycle of stateful objects*
|
|
|
|
* [Component](https://github.com/stuartsierra/component)
|
|
* [System](https://github.com/danielsz/system)
|
|
* [mount](https://github.com/tolitius/mount)
|
|
* [Integrant](https://github.com/weavejester/integrant)
|
|
* [clip](https://github.com/juxt/clip)
|
|
* [piotr-yuxuan/closeable-map](https://github.com/piotr-yuxuan/closeable-map)
|
|
* [darkleaf/di](https://github.com/darkleaf/di)
|
|
|
|
## Build Automation and Package management
|
|
|
|
*Libraries for project build automation and package/dependency management.*
|
|
|
|
* [Leiningen](https://github.com/technomancy/leiningen)
|
|
* [Boot](https://github.com/boot-clj/boot)
|
|
* [tools.build](https://www.clojure.org/guides/tools_build)
|
|
* [build.simple](https://github.com/gnl/build.simple)
|
|
* [clojurephant](https://github.com/clojurephant/clojurephant) (Gradle plugin)
|
|
* [shadow-cljs](https://github.com/thheller/shadow-cljs) (Clojurescript)
|
|
|
|
## Version Control Management
|
|
|
|
*Code utilities for interacting with VCS software*
|
|
|
|
* [clj-jgit](https://github.com/clj-jgit/clj-jgit)
|
|
|
|
## Date and Time
|
|
|
|
*Libraries for working with dates and times.*
|
|
|
|
* [clj-time](https://github.com/clj-time/clj-time)
|
|
* [clojure.java-time](https://github.com/dm3/clojure.java-time) - Java 8 Date-Time API
|
|
* [holi](https://github.com/luciolucio/holi) - Calendar operations that are aware of weekends and holidays
|
|
* [timewords](https://github.com/tokenmill/timewords)
|
|
* [tick](https://github.com/juxt/tick): Clojure(Script) library, intended as replacement for clj-time
|
|
|
|
## GUI
|
|
|
|
* [seesaw](https://github.com/daveray/seesaw)
|
|
* [trikl](https://github.com/lambdaisland/trikl)
|
|
* [fx-clj](https://github.com/aaronc/fx-clj)
|
|
|
|
## Audio
|
|
|
|
* [Overtone](http://overtone.github.io/)
|
|
* [Alda](https://github.com/alda-lang/alda)
|
|
|
|
## HTTP
|
|
|
|
*Libraries for working with HTTP.*
|
|
|
|
* [clj-http](https://github.com/dakrone/clj-http) : Apache HttpComponents client wrapper
|
|
* [http-kit](https://github.com/http-kit/http-kit) : Simple, high-performance event-driven HTTP client and server
|
|
* [ring](https://github.com/ring-clojure/ring) : HTTP server abstraction
|
|
* [kvlt](https://github.com/nervous-systems/kvlt) : Uniform, asychronous client interface for HTTP across JVM / Node / browsers
|
|
* [aleph](https://github.com/clj-commons/aleph) : Async client/server based on Netty, with defaults for HTTP, TCP and UDP
|
|
* [hato](https://github.com/gnarroway/hato) : An HTTP client for Clojure, wrapping JDK 11's HttpClient
|
|
|
|
## Database
|
|
|
|
*Databases and database client libraries*
|
|
|
|
* [Datomic](http://www.datomic.com/)
|
|
* [xtdb](https://github.com/xtdb/xtdb): bitemporal database for SQL, Datalog & graph queries
|
|
* [Datahike](https://github.com/replikativ/datahike)
|
|
* [Datascript](https://github.com/tonsky/datascript)
|
|
* [Datalevin](https://github.com/juji-io/datalevin)
|
|
* [next.jdbc](https://github.com/seancorfield/next-jdbc)
|
|
* [clojure.java.jdbc](https://github.com/clojure/java.jdbc)
|
|
* [clojure.jdbc](https://github.com/funcool/clojure.jdbc)
|
|
* [cravendb](https://github.com/robashton/cravendb)
|
|
* [Monger](http://clojuremongodb.info/): for MongoDB
|
|
* [Monglorious](https://baumandm.github.io/monglorious/): for MongoDB
|
|
* [clj-rethinkdb](https://github.com/apa512/clj-rethinkdb): for RethinkDB
|
|
* [Revise](https://github.com/bitemyapp/revise): for RethinkDB
|
|
* [Spandex](https://github.com/mpenet/spandex): for ElasticSearch
|
|
* [Elastisch](http://clojureelasticsearch.info/): for ElasticSearch
|
|
* [neocons](http://clojureneo4j.info/): for Neo4j
|
|
* [Alia](https://github.com/mpenet/alia): for Cassandra
|
|
* [aerospike-clj](https://github.com/AppsFlyer/aerospike-clj): for Aerospike
|
|
|
|
## Connection pools
|
|
|
|
*Database connection pools*
|
|
|
|
* [hikari-cp](https://github.com/tomekw/hikari-cp)
|
|
* [metabase/connection-pool](https://github.com/metabase/connection-pool)
|
|
|
|
## Structural Migrations
|
|
|
|
*Keeps database and others in sync*
|
|
|
|
* [Lobos](https://github.com/budu/lobos)
|
|
* [Ragtime](https://github.com/weavejester/ragtime)
|
|
* [Joplin](https://github.com/juxt/joplin)
|
|
* [Migratus](https://github.com/yogthos/migratus)
|
|
* [Drift](https://github.com/macourtney/drift)
|
|
|
|
## Redis
|
|
|
|
* [carmine](https://github.com/ptaoussanis/carmine)
|
|
* [celtuce](https://github.com/lerouxrgd/celtuce)
|
|
|
|
## JSON
|
|
|
|
* [cheshire](https://github.com/dakrone/cheshire)
|
|
* [jsonista](https://github.com/metosin/jsonista)
|
|
|
|
## Protocol Buffers and gRPC
|
|
|
|
* [pronto](https://github.com/AppsFlyer/pronto)
|
|
* [lein-protodeps](https://github.com/AppsFlyer/lein-protodeps)
|
|
|
|
## Database Cli
|
|
|
|
## ORM and SQL generation
|
|
|
|
*DSL for SQL generation.*
|
|
* [Walkable](https://github.com/walkable-server/walkable)
|
|
* [Korma](https://github.com/korma/Korma)
|
|
* [Specql](https://github.com/tatut/specql/)
|
|
* [stch-library/sql](https://github.com/stch-library/sql)
|
|
* [sqlingvo](https://github.com/r0man/sqlingvo)
|
|
* [sqlium](https://github.com/TheLadders/sqlium/)
|
|
* [honeysql](https://github.com/jkk/honeysql)
|
|
* [Toucan](https://github.com/metabase/toucan)
|
|
|
|
## Security
|
|
|
|
*Authentication, authorization and other security related libraries.*
|
|
|
|
* [Buddy](https://github.com/funcool/buddy)
|
|
* [caesium](https://github.com/lvh/caesium) (libsodium bindings)
|
|
* [Friend](https://github.com/cemerick/friend)
|
|
* [secrets.clj](https://github.com/lk-geimfari/secrets.clj)
|
|
* [bolt](https://github.com/juxt/bolt)
|
|
|
|
## RESTful API
|
|
|
|
*Libraries for developing RESTful APIs.*
|
|
|
|
* [Liberator](http://clojure-liberator.github.io/liberator/)
|
|
* [Compojure-api](https://github.com/metosin/compojure-api)
|
|
* [Friboo](https://github.com/zalando/friboo)
|
|
* [yada](https://github.com/juxt/yada)
|
|
* [router](https://github.com/darkleaf/router)
|
|
* [reitit](https://github.com/metosin/reitit)
|
|
|
|
## GraphQL API
|
|
|
|
*Libraries for developing GraphQL APIs.*
|
|
|
|
* [Lacinia](https://lacinia.readthedocs.io/en/latest/)
|
|
|
|
## Emails
|
|
|
|
* [postal](https://github.com/drewr/postal)
|
|
|
|
## HTML Manipulation
|
|
|
|
*Libraries for working with HTML.*
|
|
|
|
* [Enlive](https://github.com/cgrand/enlive/wiki)
|
|
* [hiccup](https://github.com/weavejester/hiccup)
|
|
* [clostache](https://github.com/fhd/clostache)
|
|
* [selmer](https://github.com/yogthos/Selmer)
|
|
|
|
## Data Validation
|
|
|
|
*Libraries for validating data.*
|
|
|
|
* [Guardrails](https://github.com/fulcrologic/guardrails)
|
|
* [Malli](https://github.com/metosin/malli)
|
|
* [Validateur](http://clojurevalidations.info/)
|
|
* [Prismatic's schema](https://github.com/plumatic/schema)
|
|
* [Bouncer](https://github.com/leonardoborges/bouncer)
|
|
* [clova](https://github.com/markwoodhall/clova)
|
|
* [Orchestra](https://github.com/jeaye/orchestra)
|
|
* [struct](https://github.com/funcool/struct)
|
|
* [domaintypes](https://github.com/friemen/domaintypes)
|
|
|
|
## Type System
|
|
*Optional type system for Clojure*
|
|
|
|
* [core.typed](https://github.com/clojure/core.typed)
|
|
|
|
## Pattern Matching
|
|
|
|
* [core.match](https://github.com/clojure/core.match)
|
|
* [defun](https://github.com/killme2008/defun)
|
|
* [cats.match](https://github.com/zalando/cats.match)
|
|
* [Akar](https://github.com/missingfaktor/akar)
|
|
* [Meander](https://github.com/noprompt/meander)
|
|
* [Verbal-Exprejon](https://github.com/WeshGuillaume/Verbal-Exprejon)
|
|
|
|
## Async processing
|
|
|
|
* [core.async](https://github.com/clojure/core.async/)
|
|
* [pulsar](https://github.com/puniverse/pulsar)
|
|
* [manifold](https://github.com/ztellman/manifold)
|
|
* [goose](https://github.com/nilenso/goose)
|
|
|
|
## Monads
|
|
|
|
* [cats](https://github.com/funcool/cats)
|
|
* [algo.monads](https://github.com/clojure/algo.monads)
|
|
* [Fluokitten](https://github.com/uncomplicate/fluokitten)
|
|
|
|
## WebSocket
|
|
|
|
* [Chord](https://github.com/jarohen/chord)
|
|
* [Sente](https://github.com/ptaoussanis/sente)
|
|
* [aleph](https://github.com/ztellman/aleph)
|
|
|
|
## Testing
|
|
|
|
* [Expectations](https://github.com/clojure-expectations/expectations)
|
|
* [Midje](https://github.com/marick/Midje)
|
|
* [test-doubles](https://github.com/GreenPowerMonitor/test-doubles)
|
|
* [kaocha](https://github.com/lambdaisland/kaocha)
|
|
* [StateFlow](https://github.com/nubank/state-flow)
|
|
* [Datest](https://github.com/amokfa/datest)
|
|
|
|
## Webdriver automation
|
|
|
|
* [Etaoin](https://github.com/igrishaev/etaoin)
|
|
|
|
## Code Analysis and Linter
|
|
|
|
* [Slamhound](https://github.com/technomancy/slamhound)
|
|
* [eastwood](https://github.com/jonase/eastwood)
|
|
* [kibit](https://github.com/jonase/kibit)
|
|
* [yagni](https://github.com/venantius/yagni)
|
|
* [lein-bikeshed](https://github.com/dakrone/lein-bikeshed)
|
|
* [spectrum](https://github.com/arohner/spectrum)
|
|
* [cloverage](https://github.com/cloverage/cloverage)
|
|
* [clj-kondo](https://github.com/borkdude/clj-kondo)
|
|
* [splint](https://github.com/NoahTheDuke/splint)
|
|
|
|
## Science and Data Analysis
|
|
|
|
*Libraries, extended REPLs, and other tools for scientific and statistical data
|
|
anylysis and visualization.*
|
|
|
|
* [Incanter](https://github.com/incanter/incanter)
|
|
* [Cascalog](http://cascalog.org/)
|
|
* [Onyx](https://github.com/onyx-platform/onyx)
|
|
* [sparklling](https://github.com/gorillalabs/sparkling)
|
|
* [flambo](https://github.com/yieldbot/flambo)
|
|
* [Neanderthal](https://github.com/uncomplicate/neanderthal)
|
|
* [Streaming Histograms](https://github.com/bigmlcom/histogram)
|
|
* [Gorilla REPL](http://gorilla-repl.org/)
|
|
* [Bayadera - Bayesian Data Analysis on the GPU](https://github.com/uncomplicate/bayadera)
|
|
* [ClojureCUDA](https://github.com/uncomplicate/clojurecuda)
|
|
* [Neanderthal - fast matrix and linear algebra](https://github.com/uncomplicate/neanderthal)
|
|
* [ClojureCL - parallel computations with OpenCL](https://github.com/uncomplicate/clojurecl)
|
|
* [Loom - graph library for Clojure](https://github.com/aysylu/loom)
|
|
|
|
## Machine Learning
|
|
|
|
* [neanderthal](https://github.com/uncomplicate/neanderthal): fast matrix library
|
|
* [clojurecuda](https://github.com/uncomplicate/clojurecuda)
|
|
* [clojurecl](https://github.com/uncomplicate/clojurecl)
|
|
* [bayadera](https://github.com/uncomplicate/bayadera): bayesian data analysis on the GPU
|
|
* [cortex](https://github.com/originrose/cortex)
|
|
* [Flare](https://github.com/aria42/flare)
|
|
* [MXNet - Clojure API](https://mxnet.apache.org/versions/1.7.0/api/clojure)
|
|
* [clj-bigml](https://github.com/bigmlcom/clj-bigml)
|
|
* [Deeplearning4j](https://github.com/deeplearning4j/deeplearning4j)
|
|
* [Enclog](https://github.com/jimpil/enclog)
|
|
* [lambda-ml](https://github.com/cloudkj/lambda-ml)
|
|
* [clojure-tensorflow](https://github.com/kieranbrowne/clojure-tensorflow)
|
|
* [dl4clj (deeplearning4j to clojure)](https://github.com/yetanalytics/dl4clj)
|
|
* [Anglican](https://probprog.github.io/anglican/)
|
|
* [clj-ml](https://github.com/antoniogarrote/clj-ml)
|
|
* [Clatern](https://github.com/rinuboney/clatern)
|
|
* [k9](https://github.com/gigasquid/k9)
|
|
* [Statistiker](https://github.com/clojurewerkz/statistiker)
|
|
* [Synaptic](https://github.com/japonophile/synaptic)
|
|
* [Infer](https://github.com/aria42/infer)
|
|
* [clj-synapses](https://github.com/mrdimosthenis/clj-synapses)
|
|
* [scicloj.ml](https://github.com/scicloj/scicloj.ml)
|
|
|
|
## Computer Vision
|
|
|
|
* [origami](https://github.com/hellonico/origami): OpenCV 4 wrapper
|
|
* [clj-tesseract](https://github.com/antoniogarrote/clj-tesseract)
|
|
* [vision](http://nakkaya.com/vision.html)
|
|
|
|
## Text Processing
|
|
|
|
* [clojure-opennlp](https://github.com/dakrone/clojure-opennlp)
|
|
* [postagga](https://github.com/turbopape/postagga)
|
|
* [beagle](https://github.com/tokenmill/beagle)
|
|
* [lmgrep](https://github.com/dainiusjocas/lucene-grep)
|
|
|
|
## Parsing
|
|
|
|
* [Instaparse](https://github.com/Engelberg/instaparse)
|
|
* [kern](https://github.com/blancas/kern)
|
|
* [duckling](https://github.com/wit-ai/duckling)
|
|
* [buran](https://github.com/alekseysotnikov/buran) - RSS/Atom feed consumer and producer
|
|
|
|
## Exceptions and Error Handling
|
|
* [Ex](https://github.com/mpenet/ex)
|
|
* [Perseverance](https://github.com/grammarly/perseverance)
|
|
* [Dire](https://github.com/MichaelDrogalis/dire)
|
|
|
|
## Rule-based Programming
|
|
* [O'Doyle Rules](https://github.com/oakes/odoyle-rules)
|
|
* [Clara Rules](https://github.com/cerner/clara-rules)
|
|
* [Arete](https://github.com/yipeeio/arete)
|
|
|
|
## Editor Plugins
|
|
|
|
* [Calva (VSCode)](https://github.com/BetterThanTomorrow/calva)
|
|
* [clojure-lsp (multiple editors)](https://github.com/clojure-lsp/clojure-lsp)
|
|
* [CIDER (Emacs)](https://github.com/clojure-emacs/cider)
|
|
* [smartparens (Emacs)](https://github.com/Fuco1/smartparens)
|
|
* [rainbow-delimiters (Emacs)](https://github.com/Fanael/rainbow-delimiters)
|
|
* [aggressive-indent (Emacs)](https://github.com/Malabarba/aggressive-indent-mode)
|
|
* [Conjure (Neovim)](https://github.com/Olical/conjure)
|
|
* [vim-cljfmt (Vim)](https://github.com/venantius/vim-cljfmt)
|
|
* [vim-eastwood (Vim)](https://github.com/venantius/vim-eastwood)
|
|
* [vim-fireplace (Vim)](https://github.com/tpope/vim-fireplace)
|
|
* [vim-redl (Vim)](https://github.com/dgrnbrg/vim-redl)
|
|
* [vim-leiningen (Vim)](https://github.com/tpope/vim-salve)
|
|
* [rainbow_parentheses.vim (Vim)](https://github.com/junegunn/rainbow_parentheses.vim)
|
|
* [vim-iced (Vim)](https://github.com/liquidz/vim-iced)
|
|
* [Cursive (IntelliJ)](https://cursive-ide.com/)
|
|
* [proto-repl (Atom)](https://atom.io/packages/proto-repl)
|
|
* [Parinfer (multiple editors)](http://shaunlebron.github.io/parinfer/)
|
|
* [Bracket Pair Colorizer (VSCode)](https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer)
|
|
* [clojureVSCode (VSCode)](https://github.com/avli/clojureVSCode)
|
|
* [Notepad++](https://github.com/linpengcheng/ClojureBoxNpp): modified config files of Lisp
|
|
|
|
## Documentation
|
|
|
|
*Utilities and libraries for (non-LP) code and project documentation*
|
|
|
|
* [codox](https://github.com/weavejester/codox)
|
|
|
|
## Literate Programming
|
|
|
|
* [marginalia](https://github.com/gdeer81/marginalia)
|
|
* [klipse](https://github.com/viebel/klipse)
|
|
|
|
## Archives and Compression
|
|
|
|
* [swindon (java.util.zip wrapper)](https://github.com/AeroNotix/swindon)
|
|
|
|
## Miscellaneous
|
|
|
|
* [potemkin](https://github.com/ztellman/potemkin) - reexport vars in another ns / act like a clojure map
|
|
* [clj-tuple](https://github.com/ztellman/clj-tuple)
|
|
* [slingshot](https://github.com/scgilardi/slingshot)
|
|
* [virgil](https://github.com/ztellman/virgil)
|
|
* [javastar](https://github.com/tailrecursion/javastar)
|
|
* [riddley](https://github.com/ztellman/riddley)
|
|
* [kezban](https://github.com/ertugrulcetin/kezban)
|
|
* [clj-grpc](https://github.com/otwieracz/clj-grpc)
|
|
|
|
## Debugging
|
|
|
|
* [flow-storm-debugger](https://github.com/flow-storm/flow-storm-debugger)
|
|
* [playback](https://github.com/gnl/playback)
|
|
* [tools.trace](https://github.com/clojure/tools.trace)
|
|
* [debugger](https://github.com/razum2um/clj-debugger)
|
|
* [debug-repl](https://github.com/GeorgeJahad/debug-repl)
|
|
* [ritz](https://github.com/pallet/ritz)
|
|
* [redl](https://github.com/dgrnbrg/redl)
|
|
* [limit-break](https://github.com/technomancy/limit-break)
|
|
* [spyscope](https://github.com/dgrnbrg/spyscope)
|
|
* [aprint](https://github.com/razum2um/aprint)
|
|
* [packed-printer](https://github.com/cgrand/packed-printer)
|
|
* [pretty](https://github.com/AvisoNovate/pretty)
|
|
* [prone](https://github.com/magnars/prone)
|
|
* [figwheel](https://github.com/bhauman/lein-figwheel)
|
|
* [ultra](https://github.com/venantius/ultra)
|
|
* [mate-clj](https://github.com/AppsFlyer/mate-clj)
|
|
* [scope-capture](https://github.com/vvvvalvalval/scope-capture)
|
|
|
|
## CI
|
|
|
|
* [lambdacd](https://github.com/flosell/lambdacd)
|
|
|
|
## Project Management
|
|
|
|
* [milestones](https://github.com/turbopape/milestones)
|
|
|
|
## Terminal UI
|
|
|
|
* [clojure-lanterna](https://github.com/MultiMUD/clojure-lanterna)
|
|
* [triki](https://github.com/lambdaisland/trikl)
|
|
* [zaffre](https://github.com/aaron-santos/zaffre)
|
|
* [closh](https://github.com/dundalek/closh)
|
|
* [piotr-yuxuan/malli-cli](https://github.com/piotr-yuxuan/malli-cli)
|
|
|
|
## Graphviz
|
|
|
|
* [zipper-viz](https://github.com/lambdaisland/zipper-viz)
|
|
* [dorothy](https://github.com/daveray/dorothy)
|
|
* [viz.cljc](https://github.com/jebberjeb/viz.cljc)
|
|
* [fsmviz](https://github.com/jebberjeb/fsmviz)
|
|
* [rhizome](https://github.com/ztellman/rhizome)
|
|
* [re-frame-flow](https://github.com/ertugrulcetin/re-frame-flow) - Graph based visualization tool for re-frame event chains (ClojureScript)
|
|
|
|
## Game Development
|
|
* [jme-clj](https://github.com/ertugrulcetin/jme-clj) - A Clojure 3D Game Engine (Wrapper), Powered by jMonkeyEngine
|
|
* [play-cljc](https://github.com/oakes/play-cljc) - A Clojure and ClojureScript game library
|
|
|
|
## Guides
|
|
|
|
* [The Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)
|
|
* [Clojure Distilled](http://yogthos.github.io/ClojureDistilled.html)
|
|
* [clojure-cookbook](https://github.com/clojure-cookbook/clojure-cookbook)
|
|
* [A Brief Beginner's Guide To Clojure](http://www.unexpected-vortices.com/clojure/brief-beginners-guide/index.html)
|
|
* [Clojure for the Brave and True](http://www.braveclojure.com/)
|
|
* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)
|
|
* [Error message catalog](https://github.com/yogthos/clojure-error-message-catalog)
|
|
* [Clojure by Example](https://kimh.github.io/clojure-by-example/)
|
|
|
|
## Video tutorials
|
|
|
|
### YouTube
|
|
|
|
* [Misophistful's channel](https://www.youtube.com/user/Misophistful/videos): Understand concepts such as list comprehension, threading macros, generative testing, destructuring, core.match and introductions to Light Table, Datomic and Game development with Clojure
|
|
* [Fred Overflow's channel](https://www.youtube.com/channel/UC9m7D4XKPJqTPCLSBym3BCg/search?query=Clojure): Introductions to Functional programming and TDD with Clojure
|
|
* [Clojure Pills screencast](https://www.youtube.com/channel/UCH0CkLvbv6yEyrUnw9qujpQ/videos): Introduction to Clojure one function at a time
|
|
* [Clojure Pills screencast](https://www.youtube.com/c/onthecodeagain/videos): Fun and beginner friendly content related to the overall clojure ecosystem
|
|
* [Data persistance with Postgres, Clojure and JDBC](https://www.youtube.com/channel/UCrwwOZ4h2FQhAdTMfjyQfQA/playlists)
|
|
* [Clojure Tutorials by Timothy Baldridge](https://www.youtube.com/channel/UC6yONKYeoE2P3bsahDtsimg/videos): More advanced videos on core.async, transducers, transients, logic programming and a "Function of the day" series.
|
|
|
|
## Websites
|
|
|
|
* [Clojure](http://clojure.org/)
|
|
* [Clojure Slack](http://clojurians.net/)
|
|
* [clojuredocs](http://clojuredocs.org)
|
|
* [clojure-doc](http://clojure-doc.org/)
|
|
* [The Clojure Toolbox](http://www.clojure-toolbox.com/)
|
|
* [ZEEF/Clojure](https://clojure.zeef.com/vlad.bokov)
|
|
|
|
## Twitter
|
|
|
|
* [oss_clj](https://twitter.com/oss_clj)
|
|
|
|
## Exercises
|
|
|
|
* [rich4clojure](https://github.com/PEZ/rich4clojure)
|
|
* [Wonderland Clojure Katas](https://github.com/gigasquid/wonderland-clojure-katas)
|
|
* [Clojure Koans](http://clojurekoans.com)
|
|
* [exercism.io](http://exercism.io/languages/clojure)
|
|
* [Codewars](https://www.codewars.com/kata/search/clojure)
|
|
|
|
[clojure.md Github](https://github.com/razum2um/awesome-clojure
|
|
)
|