...
As a first stop, please consider the libraries in Clojure Contrib, a repository for libraries contributed to the Clojure project and candidates for inclusion in core.
Note: The mentions of clojure.contrib below are out of date and should be removed since the Clojure Contrib page linked above supersedes all "old" contrib information.
Author: //*Chouser*//
All are licensed under the EPL.
Category: OS integration
- clojure.contrib.command-line
Parses command-line options according to your programs specifications.
Provide --help output automatically.
- clojure.contrib.shell-out
Launch external programs and collect their output.
- clojure.contrib.mmap
Thin wrapper around Java's memory-map support. Provides versions of
'slurp' and 'load-file' that use mmap internally.
Category: meta-clojure
- net.n01se.clojure-classes
Produces a graph of Clojure classes' inheritance:http://tinyurl.com/clojure-classes
3rd party dep: http://www.graphviz.org/
- clojure.contrib.repl-utils
Provides tools for examining Clojure source code and Java classes at
the REPL.
Category: xml
- clojure.contrib.lazy-xml
XML parser/emitter using an in-memory format that's compatible with
clojure.xml. The primary differences are that it produces lazy seqs
of content nodes (instead of vectors), and that it can use a pull
parser API internally. Works well with zip-filter.xml
Optional 3rd party dep: http://www.extreme.indiana.edu/xgws/xsoap/xpp/
- clojure.contrib.zip-filter
- clojure.contrib.zip-filter.xml
Produces lazy sequences of nodes from an XML document that match the
given chain of filter expressions. Similar in feel to XPath, but
using Clojure syntax and easily extensible with custom filter
expressions.
clojure.contrib.apply-macro http://github.com/clojure/clojure-contrib/
Stuart Sierra
Category: language extension
License: EPL
A sneaky way to apply a macro as if it were a function. Mostly for demonstration purposes.
clojure.contrib.auto-agent http://github.com/clojure/clojure-contrib/
Stuart Sierra
Category: language extension
License: EPL
Dependencies: clojure.contrib.test-is, clojure.contrib.walk
Cell-like agents that are automatically updated based on a formula.
clojure.contrib.condt http://github.com/clojure/clojure-contrib/
Stuart Sierra
Category: language extension
License: EPL
Dependencies: clojure-contrib.template
A "case" or "condp"-like macro that tests values using a template expression.
clojure.contrib.duck-streams http://github.com/clojure/clojure-contrib/
Stuart Sierra
Category: I/O
License: EPL
Utilities to create Java Readers and Writers out of any reasonable type, like File, URL, String, etc.
clojure.contrib.fcase http://github.com/clojure/clojure-contrib/
Stuart Sierra
Category: language extension
License: EPL
Several "case"-like macros using functional predicates.
clojure.contrib.json.read http://github.com/clojure/clojure-contrib/
Stuart Sierra
Category: JSON
License: EPL
Dependencies: clojure.contrib.test-is
Simple JSON parser in pure Clojure.
clojure.contrib.json.write http://github.com/clojure/clojure-contrib/
Stuart Sierra
Category: JSON
License: EPL
Dependencies: clojure.contrib.test-is
Simple JSON generator in pure Clojure.
clojure.contrib.prxml http://github.com/clojure/clojure-contrib/
Stuart Sierra
Category: XML
License: EPL
Dependencies: clojure.contrib.lazy-xml
Compact syntax for generating XML.
clojure.contrib.seq-utils http://github.com/clojure/clojure-contrib/
Stuart Sierra and others
Category: language utilities
License: EPL
Various utilities for working with sequences.
clojure.contrib.stacktrace http://github.com/clojure/clojure-contrib/
Stuart Sierra
Category: debugging
License: EPL
Friendlier, more Clojure-oriented stack traces.
clojure.contrib.str-utils http://github.com/clojure/clojure-contrib/
Stuart Sierra and others
Category: language utilities
License: EPL
Various utilities for working with strings and regular expressions.
clojure.contrib.template http://github.com/clojure/clojure-contrib/
Stuart Sierra
Category: language extension
License: EPL
Dependencies: clojure-contrib.walk
Macros to create and apply "template expressions" with "holes" that can be filled in later.
clojure.contrib.test-is http://github.com/clojure/clojure-contrib/
Stuart Sierra
Category: testing
License: EPL
Dependencies: clojure-contrib.template, clojure.contrib.stacktrace
Unit test framework, with generic "is" assertion macro. Supports storing tests as var metadata.
clojure.contrib.trace http://github.com/clojure/clojure-contrib/
Stuart Sierra
Category: debugging
License: EPL
Dependencies: clojure-contrib
Simple tracing macro to insert debugging messages into code.
clojure.contrib.walk http://github.com/clojure/clojure-contrib/
Stuart Sierra
Category: language extension
License: EPL
Generic tree walkers for any data structure, with modification and replacement. Makes it easy to implement things like macroexpand-all,
which is included as an example.
Author: //*Mark Engelberg*//
License: Public Domain
Dependencies: None
Category: Math
- clojure.contrib.math
Common math functions for Clojure's numeric tower. - clojure.contrib.combinatorics
Efficient, functional implementations of common combinatorial
functions such as permutations, combinations, and more.
clojure.contrib.monads http://github.com/clojure/clojure-contrib/
Author: Konrad Hinsen
Category: development
License: EPL
Macros for defining and using monads, commonly used monads and monad transformers
clojure.contrib.probabilities http://github.com/clojure/clojure-contrib/
Author: Konrad Hinsen
Category: maths
License: EPL
Probability distributions and random numbers
clojure.contrib.macro-utils
http://github.com/clojure/clojure-contrib/
Author: Konrad Hinsen
Category: development
License: EPL
Local macros (macrolet), local symbol macros (symbol-macrolet), and global symbol macros (defsymbolmacro)
clojure.contrib.types
http://github.com/clojure/clojure-contrib/
Author: Konrad Hinsen
Category: development
License: EPL
Utilities for defining data types, and in particular algebraic data types
clojure.contrib.accumulators
http://github.com/clojure/clojure-contrib/
Author: Konrad Hinsen
Category: development
License: EPL
A generic interface for accumulators and a handful of useful concrete accumulators (sum, product, counters, min-max, mean, variance, ...)
clojure.contrib.javadoc http://github.com/clojure/clojure-contrib/
Author: Christophe Grand
Categories: repl utilities
License: EPL
Dependencies: clojure.contrib
A repl helper to quickly open javadocs.
clojure.contrib.javadoc.browse http://github.com/clojure/clojure-contrib/
Author: Christophe Grand
Categories: repl utilities/desktop integration
License: EPL
Dependencies: clojure.contrib
Open urls in browser (or, when everything else fails, in a Swing browser)
clojure.contrib.server-socket.clj http://github.com/clojure/clojure-contrib/
Author: Craig McDaniel
Category: net
License: EPL
Description: An enhancement of Rich's original socket-server example that keeps track of client connections, closing them when the go away. It also includes a socket REPL as an example server socket.
pprint
http://github.com/clojure/clojure-contrib/
Author: Tom Faulhaber
Tags: pretty printing, formatted output, Common Lisp compatibility
License: EPL
Dependencies: none (outside of contrib)
- A flexible, customizable pretty printer for displaying clojure code and data (and potentially other structured data as well).
- A fully functional implementation of Common Lisp's crazy powerful format function. cl-format provides a way of producing formatted
output in the "lisp style" in which the format string itself can perform destructuring on the input arguments rather than having
complex iterations and conditionals in your code to do output.
3rd-party Clojure Libraries
...
Caveat
This list of libraries is provided "as-is" - projects live and die, and move location, and change project leads. This information may be out of date. Please bring up corrections on the Clojure mailing list so that this list can be improved.
...
net.n01se.clojure-classes
Author: Chouser
Category: meta-clojure
License: EPL
Produces a graph of Clojure classes' inheritance:http://tinyurl.com/clojure-classes
Dependencies: http://www.graphviz.org/
...
clojure-json
http://github.com/danlarkin/clojure-json/
Author: Dan Larkin
Tags: parsing, web, data-interchange
License: BSD
Dependencies: clojure-contrib (only for running tests)
A JSON encoder/decoder for clojure. Supports reading/writing from strings and files, pretty printing and custom encoders for java classes not handled by default. Complete with low memory usage characteristics and best of all... it's fast!
...
A rough port of Haml HTML libraryfor library for clojure
...
Compojure http://github.com/weavejester/compojure
Author: James Reeves
Categories: web
License: EPL
Dependencies: clojure.contrib, a Java servlet container (e.g. Jetty)
...