== 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' inheritence:
http://tinyurl.com/clojure-classes
3rd party dep: http://www.graphviz.org/
* net.n01se.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.
--Chouser
Name: VimClojure
URL: http://kotka.de/projects/clojure/vimclojure.html
Author: Meikel Brandmeyer
Categories: editor, IDE
License: MIT
Description:
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.
Name: Gorilla
URL: http://kotka.de/projects/clojure/gorilla.html
Author: Meikel Brandmeyer
Categories: editor, IDE
License: MIT
Description:
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.
Name: CljTags
URL: http://bitbucket.org/kotarak/cljtags
Author: Meikel Brandmeyer
Categories: editor, IDE
License: MIT
Description:
A simple program to generate tags for use with Vim.
Name: Monad
URL: http://bitbucket.org/kotarak/monad
Author: Meikel Brandmeyer
Categories: development
License: MIT
Description:
A monad library using multimethods to implement Haskell-style
monads.
Name: ClojureCheck
URL: http://kotka.de/projects/clojure/clojurecheck.html
Author: Meikel Brandmeyer
Categories: testing
License: MIT
Description:
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.
Name: Parser
URL: http://kotka.de/projects/clojure/parser.html
Author: Meikel Brandmeyer
Categories: parsing
License: MIT
Description:
An implementation of Haskell's Parsec for Clojure. It provides
a library to create parser combinators in Clojure. Depnds on
Monad.
Name: LazyMap
URL: http://kotka.de/projects/clojure/lazy-map.html
Author: Meikel Brandmeyer
Categories: development
License: MIT
Description:
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 loosing lazyness.
Name: ClojureQL
URL: http://github.com/Lau-of-DK/clojureql/tree/master
Author: Lau B. Jensen, Meikel Brandmeyer
Categories: db
License: EPL
Description:
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.
Thanks for putting up such a list, Rich. It's awesome to see
the community grow. And this list will be a clear indicator!
Sincerly
Meikel
> I'd like to try to get a directory of Clojure libs together and up on
> the Clojure site. Towards that end, I'd appreciate it, if you are the
> author of a Clojure library (including contrib authors!), you reply in
> this thread with:
...
Name: clojure.contrib.monads
URL: http://code.google.com/p/clojure-contrib/
Author: Konrad Hinsen
Category: development
License: EPL
Macros for defining and using monads, commonly used monads and monad
transformers
Name: clojure.contrib.probabilities
URL: http://code.google.com/p/clojure-contrib/
Author: Konrad Hinsen
Category: maths
License: EPL
Probability distributions and random numbers
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.
Is this in any way related to JSON code in clojure-contrib? (I guess
not)
Is unification planned?
--J.
Programming Clojure
http://github.com/stuarthalloway/programming-clojure
Stuart Halloway
Educational
Same License as Clojure
Sample code for the book "Programming Clojure" (http://www.pragprog.com/titles/shcloj/programming-clojure
)
All of my libraries (now and probably in the future) depend on clojure-
contrib. Does that even count as third-party?
- Mark Fredrickson
mark.m.fr...@gmail.com
http://www.markmfredrickson.com
Inspired by Rails' ActiveRecord, a convenient persistence API with
support for declarative validations, callbacks, and associations.
> People regularly post here about Clojure libraries they are working
> on, and it is great to see the explosion of new libs for Clojure!
>
> I'd like to try to get a directory of Clojure libs together and up
> on the Clojure site. Towards that end, I'd appreciate it, if you
> are the author of a Clojure library (including contrib authors!),
> you reply in this thread with:
>
> The name of your library
> Library home page URL
> Your name
> Category (db, web, UI, parsing etc)
> License
> A one-paragraph description. Include 3rd party dependencies if any.
Name: Postal
URL: http://github.com/drewr/postal/tree/master
Author: Drew Raines
Category: Mail, protocols, networking
License: MIT
Description: 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.
Since email is such a common need, this might make more sense as a
contrib component. It scratched an itch I had in a recent project,
so I went ahead and modularized it on its own, but I'd be happy to
merge this in as clojure.contrib.mail so we all have fewer jars to
wrangle.
-Drew
> Is there support in this lib currently for reusing an existing
> MailSession (or passing in say "java://comp/env/mail/Session" and
> having it handle the lookup?
>
> Shouldn't be hard to add in if its not already there?
I've added the ability to supply an existing Session (created from a
JNDI context or otherwise) in the message meta.
http://github.com/drewr/postal/commit/ed5d83a4fdbf5e3e043f2080b38447c2113fcacc
-Drew
People regularly post here about Clojure libraries they are working
on, and it is great to see the explosion of new libs for Clojure!
I'd like to try to get a directory of Clojure libs together and up on
the Clojure site. Towards that end, I'd appreciate it, if you are the
author of a Clojure library (including contrib authors!), you reply in
this thread with:
The name of your library
Library home page URL
Your name
Category (db, web, UI, parsing etc)
License
A one-paragraph description. Include 3rd party dependencies if any.
> I'd like to try to get a directory of Clojure libs together and up on
> the Clojure site. Towards that end, I'd appreciate it, if you are the
> author of a Clojure library (including contrib authors!), you reply in
> this thread with:
...
Name: clojure.contrib.macro-utils
URL: http://code.google.com/p/clojure-contrib/
Author: Konrad Hinsen
Category: development
License: EPL
Local macros (macrolet), local symbol macros (symbol-macrolet), and
global symbol macros (defsymbolmacro)
Name: clojure.contrib.types
URL: http://code.google.com/p/clojure-contrib/
Author: Konrad Hinsen
Category: development
License: EPL
Utilities for defining data types, and in particular algebraic data
types
Name: clojure.contrib.accumulators
URL: http://code.google.com/p/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, ...)
It is also one of the most useful Clojure libraries that I found
until now. Thanks a lot! I can finally start to consider using
Clojure for work seriously.
Konrad.
Sincerely
Meikel