Neocons 3.0.0 is released
TL;DR
Neocons is a feature rich idiomatic Clojure client for the Neo4J REST API.
3.0.0
is a major release. It has a major breaking API change
compared to 2.0.x
: every function now takes a connection as
an explicit argument instead of relying on a dynamic var.
Changes between Neocons 2.0.0 and 3.0.0
Breaking Change: Explicit Connection Argument
Neocons no longer uses a dynamic var to hold the state of the connection. This leads to significant changes to the API as the connection has to be passed to functions. The position of the connection argument is always the first argument for the sake of consistency:
(require '[clojurewerkz.neocons.rest :as nr])
(require '[clojurewerkz.neocons.rest.nodes :as nn])
;; with Neocons 2.0
(nr/connect! "http://localhost:7476/db")
(nn/create {:url "http://clojurewerkz.org/"})
;; with Neocons 3.0
(let [conn (nr/connect "http://localhost:7476/db")]
(nn/create conn {:url "http://clojurewerkz.org/"}))
Additionally connect!
function in clojurewerkz.neocons.rest
no longer
exists. This has been replaced by function connect
in clojurewerkz.neocons.rest
.
The connect
function has the same arguments as the connect!
function
only it returns a Connection
record.
The Connection
record has a key called :options
which can be used to pass
additional parameters to be used by clj-http
like debug
.
Contributed by Rohit Aggarwal.
Clojure 1.6
Neocons now depends on org.clojure/clojure
version 1.6.0
. It is
still compatible with Clojure 1.4 and if your project.clj
depends on
a different version, it will be used, but 1.6 is the default now.
Cheshire 5.3
Neocons now uses Cheshire 5.3.
clj-http upgraded to 0.9.1
Neocons now uses clj-http 0.9.1.
Neo4J 2.0 Index Creation Fix
Neocons will now use a key name accepted by Neo4J 2.0.0 GA and later version when creating indexes.
Contributed by Rohit Aggarwal.
Change Log
We encourage all users to give this version a try.
Neocons change log is available on GitHub.
Documentation Updates
Neocons documentation has been updated to cover the new API.
Thank You, Contributors
We’d like to thank Rohit Aggarwal for single-handedly doing all the work in Neocons 3.0. Contributors like Rohit is why open source software works as well as it does.
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
- Cassaforte, a Cassandra client built around CQL 3
- 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