Error formatting macro: pagetree: java.lang.NullPointerException
Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current  |   View Page History

Clojure Libraries

There are many libraries for Clojure that complement what is in the Clojure core. Thanks to all contributors and other members of the community for sharing your efforts to extend and enhance Clojure!

Clojure Contrib

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.

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!


fnparse http://github.com/joshua-choi/fnparse
Author: Joshua Choi
Tags: parsing, rules
Licens: EPL
Dependencies: clojure-contrib

fnparse is a library for creating functional parsers in the Clojure programming language. It presents an easy, functional way to create parsers from
EBNF rules and was inspired by the paper Using Functional Parsing to Achieve Quality in Software Maintenance (http://citeseer.ist.psu.edu/148293.html)


Enlive http://github.com/cgrand/enlive/tree/master
Author: Christophe Grand
Categories: web
License: EPL
Dependencies: clojure.contrib, tagsoup

A selector-based (à la CSS) templating system for Clojure. A template = a plain unmodified unadorned html file + some templating rules (CSS like) in Clojure.


VimClojure http://kotka.de/projects/clojure/vimclojure.html
Author: Meikel Brandmeyer
Categories: editor, IDE
License: MIT

A Clojure filetype plugin for Vim. It provides sophisticated syntax highlighting, indenting and other settings to make
editing Clojure in Vim more comfortable. It provides command completion and is easily extensible for other libraries.


Gorilla http://kotka.de/projects/clojure/gorilla.html
Author: Meikel Brandmeyer
Categories: editor, IDE
License: MIT

Gorilla is a SLIME-inspired extension for Vim. It complements VimClojure with additional features like a Repl running in Vim,
sending of expressions to a running Clojure server, docstring lookup, macro expansion, completion of static class members,...
It depends on VimClojure.


CljTags http://bitbucket.org/kotarak/cljtags
Author: Meikel Brandmeyer
Categories: editor, IDE
License: MIT

A simple program to generate tags for use with Vim.


Monad http://bitbucket.org/kotarak/monad
Author: Meikel Brandmeyer
Categories: development
License: MIT

A monad library using multimethods to implement Haskell-style monads.


ClojureCheck http://kotka.de/projects/clojure/clojurecheck.html
Author: Meikel Brandmeyer
Categories: testing
License: MIT

An implementation of the Test Anything Protocol. TAP is widely used in the Perl community and greatly helps to separate the testing itself from the result reporting. ClojureCheck also contains a port of Haskell's QuickCheck. Depends on Monad.


Parser http://kotka.de/projects/clojure/parser.html
Author: Meikel Brandmeyer
Categories: parsing
License: MIT

An implementation of Haskell's Parsec for Clojure. It provides a library to create parser combinators in Clojure. Depends on Monad.


LazyMap http://kotka.de/projects/clojure/lazy-map.html
Author: Meikel Brandmeyer
Categories: development
License: MIT

LazyMap complements the lazy-cons and lazy-cat macros by providing similar macros for maps. It turns any map type of Clojure into a lazy map, whose values are not evaluated until accessed. The resulting map can be freely used, also with the seq library functions, without losing laziness.


ClojureQL http://www.gitorious.org/clojureql/
Author: Lau B. Jensen, Meikel Brandmeyer
Categories: db
License: EPL

ClojureQL let's you handle SQL statements as first class objects. They can be modified, combined to composite queries, bundled in batches... The specifics of the underlying DB enginge are hidden as much as possible.


clj-haml http://github.com/antoniogarrote/clj-haml/tree/master
Author: Antonio Garrote
Categories: web
License: LGPL (whatever)

A rough port of Haml HTML 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)

Compojure is a web framework that emphasizes a thin I/O layer and a functional approach to web development. It includes an integrated
Jetty web server, but can be used with any Java servlet container.


Fact http://github.com/weavejester/fact
Author: James Reeves
Categories: testing
License: EPL
Dependencies: None

Fact is a unit testing library that combines ideas from Ruby's RSpec and Haskell's Quickcheck.


counterclockwise (aka ccw) http://code.google.com/p/counterclockwise/
Authors names: Laurent Petit, Stephan Mülhstrasser, Christophe Grand,Casey Marshall, Tuomas Karkkainen, Manuel Woelker
Category : IDE, editorLicense: EPL

counterclockwise is an integrated development environment (IDE) for the Clojure <http://clojure.sourceforge.net/> programming language, built on the Eclipse platform. Dependencies: Java 1.5, Eclipse 3.5, clojure, clojure-contrib, paredit.clj


Ring http://github.com/mmcgrana/ring
Author: Mark McGranaghan
Category: Web
License: MIT
A Clojure web application library inspired by Python's WSGI and Ruby's Rack; abstracts the details of HTTP into a simple, unified API and enables web application components that can be shared among different web servers and web frameworks.


clj-backtrace http://github.com/mmcgrana/clj-backtrace
Author: Mark McGranaghan
Category: Developer Tool
License: MIT
Enables more readable backtraces in Clojure programs.


