239 lines
38 KiB
HTML
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 & 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 & 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">« Clojure Terminology Guide</a>
|
|
|
|
|
|
||
|
|
|
|
|
|
<a href="../libraries_authoring/index.html">Library Development and Distribution »</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 © 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>
|