Monger is an idiomatic Clojure MongoDB driver for a more civilized age.
It has batteries included, offers powerful expressive query DSL, strives to support every MongoDB 2.0+ feature and has sane defaults.
It also has solid documentation.
Langohr no longer implements automatic connection recovery
of its own. The feature is still there and there should be no
behaviour changes but the functionality has now been pushed
“upstream” in the Java client, so Langohr now relies on it
to do all the work.
There is two public API changes:
com.novemberain.langohr.Recoverable is gone, langohr.core/on-recovery
now uses com.rabbitmq.client.Recoverable instead in its signature.
Server-named queues will change after recovery. Use langohr.core/on-queue-recovery
to register a listener for queue name change.
Cassaforte is a Clojure client for
Apache Cassandra and DataStax Enterprise. It is built around CQL 3 and focuses on ease
of use. You will likely find that using Cassandra from Clojure has
never been so easy.
2.0.0 is a major release that introduces breaking API changes, new features and
compatibility with Cassandra 2.1.
Providing a :cipher-suites key in the :ssl connection option allows to specify cipher suites
that are enabled when connecting to a cluster with SSL.
The value of this key is a Seq of Strings (e.g. a vector) where each item specifies a cipher suite:
The :cipher-suites key is optional and may be omitted, in which case Datastax Java driver’s
default cipher suites (com.datastax.driver.core.SSLOptions/DEFAULT_SSL_CIPHER_SUITES) are enabled.
This can be used to work around the need to install Java Cryptography Extension (JCE) Unlimited Strength
Jurisdiction Policy Files required by the default set of cipher suites. TLS_RSA_WITH_AES_128_CBC_SHA
is a suite in the default set that works with the standard JCE. E.g. by specifying just that one,
as in the code example, the standard JCE is enough.
To preserve Cassandra 2.0 compatibility yet continue using the most recent Cassandra Java driver
Cassaforte now uses native protocol v2 by default. v3 can be opted into
using the :protocol-version connection option (with value of 3).
Double Licensed Under APL 2.0 and EPL 1.0
The project is now double-licensed under the Eclipse Public License 1.0
and Apache Public License 2.0. The codebase now includes APL 2.0 headers.
License files for both APL 2.0 and EPL 1.0 are included
in the distribution.
Fetch Size Support
(Internal to the client) automatic paging of result set rows now can be configured
or disabled altogether, e.g. when running into problems similar to CASSANDRA-6722.
clojurewerkz.cassaforte.client/with-fetch-size is a macro that does that:
(require'[clojurewerkz.cassaforte.client:ascc]);; alter page size(cc/with-fetch-size8192(comment "SELECT queries go here"));; disable internal client paging(cc/with-fetch-sizeInteger/MAX_VALUE(comment "SELECT queries go here"))
Default fetch size is unaltered (Cassaforte relies on the Java driver default). This setting
only makes sense for a certain subset of SELECT queries.
Clojure 1.4 and 1.5 Support Dropped
Cassaforte now requires Clojure 1.6.0.
Collections Converted to Clojure Data Structures
Cassandra maps, sets and lists are now automatically converted to their
immutable Clojure counterparts.
It is now possible to connect to a node and switch to a namespace
using a URI string:
(ns cassaforte.docs(:require[clojurewerkz.cassaforte.client:ascc]));; connects to node 127.0.0.1:9042 and uses "new_cql_keyspace" as keyspace(cc/connect-with-uri"cql://127.0.0.1:9042/new_cql_keyspace")
:compression is a new option that can be used when connecting: