This page is a historical document about the splitting of the old "monolithic" contrib in the Clojure 1.2 timeframe when many of the initial contrib libraries were created. This info is no longer maintained and may be out of date. See Contrib Libs for up to date info.
If a clojure.contrib namespace is listed here but has no migration details, that means no one has volunteered to maintain that namespace. Part of the rationale for modular contrib is that there should be an active maintainer going forward so that the library can be kept compatible with new versions of Clojure. All the new modular contrib libraries are compatible with Clojure 1.2.0 thru 1.4.0 (and are also being automatically tested with Clojure 1.5 as it is being developed - as well as being tested with a number of different JDKs!).
If a clojure.contrib namespace is not listed here, it is most likely an old namespace that was either migrated somewhere else or deprecated as part of Clojure 1.2 (e.g., clojure.contrib.duck-streams mostly migrated to clojure.java.io, clojure.contrib.pprint migrated to clojure.pprint, clojure.contrib.shell and clojure.contrib.shell-out migrated to clojure.java.shell, clojure.contrib.string migrated to clojure.string, clojure.contrib.http.agent was deprecated - clj-http.
This section aims to document how to migrate from "old" contrib to "new" contrib.
-
clojure.contrib.accumulators
-
clojure.contrib.agent-utils
-
clojure.contrib.base64
-
Replaced by clojure.data.codec - lead Alex Taggart.
-
-
clojure.contrib.classpath
-
Migrated to clojure.java.classpath - lead Alessandra Sierra.
-
-
clojure.contrib.combinatorics
-
Migrated to clojure.math.combinatorics - lead Mark Engelberg.
-
-
clojure.contrib.command-line
-
Replaced by clojure.tools.cli (based on the clargon library) - lead Gareth Jones.
-
-
clojure.contrib.complete
-
clojure.contrib.complex-numbers
-
clojure.contrib.cond
-
clojure.contrib.condition
-
Replaced by Slingshot - Lead Steve Gilardi
-
-
clojure.contrib.core
-
Partly migrated to clojure.core.incubator - lead Rich Hickey.
-
-
clojure.contrib.dataflow
-
clojure.contrib.datalog
-
Michael Fogus has a project bacwn on Github based on this library.
-
-
clojure.contrib.def
-
Partly migrated to clojure.core.incubator - lead Rich Hickey.
-
Notes:
-
defvar
: as of Clojure 1.3, you can specify a docstring in adef
form:(def my-var "This is my docstring" some-value)
-
-
-
clojure.contrib.error-kit
-
Replaced by Slingshot - Lead Steve Gilardi
-
-
clojure.contrib.except
-
clojure.contrib.fcase
-
fcase replaced by Clojure 1.3
clojure.core/condp
. Other macros easily implemented usingcondp
if desired.
-
-
clojure.contrib.find-namespaces
-
Migrated to clojure.tools.namespace - lead Alessandra Sierra.
-
-
clojure.contrib.fnmap
-
clojure.contrib.gen-html-docs
-
clojure.contrib.generic
-
Migrated to clojure.algo.generic - lead Konrad Hinsen.
-
-
clojure.contrib.graph
-
Migrated to clojure.algo.graph - lead Timothy Baldridge.
-
-
clojure.contrib.greatest-least
-
clojure.contrib.import-static
-
clojure.contrib.jar
-
clojure.contrib.java-utils
-
clojure.contrib.jmx
-
Migrated to clojure.java.jmx - lead Stuart Halloway.
-
-
clojure.contrib.json
-
Migrated to clojure.data.json - lead Alessandra Sierra.
-
-
clojure.contrib.lazy-seqs
-
clojure.contrib.lazy-xml
-
Migrated to clojure.data.xml - lead Alan Malloy.
-
-
clojure.contrib.load-all
-
clojure.contrib.logging
-
Migrated to clojure.tools.logging - lead Alex Taggart.
-
-
clojure.contrib.macro-utils
-
Migrated to clojure.tools.macro - lead Konrad Hinsen.
-
-
clojure.contrib.macros
-
Migrated to clojure.tools.macro - lead Konrad Hinsen.
-
-
clojure.contrib.map-utils
-
clojure.contrib.math
-
Migrated to clojure.math.numeric-tower - lead Mark Engelberg.
-
-
clojure.contrib.miglayout
-
clojure.contrib.mmap
-
clojure.contrib.mock
-
clojure.contrib.monadic-io-streams
-
clojure.contrib.monads
-
Migrated to clojure.algo.monads - lead Konrad Hinsen.
-
-
clojure.contrib.ns-utils
-
clojure.contrib.parent
-
clojure.contrib.priority-map
-
Migrated to clojure.data.priority-map - lead Mark Engelberg.
-
-
clojure.contrib.probabilities
-
clojure.contrib.profile
-
clojure.contrib.prxml
-
clojure.contrib.reflect
-
clojure.contrib.repl-ln
-
clojure.contrib.repl-utils
-
Migrated to
clojure.repl
andclojure.java.javadoc
.show
functionality similar toclojure.reflect/reflect
. Any equivalents for these?expression-info
,run
,run*
-
-
clojure.contrib.seq
-
clojure.contrib.server-socket
-
clojure.contrib.set
-
Migrated to
clojure.set
, exceptproper-subset?
andproper-superset?
, which are easily implemented usingsubset?
andsuperset?
-
-
clojure.contrib.singleton
-
clojure.contrib.sql
-
Migrated to clojure.java.jdbc - lead Sean Corfield.
-
-
clojure.contrib.standalone
-
clojure.contrib.stream-utils
-
clojure.contrib.strint
-
Migrated to clojure.core.incubator - lead Rich Hickey.
-
-
clojure.contrib.swing-utils
-
clojure.contrib.trace
-
Migrating to clojure.tools.trace - lead Luc Prefontaine
-
-
clojure.contrib.types
-
clojure.contrib.with-ns
-
clojure.contrib.zip-filter
-
Migrated to clojure.data.zip - lead Aaron Bedra.
-
This section lists new contrib namespaces that do not correspond to old contrib namespaces and is provided for completeness / documentation purposes.
-
-
A Clojure library designed to provide facilities for async programming and communication. - lead Rich Hickey.
-
-
clojure.core.cache Extensible caching - lead Michael Fogus.
-
-
Contract programming - lead Michael Fogus.
-
-
-
An implementation of the confluently persistent vector data structure introduced in Bagwell, Rompf, "RRB-Trees: Efficient Immutable Vectors", EPFL-REPORT-169879, September, 2011. - lead Michał Marczyk
-
-
-
Logic programming - lead David Nolen.
-
-
-
Structural pattern matching - lead David Nolen.
-
-
-
Pluggable memoization, builds on core.cache - lead Michael Fogus.
-
-
-
Optional type checking for Clojure - lead Ambrose Bonnaire-Sergeant
-
-
-
Unification (like Prolog) - lead Michael Fogus.
-
-
-
Comma-Separated-Value file processing; formerly cljcsv - lead Jonas Enlund.
-
-
-
Finger tree persistent data structures - lead Chris Houser.
-
-
-
Read and write fressian data. See https://github.com/Datomic/fressian/wiki
-
-
-
Data generators (extracted from clojure.test.generative) - lead Stuart Halloway.
-
-
-
Java Beans and properties support - lead Cosmin Stejerean.
-
-
-
Benchmark (and regression) suite for Clojure - lead Stuart Halloway.
-
-
-
Testing library based on data generation (see clojure.data.generators) - lead Stuart Halloway.
-
-
-
REPL client and server - lead Chas Emerick.
-
-
-
Clojure reader in Clojure - lead Nicola Mometto.
-
-
-
An analyzer for Clojure code, host agnostic - lead Nicola Mometto
-
-
-
An analyzer for Clojure on the JVM code, written on top of tools.analyzer - lead Nicola Mometto
-
-
clojure.tools.analyzer.js - DEAD
-
An analyzer for Clojurescript code, written on top of tools.analyzer - lead Nicola Mometto
-
-
-
A JVM bytecode generator, using tools.analyzer.jvm as frontend - lead Nicola Mometto
-