TL;DR

Neocons is a feature rich idiomatic Clojure client for the Neo4J REST API.

1.1.0 is a minor release that includes several minor improvements and bug fixes and is 100% backwards-compatible with 1.0.x.

Next release of Neocons will be 2.0. It will target development of Neo4J 2.0 closely and may include breaking API changes.

Changes between Neocons 1.0.x and 1.1.0

ClojureWerkz Support Upgrade

Neocons now uses ClojureWerkz Support 0.15.0.

Correct URI Path Encoding

Neocons now correctly encodes all parts of URIs, which means index keys and values can contain whitespace and Unicode characters, for example.

Keys with colons are now handled correctly (as of Urly 2.0.0-alpha5).

GH issue: #20

clj-http Upgrade

Neocons now uses clj-http 0.6.4.

clojurewerkz.neocons.rest.relationship/maybe-create Now Fully Supports Ids

clojurewerkz.neocons.rest.relationship/maybe-create now correctly works with node ids as well as Node records.

GH issue: #19.

More Informative Exceptions

HTTP exceptions bubbling up now will carry more information (namely the response :body).

Contributed by Adrian Gruntkowski.

clojurewerkz.neocons.rest.relationships/get-many

clojurewerkz.neocons.rest.relationships/get-many is a new function that fetches multiple relationships by id in a single request:

(require '[clojurewerkz.neocons.rest.relationships :as rel])

(rel/get-many [id1 id2 id3])

Contributed by Adrian Gruntkowski.

Initial Spatial Plugin Support

Neocons now has initial support for the Neo4J Spatial plugin in the clojurewerkz.neocons.spatial namespace.

Contributed by Kyle Goodwin.

Cheshire For JSON Serliazation

Neocons now uses (and depends on) Cheshire for JSON serialization. clojure.data.json is no longer a dependency.

Pass Configuration When Creating Node Indexes

clojurewerkz.neocons.rest.nodes/create-index now correctly passes index configuration to Neo4J Server. Reported in #6.

Change Log

We recommend all users to upgrade to 1.1.0.

Neocons change log is available on GitHub.

Neocons is a ClojureWerkz Project

Neocons is part of the group of libraries known as ClojureWerkz, together with

  • Langohr, a Clojure client for RabbitMQ that embraces the AMQP 0.9.1 model
  • Elastisch, a minimalistic Clojure client for ElasticSearch
  • Monger, a Clojure MongoDB client for a more civilized age
  • Welle, a Riak client with batteries included
  • Quartzite, a powerful scheduling library

and several others. If you like Neocons, you may also like our other projects.

Let us know what you think on Twitter or on the Clojure mailing list.

Michael on behalf of the ClojureWerkz Team