clj-html http://github.com/mmcgrana/clj-html
Author: Mark McGranaghan
Category: Web
License: MIT

An HTML templating library using an expressive syntax based on Clojure data structures. Offers a compiled mode in which templates are pre-processed to optimize run-time performance and an interpreted mode to maximize run-time flexibility.


Lancet http://github.com/stuarthalloway/lancet
Author: Stuart Halloway
Developer tool
Same License as Clojure

Lancet is a build tool like Ant or Rake. Lancet makes it easy to create build targets: any Clojure function can be a build target. Lancet can call Ant tasks, or shell out and call other processes.


Programming Clojure http://github.com/stuarthalloway/programming-clojure
Author: Stuart Halloway
Educational
Same License as Clojure

Sample code for the book "Programming Clojure" (http://www.pragprog.com/titles/shcloj/programming-clojure)


neman.cells
Author: Krešimir Šojathttp://bitbucket.org/ksojat/neman/
Category: dataflow
License: CPL 1.0

Cell are reference types that automaticly update there value whenever value of variable they depend on is changed. Cell value can depend on value of another cell, agent, atom, var, reference and any object that implement clojure.lang.IRef interface. Values can also be updated when property of normal Java object is changed if object provides some kind of notification system for property change (like swing or swt widgets).


neman.cli http://bitbucket.org/ksojat/neman/
Author: Krešimir Šojat
Category: command line arguments
License: CPL 1.0
Dependencies: apache commons-cli

Command line argument processing library using Apache commons-cli, supports automatic help generation, optional arguments and short and long argument names.


neman.core http://bitbucket.org/ksojat/neman/
Author: Krešimir Šojat
Category: object composition
License: CPL 1.0

Builder macro used for uniform way of constructing large object compositions like swing guis or XML DOM trees.


neman.css http://bitbucket.org/ksojat/neman/
Author: Krešimir Šojat
Category: CSS Web
License: CPL 1.0

Simple library for generation CSS files from Clojure with support for conversion of css3 properties to equivalent webkit and mozilla extensions.


neman.jetty http://bitbucket.org/ksojat/neman/
Author: Krešimir Šojat
Category: web server, jetty
License: CPL 1.0
Dependencies: jetty

Helpers for constructing Jetty configurations without using external Jetty XML files.


neman.json http://bitbucket.org/ksojat/neman/
Author: Krešimir Šojat
Category: JSON
License: CPL 1.0
Dependencies: jackson

Fast JSON encoder/decoder using Jackson JSON Processor.


neman.web http://bitbucket.org/ksojat/neman/
Author: Krešimir Šojat
Category: web
License: CPL 1.0
Dependencies: Jetty, truba

Simple Web framework based on Jetty web server.


neman.xml http://bitbucket.org/ksojat/neman/
Author: Krešimir Šojat
Category: xml, html, template engine
License: CPL 1.0
Dependencies: JDOM

Template engine for xml/html files with template inheritence.


truba http://bitbucket.org/ksojat/truba/
Author: Krešimir Šojat
Category: meta-clojure
License: CPL 1.0
Dependencies: Ant

Simple build that will download clojure (and jsr166y), clojure-contrib and clj-backtrace projects, compile them and install in your local Apache Ivy repository.


Dejcartes http://www.markmfredrickson.com/code
Author: Mark Fredrickson
Category: reporting, UI
License: LGPL
Depends: JFreeChart (included with source)

A wrapper around JFreeChart (http://jfree.org), a Java graphing/charting libraries. Allows use of native Clojure collections in charts (e.g. pie charts, scatter plots, histograms, etc).


Clojure+Processing http://github.com/rosado/clj-processing/tree/master
Author: Roland Sadowski (fyuryu on IRC).
Category: visualization, graphics, wrapper
License: Common Public License Version 1.0
Dependencies: a recent version of Processing (processing.org)
A wrapper for the Processing (processing.org) visualization library.


Cloak http://github.com/rosado/cloak/tree
Author: Roland Sadowski (fyuryu on IRC).
Category: automation tool, build tool
License: Common Public License Version 1.0
Dependencies: collection of my utility functions from libs4clj (http://github.com/rosado/libs4clj/tree/master), you can also use it with
Lancet (therefore use ant tasks etc)

Cloak is a simplistic automation tool written in Clojure. It's heavily inspired by ruby rake.


clj-record http://github.com/duelinmarkers/clj-record
Author: John Hume
Category: db
License: MIT
Dependencies: clojure-contrib

Inspired by Rails' ActiveRecord, a convenient persistence API with support for declarative validations, callbacks, and associations.


traceme http://github.com/kreg/traceme/tree
Author: Craig McDaniel
Category: REPL tool
Licence: EPL

Tracing of functions can be enabled/disabled through a simple toggle function.


saxon http://github.com/pjt/saxon/tree/master
Author: Perry Trolard
Category: XML, XPath, XQuery
License: MIT
Depends: Michael Kay's Saxon XSLT and XQuery Processor (http://
saxonica.com); included in distribution

saxon is a simple functional wrapper around Saxon's high-level APIs, taking stylesheets, XPaths, & XQuery expressions & returning Clojure functions which apply them to compiled XML documents. For XQuery & XPath, functions return lazy sequences of query results with "atomic types" (i.e. non-node results) converted to native Clojure (Java) datatypes.


re-rand http://github.com/weavejester/re-rand
Author: James Reeves
Categories: strings, testing
License: EPL
Dependencies: None

re-rand is a library for generating random strings from regular expressions. Useful for generating test data.


clj-android http://github.com/remvee/clj-android/
Author: Remco van 't Veer
Categories: android framework
License: MIT

Basic application framework for building Android applications using Clojure.


test-expect http://code.google.com/p/test-expect/
Author: Matt Clark
Tags: testing, mocking, expectations, stubbing
License: EPL
Dependencies: none (optional dependency on test-is)

Supports setting up and validating expectations on mocked dependency functions. Informative failure output for easy integration into any testing environment via functional override.


xg-model, xg-gf
http://code.google.com/p/explorersguild/wiki/XGModelAndGF
Author: mikel evins
Tags: generic functions, models, dispatch
License: EPL
Dependencies: none

Provides:

  • model: an implementation of extensible record types with optional value constraints on fields
  • gf:an implementation of CLOS_style generic functions. gf domains provide a means of defining dispatch algorithms. Example domains are provided that implement CLOS-style dispatch over Java classes, and simple predicate-dispatch. Included is a dispatch domain that implements multimethod dispatch on XG models.

clj-web-crawler
http://github.com/heyZeus/clj-web-crawler/tree/master
Author: Brian Doyle
Categories: Web, Automation
License: MIT
Dependencies: clojure, clojure-contrib, Apache commons-client 3.1

clj-web-crawler is a wrapper around the Apache commons-client Java library that allows you to easily crawl the web in a functional way.


Postal http://github.com/drewr/postal/tree/master
Author: Drew Raines
Category: Mail, protocols, networking
License: MIT

Postal is a library for constructing and sending RFC822-compliant Internet email messages. It wraps the JavaMail package for message and SMTP support. It supports sendmail natively.


Incanter http://github.com/liebke/incanter/tree/master
Author: David Edgar Liebke
Tags: statistics, numerical computing, plotting
License: EPL
Dependencies: Parallel Colt, JFreeChart, OpenCSV

Incanter is a collection statistical computing and plotting libraries with R-like semantics.


sdb http://github.com/clojure/sdb/tree/master
Author: Rich Hickey
Category: development, database
License: EPL

A Clojure library for working with Amazon SimpleDB


com.konato.ode
http://www.konato.com/2009/07/08/com-konato-ode/
Author: Stephane Rousseau
Categories: Scientific computing, Simulation, ODE
License: EPL

Dependencies: clojure.contrib.test-is for unit testing

Description: This is an ordinary differentials equations solvers and simulation library in Clojure. It does implements several fixed steps solvers: Euler, an Euler modified version, Runge-Kutta order 4 and a Runge-Kutta using parameters to implement RK4, Runge-Kutta-Fehlberg. It does implement a variable step ODE solver based on the popular rfk45 method. Others RK fixed or variable methods can be easily implemented using the RKP method. Functions are provided to convert State Space and Transfer functions to ODE who can be used by the system.


Conjure http://github.com/macourtney/Conjure
Author: Matt Courtney
Category: web
License: Apache 2.0

Description: Conjure is a Rails like framework for the Clojure programming language. The goal of Conjure is to simplify the development of database backed web applications.


cssgen http://github.com/paraseba/cssgen
Author: Sebastián Galkin
Category: web
License: EPL
Dependencies: Clojure Contrib

An embedded DSL to generate CSS code from clojure. You can define constants, nested rules and reusable mixins, using the full clojure power. Also permits arithmetic operations on dimensions and colors. CSS without the pain.


Marginlia http://fogus.me/fun/marginalia
Author: Fogus
Category: documentation
License: EPL

Description: A source documentation tool inspired by Docco that parses Clojure code and outputs an side-by-side source view with appropriate comments and docstrings aligned.


Trammel http://fogus.me/fun/trammel
Author: Fogus
Category: contracts programming
License: EPL

Description: Contracts programming with Clojure.


Neko https://github.com/sattvik/neko
Author: Daniel Solano Gómez
Category: mobile
License: EPL

Description: Neko is a toolkit designed to make Android development using Clojure easier and more fun. It accomplishes this by making adding Clojure support to your Android project easy and providing functional wrappers and alternatives to Android’s Java API.


clj-pdf https://github.com/yogthos/clj-pdf
Author: Dmitri Sotnikov
Category: report generation
License: LGPL

Description: clj-pdf allows declarative representation of PDF documents using Hiccup inspired notation. The library also supports adding tables and charts in the documents.

Labels: