emacs.d/clones/clojure-doc.org/articles/ecosystem/libraries_directory/index.html
2022-08-24 19:36:32 +02:00

239 lines
38 KiB
HTML

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta charset="utf-8"/>
<title>Clojure Guides: A Directory of Clojure Libraries</title>
<meta name="description" content="This is a categorized and annotated directory of available Clojure
libraries and tools. This directory is not comprehensive and is necessarily highly opinionated.This directory is manually curated by the Clojure community. Please endeavor to keep it up-to-date,
consisting of high quality libraries with adequate documentation. There are many more libraries in the Clojure
ecosystem, but some lack documentation and/or are useful primarily to experienced developers and such projects
are not included in this document.">
<meta property="og:description" content="This is a categorized and annotated directory of available Clojure
libraries and tools. This directory is not comprehensive and is necessarily highly opinionated.This directory is manually curated by the Clojure community. Please endeavor to keep it up-to-date,
consisting of high quality libraries with adequate documentation. There are many more libraries in the Clojure
ecosystem, but some lack documentation and/or are useful primarily to experienced developers and such projects
are not included in this document.">
<meta property="og:url" content="https://clojure-doc.github.io/articles/ecosystem/libraries_directory/" />
<meta property="og:title" content="A Directory of Clojure Libraries" />
<meta property="og:type" content="article" />
<link rel="canonical" href="https://clojure-doc.github.io/articles/ecosystem/libraries_directory/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Alegreya:400italic,700italic,400,700" rel="stylesheet"
type="text/css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/styles/default.min.css">
<link href="../../../css/screen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<nav class="navbar navbar-default">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../../../index.html">Clojure Guides</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li ><a href="../../../index.html">Home</a></li>
<li><a href="https://github.com/clojure-doc/clojure-doc.github.io">Contribute</a></li>
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container-fluid -->
</nav>
<div class="container">
<div class="row">
<div class="col-lg-9">
<div id="content">
<div id="custom-page">
<div id="page-header">
<h2>A Directory of Clojure Libraries</h2>
</div>
<p>This is a categorized and annotated directory of available Clojure
libraries and tools. This directory is <strong>not comprehensive and is necessarily highly opinionated</strong>.</p><p>This directory is manually curated by the Clojure community. Please endeavor to keep it up-to-date,
consisting of <strong>high quality</strong> libraries with adequate documentation. There are many more libraries in the Clojure
ecosystem, but some lack documentation and/or are useful primarily to experienced developers and such projects
are not included in this document.</p><p>For more comprehensive overview of the Clojure library ecosystem, please see <a href="http://clojuresphere.com/">ClojureSphere</a>.</p><h2 id="support-libraries">Support Libraries</h2><h3 id="general">General</h3><ul><li><p><a href="https://github.com/clj-commons/useful">useful</a> (<a href="https://clojars.org/org.flatland/useful">at clojars</a>)</p></li><li><p><a href="https://github.com/clojurewerkz/support">ClojureWerkz Support</a> (<a href="https://clojars.org/clojurewerkz/support">at clojars</a>)</p></li><li><p><a href="https://github.com/weavejester/medley">medley</a> (<a href="https://clojars.org/medley">at clojars</a>)</p></li></ul><h2 id="applications--environment">Applications &amp; Environment</h2><ul><li><p><a href="https://github.com/clojure/tools.cli">tools.cli</a>: a command line argument parser for Clojure</p></li><li><p><a href="https://clojars.org/environ">environ</a>: Manage environment settings from a number of different sources</p></li><li><p><a href="https://github.com/sonian/carica">carica</a> (<a href="https://clojars.org/sonian/carica">at clojars</a>):
Flexible config file usage &amp; management library.</p></li></ul><h2 id="date-and-time">Date and Time</h2><ul><li><a href="https://clojars.org/clj-time">clj-time</a>: A date and time library for Clojure</li></ul><h2 id="testing">Testing</h2><ul><li><p><a href="http://clojure.github.com/clojure/clojure.test-api.html">clojure.test</a>: the standard unit testing library that ships with Clojure</p></li><li><p><a href="https://clojars.org/midje">Midje</a>: a more featureful test framework</p></li><li><p><a href="https://github.com/lshift/cloverage">cloverage</a>: a test-coverage tool (lein plug-in)</p></li><li><p><a href="https://github.com/jaycfields/expectations">expectations</a> (<a href="https://clojars.org/expectations">at clojars</a>): a minimalist's testing framework</p></li><li><p><a href="https://github.com/clojure/test.generative">test.generative</a>: generative testing, a la QuickCheck</p></li><li><p><a href="https://github.com/amitrathore/conjure">conjure</a> (<a href="https://clojars.org/org.clojars.runa/conjure">at clojars</a>):
mocking and stubbing for unit tests.</p></li></ul><h2 id="namespaces-and-code-as-data">Namespaces and Code-as-Data</h2><ul><li><p><a href="https://github.com/clojure/tools.namespace">tools.namespace</a></p></li><li><p><a href="https://github.com/Raynes/bultitude">builtitude</a> (<a href="https://clojars.org/bultitude">at clojars</a>)</p></li><li><p><a href="https://github.com/Raynes/findfn">findfn</a> (<a href="https://clojars.org/findfn">at clojars</a>)</p></li><li><p><a href="https://github.com/weavejester/ns-tracker">ns-tracker</a> (<a href="https://clojars.org/ns-tracker">at clojars</a>)</p></li></ul><h2 id="serialization">Serialization</h2><h3 id="json">JSON</h3><ul><li><p><a href="https://github.com/dakrone/cheshire/">cheshire</a> (<a href="https://clojars.org/cheshire">at clojars</a>): very efficient Clojure JSON and SMILE (binary JSON) encoding/decoding.</p></li><li><p><a href="https://github.com/clojure/data.json">data.json</a>: JSON parser/generator to/from Clojure data structures.</p></li></ul><h3 id="protocol-buffers">Protocol Buffers</h3><ul><li><a href="https://github.com/flatland/clojure-protobuf">clojure-protobuf</a> (<a href="https://clojars.org/protobuf">at clojars</a>): a Clojure interface to Google's protocol buffers</li></ul><h3 id="kryo">Kryo</h3><ul><li><a href="https://github.com/revelytix/carbonite">carbonite</a></li></ul><h3 id="clojure-reader">Clojure Reader</h3><ul><li><a href="https://github.com/ptaoussanis/nippy">Nippy</a> (<a href="https://clojars.org/nippy">at clojars</a>): a more efficient implementation of the Clojure reader</li></ul><h3 id="xml">XML</h3><ul><li><a href="https://github.com/clojure/data.xml">data.xml</a>: a library for reading and writing XML</li></ul><h3 id="binary-formats">Binary Formats</h3><ul><li><a href="https://github.com/ztellman/gloss">gloss</a> (<a href="https://clojars.org/gloss">at clojars</a>): turns complicated byte formats into Clojure data structures</li></ul><h2 id="file-formats">File formats</h2><ul><li><p><a href="https://clojars.org/clj-pdf">clj-pdf</a>: a library for easily generating PDFs from Clojure</p></li><li><p><a href="https://github.com/michaelklishin/pantomime">Pantomime</a> (<a href="https://clojars.org/pantomime">at clojars</a>): a tiny Clojure library that deals with Internet media types (MIME types) and content type detection</p></li><li><p><a href="https://github.com/clojure/data.csv">data.csv</a>: a CSV parser</p></li></ul><h2 id="templating">Templating</h2><ul><li><p><a href="https://clojars.org/stencil">Stencil</a>: <a href="http://mustache.github.com/">Mustache</a> for Clojure (logic-less templates). Fast.</p></li><li><p><a href="https://clojars.org/de.ubercode.clostache/clostache">Clostache</a>: another nice <a href="http://mustache.github.com/">Mustache</a> implementation</p></li></ul><h2 id="http">HTTP</h2><h3 id="clientserver">Client/Server</h3><ul><li><a href="http://http-kit.org/">HTTP Kit</a> (<a href="https://clojars.org/http-kit">at
clojars</a>): High-performance
event-driven HTTP client/server for Clojure.</li></ul><h3 id="client">Client</h3><ul><li><p><a href="https://github.com/dakrone/clj-http">clj-http</a> (<a href="https://clojars.org/clj-http">at clojars</a>): An idiomatic Clojure http client wrapping the apache client.</p></li><li><p><a href="https://github.com/hiredman/clj-http-lite">clj-http-lite</a> (<a href="https://clojars.org/clj-http-lite">at clojars</a>): A lightweight version of clj-http having almost same API, but without any Apache dependencies.</p></li></ul><h2 id="logging">Logging</h2><ul><li><p><a href="https://clojars.org/com.taoensso/timbre">Timbre</a>:
Simple, flexible, all-Clojure logging. No XML!</p></li><li><p><a href="https://github.com/clojure/tools.logging/">tools.logging</a>: standard general-purpose logging.</p></li><li><p><a href="https://clojars.org/clj-log">clj-log</a>: s-expression logger.</p></li></ul><h2 id="web-development">Web Development</h2><h3 id="web-services">Web Services</h3><ul><li><p><a href="https://github.com/ring-clojure">Ring</a> (<a href="https://clojars.org/ring">at clojars</a>): foundational
web application library</p></li><li><p><a href="https://github.com/weavejester/compojure">Compojure</a> (<a href="https://clojars.org/compojure">at clojars</a>):
concise routing library for Ring</p></li><li><p><a href="http://pedestal.io/">Pedestal</a> (<a href="https://clojars.org/search?q=pedestal">at clojars</a>):
an open source tool set for building web applications in Clojure</p></li><li><p><a href="http://www.luminusweb.net/">Luminus</a>: lein template for creating batteries-included
web applications using Ring, Compojure, lib-noir, and other libraries.</p></li><li><p><a href="https://github.com/clojure-liberator/liberator">Liberator</a> (<a href="https://clojars.org/liberator">at clojars</a>): a Clojure library for building RESTful applications</p></li><li><p><a href="https://github.com/cemerick/friend">friend</a> (<a href="https://clojars.org/com.cemerick/friend">at clojars</a>): Authentication and authorization library for Web apps</p></li></ul><h3 id="html-generation">HTML Generation</h3><ul><li><p><a href="https://clojars.org/hiccup">hiccup</a>: Generates HTML from Clojure data structures.</p></li><li><p><a href="https://github.com/davidsantiago/stencil">Stencil</a>: Implements the Mustache templating language.</p></li><li><p><a href="https://clojars.org/markdown-clj">markdown-clj</a>: Clojure based Markdown parsers for both Clojure and ClojureScript.</p></li></ul><h3 id="html-parsers">HTML Parsers</h3><ul><li><p><a href="https://clojars.org/crouton">Crouton</a>: A Clojure wrapper for the JSoup HTML and XML parser that handles real world inputs</p></li><li><p><a href="https://github.com/michaelklishin/crawlista">Crawlista</a> (<a href="https://clojars.org/clojurewerkz/crawlista">at clojars</a>): a support library for applications that crawl the Web</p></li><li><p><a href="http://home.ccil.org/~cowan/XML/tagsoup/">TagSoup</a>: a tool for parsing html as it's found in the wild: poor, nasty, and brutish.</p></li></ul><h3 id="data-validation">Data Validation</h3><ul><li><p><a href="http://clojurevalidations.info">Validateur</a> (<a href="https://clojars.org/com.novemberain/validateur">at clojars</a>): functional validations library inspired by Ruby's ActiveModel</p></li><li><p><a href="https://github.com/mylesmegyesi/metis">Metis</a>: another validations library inspired by Ruby's ActiveModel</p></li><li><p><a href="https://github.com/runa-dev/clj-schema">Clj-Schema</a> (<a href="https://clojars.org/org.clojars.runa/clj-schema">at clojars</a>): Schemas for Clojure Data: validation and test data generators</p></li></ul><h3 id="uris-urls">URIs, URLs</h3><ul><li><p><a href="https://github.com/michaelklishin/urly">Urly</a> (<a href="https://clojars.org/clojurewerkz/urly">at clojars</a>): unifies <code>java.net.URL</code>, <code>java.net.URI</code> and string URIs, provides parsing and manipulation helpers</p></li><li><p><a href="https://github.com/wtetzner/exploding-fish">Exploding Fish</a> (<a href="https://clojars.org/org.bovinegenius/exploding-fish">at clojars</a>): a URI library for Clojure</p></li><li><p><a href="https://github.com/clojurewerkz/route-one">route-one</a> (<a href="https://clojars.org/clojurewerkz/route-one">at clojars</a>): a tiny Clojure library that generates HTTP resource routes (as in Ruby on Rails, Jersey, and so on)</p></li></ul><h3 id="internationalization-i18n-localization-l10n">Internationalization (i18n), Localization (l10n)</h3><ul><li><a href="https://github.com/ptaoussanis/tower">Tower</a> (<a href="https://clojars.org/tower">at clojars</a>): a simple, idiomatic internationalization and localization story for Clojure</li></ul><h3 id="rss">RSS</h3><ul><li><a href="https://clojars.org/clj-rss">clj-rss</a>: RSS feed generation library</li></ul><h2 id="data-stores">Data Stores</h2><h3 id="relational-databases-jdbc">Relational Databases, JDBC</h3><ul><li><p><a href="https://github.com/clojure/java.jdbc">java.jdbc</a>: Basic wrapper for JDBC. Works with all JDBC databases (MySQL, PostgreSQL, Oracle, SQL Server, etc).</p></li><li><p><a href="https://clojars.org/korma">Korma</a>: <a href="http://sqlkorma.com/docs">"Tasty SQL for Clojure"</a></p></li></ul><h3 id="couchdb">CouchDB</h3><ul><li><a href="https://github.com/clojure-clutch/clutch">Clutch</a> (<a href="https://clojars.org/com.ashafa/clutch">at clojars</a>): <a href="http://couchdb.apache.org/">Apache CouchDB</a> client.</li></ul><h3 id="mongodb">MongoDB</h3><ul><li><p><a href="https://clojuremongodb.info">Monger</a> (<a href="https://clojars.org/com.novemberain/monger">at clojars</a>): Monger is an idiomatic Clojure MongoDB driver for a more civilized age with solid documentation</p></li><li><p><a href="https://github.com/aboekhoff/congomongo">congomongo</a> (<a href="https://clojars.org/congomongo">at clojars</a>): Basic wrapper for the MongoDB Java driver</p></li><li><p><a href="https://github.com/yuushimizu/Mongoika">Mongoika</a> (<a href="https://clojars.org/mongoika">at clojars</a>)</p></li></ul><h3 id="riak">Riak</h3><ul><li><a href="https://clojureriak.info">Welle</a> (<a href="https://clojars.org/com.novemberain/welle">at clojars</a>): An expressive Clojure client for Riak with solid documentation</li></ul><h3 id="redis">Redis</h3><ul><li><a href="https://github.com/ptaoussanis/carmine">Carmine</a> (<a href="https://clojars.org/com.taoensso/carmine">at clojars</a>): a great Clojure client for Redis</li></ul><h3 id="graph-databases-neo4j-titan-etc">Graph Databases (Neo4J, Titan, etc)</h3><ul><li><p><a href="https://clojureneo4j.info">Neocons</a> (<a href="https://clojars.org/clojurewerkz/neocons">at clojars</a>): Neocons is a feature rich idiomatic <a href="http://clojureneo4j.info">Clojure client for the Neo4J REST API</a> with solid documentation</p></li><li><p><a href="http://titanium.clojurewerkz.org">Titanium</a> (<a href="https://clojars.org/clojurewerkz/titanium">at clojars</a>):
a Clojure graph library built on top of Titan</p></li><li><p><a href="https://github.com/zmaril/archimedes">Archimedes</a> (<a href="https://clojars.org/zmaril/archimedes">at clojars</a>):
a Clojure wrapper for Tinkerpop Blueprints</p></li><li><p><a href="https://github.com/zmaril/ogre">Ogre</a> (<a href="https://clojars.org/zmaril/ogre">at clojars</a>):
a Clojure library for querying Tinkerpop graphs</p></li><li><p><a href="https://github.com/wagjo/borneo">Borneo</a> (<a href="https://clojars.org/borneo">at clojars</a>)</p></li></ul><h3 id="elasticsearch">ElasticSearch</h3><ul><li><p><a href="http://clojureelasticsearch.info">Elastisch</a> (<a href="https://clojars.org/clojurewerkz/elastisch">at clojars</a>): Elastisch is a minimalistic Clojure client for <a href="http://elasticsearch.org">ElasticSearch</a> with solid documentation.</p></li><li><p><a href="https://github.com/drewr/esperanto">Esperanto</a></p></li></ul><h3 id="memcached-couchbase-kestrel">Memcached, Couchbase, Kestrel</h3><ul><li><a href="http://clojurememcached.info">Spyglass</a> (<a href="https://clojars.org/clojurewerkz/spyglass">at clojars</a>): Spyglass is a very fast Clojure client for Memcached and Couchbase with solid documentation</li></ul><h3 id="apache-cassandra">Apache Cassandra</h3><ul><li><p><a href="https://github.com/clojurewerkz/cassaforte">Cassaforte</a> (<a href="https://clojars.org/clojurewerkz/cassaforte">at clojars</a>): A young Clojure client for Apache Cassandra</p></li><li><p><a href="https://github.com/pingles/clj-hector">clj-hector</a> (<a href="https://clojars.org/org.clojars.paul/clj-hector">at clojars</a>): A simple Clojure client for Cassandra that wraps Hector</p></li><li><p><a href="https://github.com/mpenet/alia">Alia</a> (<a href="https://clojars.org/cc.qbits/alia">at clojars</a>): Cassandra CQL3 client for Clojure, <a href="https://github.com/datastax/java-driver">datastax/java-driver</a> wrapper</p></li><li><p><a href="https://github.com/SMX-LTD/ccm-clj">ccm-clj</a> (<a href="https://clojars.org/com.smxemail/ccm-clj">at clojars</a>: Clojure interface to the Cassandra Cluster Manager, <a href="https://github.com/pcmanus/ccm">ccm</a></p></li></ul><h3 id="amazon-dynamodb">Amazon DynamoDB</h3><ul><li><a href="https://github.com/weavejester/rotary">Rotary</a> (<a href="https://clojars.org/rotary">at clojars</a>)</li></ul><h3 id="tokyo-cabinet">Tokyo Cabinet</h3><ul><li><a href="https://github.com/flatland/tokyocabinet">tokyocabinet</a> (<a href="https://clojars.org/tokyocabinet">at clojars</a>): native Tokyo Cabinet interface for Clojure</li></ul><h3 id="misc">Misc</h3><ul><li><p><a href="https://github.com/flatland/masai">masai</a> (<a href="https://clojars.org/masai">at clojars</a>): a very simple interface to a number of key-value stores</p></li><li><p><a href="https://github.com/flatland/jiraph">jiraph</a> (<a href="https://clojars.org/jiraph">at clojars</a>): a reasonably licensed embedded graph database with swappable backends</p></li></ul><h2 id="networking">Networking</h2><ul><li><p><a href="https://github.com/ztellman/lamina">Lamina</a> (<a href="https://clojars.org/lamina">at clojars</a>): event-driven workflows in Clojure</p></li><li><p><a href="https://github.com/clj-commons/aleph">Aleph</a> (<a href="https://clojars.org/aleph">at clojars</a>): asynchronous communication in Clojure</p></li></ul><h2 id="application-servers">Application Servers</h2><ul><li><a href="http://immutant.org/">Immutant</a> (<a href="https://clojars.org/org.immutant/immutant">at clojars</a>): a feature rich and integrated application platform for Clojure from Red Hat</li></ul><h2 id="messaging">Messaging</h2><h3 id="rabbitmq">RabbitMQ</h3><ul><li><a href="http://clojurerabbitmq.info">Langohr</a> (<a href="https://clojars.org/com.novemberain/langohr">at clojars</a>): a feature complete RabbitMQ client that embraces AMQP 0.9.1 model and learns from others</li></ul><h3 id="zeromq">ZeroMQ</h3><ul><li><a href="https://github.com/mpenet/jilch">Jilch</a> (<a href="https://clojars.org/jilch">at clojars</a>): Clojure ZeroMQ Library using JeroMQ, no native dependencies</li></ul><h3 id="beanstalk">Beanstalk</h3><ul><li><a href="https://github.com/drsnyder/beanstalk">beanstalk</a> (<a href="https://clojars.org/com.github.drsnyder/beanstalk">at clojars</a>): a Beanstalkd client</li></ul><h3 id="amazon-sqs">Amazon SQS</h3><ul><li><a href="https://github.com/cemerick/bandalore">Bandalore</a>: a Clojure client library for Amazon's Simple Queue Service</li></ul><h3 id="hornetq">HornetQ</h3><ul><li><a href="https://github.com/hugoduncan/hornetq-clj">hornetq-clj</a> (<a href="https://clojars.org/hornetq-clj/client">at clojars</a>): a tiny HornetQ client</li></ul><h2 id="data-processing-computation">Data Processing, Computation</h2><ul><li><p><a href="http://storm-project.net/">Twitter Storm</a> (<a href="https://clojars.org/storm">at clojars</a>): distributed realtime computation system</p></li><li><p><a href="http://www.cascalog.org/">Cascalog</a> (<a href="https://clojars.org/cascalog">at clojars</a>): data processing on Hadoop without the hassle</p></li></ul><h2 id="natural-language-processing">Natural Language Processing</h2><ul><li><a href="https://github.com/dakrone/clojure-opennlp">clojure-opennlp</a> (<a href="https://clojars.org/clojure-opennlp">at clojars</a>)</li></ul><h2 id="parsers-parser-combinators-language-construction">Parsers, Parser Combinators, Language Construction</h2><ul><li><p><a href="https://github.com/Engelberg/instaparse">Instaparse</a> (<a href="https://clojars.org/instaparse">at clojars</a>)</p></li><li><p><a href="https://github.com/blancas/kern">Kern</a> (<a href="https://clojars.org/org.blancas/kern">at clojars</a>)</p></li></ul><h2 id="automation-provisioning-devops-tools">Automation, Provisioning, DevOps Tools</h2><ul><li><p><a href="http://palletops.com/">pallet</a> (<a href="https://clojars.org/pallet">at clojars</a>): a platform for agile and programmatic automation of infrastructure</p></li><li><p><a href="http://www.jclouds.org/">jclouds</a>: unified APIs for dozens of cloud (IaaS) providers</p></li><li><p><a href="https://github.com/mcohen01/amazonica">Amazonica</a>: comprehensive Clojure client for the entire AWS API</p></li><li><p><a href="https://github.com/hugoduncan/clj-ssh">clj-ssh</a> (<a href="https://clojars.org/clj-ssh">at clojars</a>): an SSH client</p></li><li><p><a href="https://github.com/pallet/ssh-transport">ssh-transport</a>: executes commands over SSH</p></li></ul><h2 id="monitoring-metrics">Monitoring, metrics</h2><ul><li><p><a href="https://github.com/sjl/metrics-clojure">metrics-clojure</a> (<a href="https://clojars.org/metrics-clojure">at clojars</a>):
Clojure library on top of Yammer's Metrics</p></li><li><p><a href="https://github.com/pyr/clj-statsd">clj-statsd</a> (<a href="https://clojars.org/clj-statsd">at clojars</a>): simple client library to interface with statsd</p></li><li><p><a href="https://github.com/heroku/pulse">pulse</a>: Real-time Heroku operations dashboard</p></li><li><p><a href="http://riemann.io">riemann</a> (<a href="https://clojars.org/riemann">at clojars</a>): A network event stream processing system, in Clojure.</p></li></ul><h2 id="io">I/O</h2><h3 id="files-nio-nio2">Files, NIO, NIO2</h3><p>File I/O is covered by the JDK and commonly used via <code>clojure.java.io</code> functions.</p><ul><li><a href="https://github.com/clj-commons/fs">fs</a> (<a href="https://clojars.org/clj-commons/fs">at clojars</a>): utilities for working with the file system</li><li><a href="https://github.com/pjstadig/nio">nio</a>: Clojure library for working with for Java NIO classes</li></ul><h3 id="standard-streams-subprocesses">Standard Streams, Subprocesses</h3><p>Standard streams I/O is covered by the JDK and commonly used via <code>clojure.java.io</code> functions.</p><ul><li><p>clojure.java.shell (part of Clojure distribution): Conveniently launch a sub-process providing
its stdin and collecting its stdout.</p></li><li><p><a href="https://clojars.org/conch">conch</a>: for shelling out to external programs.
An alternative to clojure.java.shell.</p></li></ul><h3 id="property-files">Property Files</h3><ul><li><a href="https://github.com/jaycfields/propertea">propertea</a> (<a href="https://clojars.org/propertea">at clojars</a>): painlessly work with property files</li></ul><h3 id="repl-and-terminal">REPL and Terminal</h3><ul><li><p><a href="https://github.com/trptcolin/reply">REPLy</a> (<a href="https://clojars.org/reply">at clojars</a>): a Swiss army knife of interactive editing, and better REPL for Clojure</p></li><li><p><a href="https://clojars.org/clojure-lanterna">clojure-lanterna</a> (<a href="https://clojars.org/clojure-lanterna">at clojars</a>): for creating TUIs (terminal-based user-interfaces), like ncurses.</p></li></ul><h2 id="concurrency-and-parallelism">Concurrency and Parallelism</h2><ul><li><a href="http://docs.oracle.com/javase/7/docs/technotes/guides/concurrency/index.html">java.util.concurrent</a>: a comprehensive, very mature set of concurrency primitives built into the JDK</li><li><a href="https://github.com/gaverhae/okku">Okku</a> (<a href="https://clojars.org/org.clojure.gaverhae/okku">at clojars</a>): Akka API for Clojure</li></ul><h2 id="mathematics">Mathematics</h2><ul><li><p><a href="https://github.com/clojure/math.numeric-tower">math.numeric-tower</a>: various utility math functions</p></li><li><p><a href="https://github.com/clojure/math.combinatorics">math.combinatorics</a>: common combinatorial functions</p></li><li><p><a href="https://github.com/mikera/matrix-api">core.matrix</a>: matrix operations</p></li></ul><h2 id="email">Email</h2><ul><li><p><a href="https://github.com/drewr/postal">Postal</a> (<a href="https://clojars.org/com.draines/postal">at clojars</a>): generate and send email with Clojure</p></li><li><p><a href="https://github.com/clojurewerkz/mailer">Mailer</a> (<a href="https://clojars.org/clojurewerkz/mailer">at clojars</a>): generate and send email using Postal and Moustache templates</p></li></ul><h2 id="data-structures-and-algorithms">Data Structures and Algorithms</h2><h3 id="strings">Strings</h3><ul><li>clojure.string</li></ul><h3 id="sets">Sets</h3><ul><li>clojure.set</li></ul><h3 id="caching">Caching</h3><ul><li><a href="https://github.com/clojure/core.cache">core.cache</a>: the Clojure API for various cache implementations</li></ul><h3 id="uuids">UUIDs</h3><ul><li><a href="https://github.com/mpenet/tardis">tardis</a> (<a href="https://clojars.org/cc.qbits/tardis">at clojars</a>): manages Type 1 UUIDs (time based)</li></ul><h3 id="monads">Monads</h3><ul><li><p><a href="https://github.com/clojure/algo.monads">algo.monads</a>: macros for defining monads, and definition of the most common monads</p></li><li><p><a href="https://github.com/jduey/protocol-monads">protocol-monads</a>: A protocol based monad implementation for clojure</p></li></ul><h3 id="memoization">Memoization</h3><ul><li><a href="https://github.com/clojure/core.memoize">core.memoize</a></li></ul><h3 id="other">Other</h3><ul><li><p><a href="https://github.com/michaelklishin/vclock">vclock</a> (<a href="https://clojars.org/clojurewerkz/vclock">at clojars</a>): a vector clocks implementation</p></li><li><p><a href="https://github.com/michaelklishin/chash">chash</a> (<a href="https://clojars.org/clojurewerkz/chash">at clojars</a>): a consistent hashing library</p></li></ul><h2 id="scheduling">Scheduling</h2><ul><li><a href="http://clojurequartz.info">Quartzite</a> (<a href="https://clojars.org/clojurewerkz/quartzite">at clojars</a>): a powerful scheduling library</li></ul><h2 id="graphics-and-gui">Graphics and GUI</h2><ul><li><p><a href="https://clojars.org/quil">Quil</a>: For making drawings, animations,
and artwork (<a href="https://github.com/quil/quil/blob/master/examples/gen_art/README.md">some examples</a>). Wraps
the <a href="http://www.processing.org/">"Processing"</a> graphics environment.</p></li><li><p><a href="http://seesaw-clj.org/">seesaw</a> (<a href="https://clojars.org/seesaw">at clojars</a>): A Swing wrapper/DSL.</p></li><li><p><a href="https://github.com/mikera/clisk">clisk</a>: Clisk is a DSL-based library for procedural image generation that can be used from Clojure and Java.</p></li></ul><h2 id="security-and-sandboxing">Security and Sandboxing</h2><ul><li><a href="https://github.com/flatland/clojail">Clojail</a> (<a href="https://clojars.org/clojail">at clojars</a>): a [code execution] sandboxing library</li></ul><h2 id="documentation">Documentation</h2><h3 id="literate-programming">Literate Programming</h3><ul><li><p><a href="https://github.com/fogus/marginalia">Marginalia</a> (<a href="https://clojars.org/marginalia">at clojars</a>): literate programming implementation for Clojure. See <a href="http://fogus.me/fun/marginalia/">the Marginalia
site</a> for an example.</p></li><li><p><a href="https://github.com/fogus/lein-marginalia">Marginalia Leiningen plug-in</a> (<a href="https://clojars.org/lein-marginalia">at clojars</a>)</p></li></ul><h3 id="generating-api-reference">Generating API Reference</h3><ul><li><p><a href="https://github.com/weavejester/codox">Codox</a> (<a href="https://clojars.org/codox">at clojars</a>): from the author of Compojure. See <a href="http://weavejester.github.com/compojure/">compojure
api docs</a> for an
example.</p></li><li><p><a href="http://tomfaulhaber.github.com/autodoc/">Autodoc</a> (<a href="https://clojars.org/autodoc">at clojars</a>): used
to generate the official <a href="http://clojure.github.com/">Clojure API reference</a>.</p></li></ul><h2 id="tooling">Tooling</h2><ul><li><p><a href="http://leiningen.org">Leiningen</a>: the Clojure build tool</p></li><li><p><a href="https://github.com/clojure/tools.nrepl">tools.nrepl</a>: nREPL interface</p></li><li><p><a href="https://github.com/clojure/java.jmx">java.jmx</a>: nice JMX interface</p></li><li><p><a href="https://github.com/clojure/test.benchmark">test.benchmark</a>: a benchmarking library</p></li><li><p><a href="https://github.com/clojure/tools.trace">tools.trace</a>: a tracing library</p></li><li><p><a href="https://github.com/hugoduncan/criterium">criterium</a> (<a href="https://clojars.org/criterium">at clojars</a>): a benchmarking library that tries to address common benchmarking pitfalls</p></li><li><p><a href="https://github.com/AlexBaranosky/print-foo">print-foo</a> (<a href="https://clojars.org/print-foo">at clojars</a>): A library of print debugging macros.</p></li><li><p><a href="https://github.com/AlexBaranosky/gui-diff">gui-diff</a> (<a href="https://clojars.org/gui-diff">at clojars</a>): Tools for side-by-side diffing of Clojure data structures and clojure.test failures</p></li></ul>
<div id="prev-next">
<a href="../../language/glossary/index.html">&laquo; Clojure Terminology Guide</a>
||
<a href="../libraries_authoring/index.html">Library Development and Distribution &raquo;</a>
</div>
</div>
</div>
</div>
<div class="col-md-3">
<div id="sidebar">
<h3>Links</h3>
<ul id="links">
<li><a href="../../about/index.html">About</a></li>
<li><a href="../../content/index.html">Table of Contents</a></li>
<li><a href="../../tutorials/getting_started/index.html">Getting Started with Clojure</a></li>
<li><a href="../../tutorials/introduction/index.html">Introduction to Clojure</a></li>
<li><a href="../../tutorials/emacs/index.html">Clojure with Emacs</a></li>
<li><a href="../../tutorials/vim_fireplace/index.html">Clojure with Vim and fireplace.vim</a></li>
<li><a href="../../tutorials/eclipse/index.html">Starting with Eclipse and Counterclockwise For Clojure Development</a></li>
<li><a href="../../tutorials/basic_web_development/index.html">Basic Web Development</a></li>
<li><a href="../../tutorials/parsing_xml_with_zippers/index.html">Parsing XML in Clojure</a></li>
<li><a href="../../tutorials/growing_a_dsl_with_clojure/index.html">Growing a DSL with Clojure</a></li>
<li><a href="../../language/core_overview/index.html">Overview of clojure.core, the standard Clojure library</a></li>
<li><a href="../../language/namespaces/index.html">Clojure Namespaces and Vars</a></li>
<li><a href="../../language/collections_and_sequences/index.html">Collections and Sequences in Clojure</a></li>
<li><a href="../../language/functions/index.html">Functions in Clojure</a></li>
<li><a href="../../language/laziness/index.html">Laziness in Clojure</a></li>
<li><a href="../../language/interop/index.html">Clojure interoperability with Java</a></li>
<li><a href="../../language/macros/index.html">Clojure Macros and Metaprogramming</a></li>
<li><a href="../../language/polymorphism/index.html">Polymorphism in Clojure: Protocols and Multimethods</a></li>
<li><a href="../../language/concurrency_and_parallelism/index.html">Concurrency and Parallelism in Clojure</a></li>
<li><a href="../../language/glossary/index.html">Clojure Terminology Guide</a></li>
<li><a href="index.html">A Directory of Clojure Libraries</a></li>
<li><a href="../libraries_authoring/index.html">Library Development and Distribution</a></li>
<li><a href="../generating_documentation/index.html">Generating Documentation</a></li>
<li><a href="../data_processing/index.html">Data Processing (Help Wanted)</a></li>
<li><a href="../web_development/index.html">Web Development (Overview)</a></li>
<li><a href="../maven/index.html">How to use Maven to build Clojure projects</a></li>
<li><a href="../community/index.html">Clojure Community</a></li>
<li><a href="../user_groups/index.html">Clojure User Groups</a></li>
<li><a href="../running_cljug/index.html">Running a Clojure User Group</a></li>
<li><a href="../books/index.html">Books about Clojure and ClojureScript</a></li>
<li><a href="../../cookbooks/data_structures/index.html">Data Structures (Help wanted)</a></li>
<li><a href="../../cookbooks/strings/index.html">Strings</a></li>
<li><a href="../../cookbooks/math/index.html">Mathematics with Clojure</a></li>
<li><a href="../../cookbooks/date_and_time/index.html">Date and Time (Help wanted)</a></li>
<li><a href="../../cookbooks/files_and_directories/index.html">Working with Files and Directories in Clojure</a></li>
<li><a href="../../cookbooks/middleware/index.html">Middleware in Clojure</a></li>
<li><a href="../java_jdbc/home.html">java.jdbc - Getting Started</a></li>
<li><a href="../java_jdbc/using_sql.html">java.jdbc - Manipulating data with SQL</a></li>
<li><a href="../java_jdbc/using_ddl.html">java.jdbc - Using DDL and Metadata</a></li>
<li><a href="../java_jdbc/reusing_connections.html">java.jdbc - How to reuse database connections</a></li>
<li><a href="../core_typed/home/index.html">core.typed - User Documentation Home</a></li>
<li><a href="../core_typed/user_documentation/index.html">core.typed - User Documentation</a></li>
<li><a href="../core_typed/rationale/index.html">core.typed - Rationale</a></li>
<li><a href="../core_typed/quick_guide.html">core.typed - Quick Guide</a></li>
<li><a href="../core_typed/start/introduction_and_motivation/index.html">core.typed - Getting Started: Introduction and Motivation</a></li>
<li><a href="../core_typed/types/index.html">core.typed - Types</a></li>
<li><a href="../core_typed/start/annotations/index.html">core.typed - Annotations</a></li>
<li><a href="../core_typed/poly_fn/index.html">core.typed - Polymorphic Functions</a></li>
<li><a href="../core_typed/filters/index.html">core.typed - Filters</a></li>
<li><a href="../core_typed/mm_protocol_datatypes/index.html">core.typed - Protocols</a></li>
<li><a href="../core_typed/loops/index.html">core.typed - Looping constructs</a></li>
<li><a href="../core_typed/function_types/index.html">core.typed - Functions</a></li>
<li><a href="../core_typed/limitations/index.html">core.typed - Limitations</a></li>
</ul>
</div>
</div>
</div>
<footer>Copyright &copy; 2021 Multiple Authors
<p style="text-align: center;">Powered by <a href="http://cryogenweb.org">Cryogen</a></p></footer>
</div>
<script src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="../../../js/highlight.pack.js" type="application/javascript"></script>
<script>hljs.initHighlightingOnLoad();</script>
</body>
</html>