The ClojureWerkz Blog

News and updates about ClojureWerkz projects

Scrypt 1.1.0 Is Released

TL;DR

ClojureWerkz Scrypt is a tiny Clojure library for working with scrypt, a key derivation function. Scrypt can be used to hash passwords and generate cryptographic keys. It is an alternative to Bcrypt and PBKDF2.

Version 1.1.0 makes it possible to use a native scrypt implementation.

Changes Between 1.0.0 and 1.1.0

Lambdaworks Scrypt Upgrade

Lambdaworks Scrypt is updated to 1.4.0, which makes it possible to use a native implementation of the library.

To quote the docs:

1
2
3
4
5
6
The system property "com.lambdaworks.jni.loader" may be set to override
the default native library loader with one of the following values:

 * nil: refuse to load native libraries and revert to pure Java implementation
 * jar: extract native library from jar and load with System.load
 * sys: use System.loadLibrary, which may require java.library.path to be set

Clojure 1.3 Support Dropped

Scrypt no longer officially supports Clojure 1.3.

Scrypt is a ClojureWerkz Project

Scrypt 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
  • Neocons, a Clojure client for the Neo4J REST API
  • Cassaforte, a Clojure client for Cassandra built around CQL

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

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

About the Author

Michael on behalf of the ClojureWerkz Team.

Langohr 2.3.2 Is Released

TL;DR

Langohr is a small Clojure RabbitMQ client.

2.3.2 is a minor feature and bug fix release based on community feedback on connection recovery.

Changes between Langohr 2.2.1 and 2.3.2

Deprecations

langohr.core/automatically-recover? is deprecated

Use langohr.core/automatic-recovery-enabled? instead.

Recovery Predicates

langohr.core/automatic-recovery-enabled? and langohr.core/automatic-topology-recovery-enabled? are new predicate functions that return true if automatic connection and topology recovery, respectively, is enabled for the provided connection.

Topology Recovery Fails Quickly

Topology recovery now fails quickly, raising com.novemberain.langohr.recovery.TopologyRecoveryException which carries the original (cause) exception.

Previously if recovery of an entity failed, other entities were still recovered. Now topology recovery fails on the first exception, making issues more visible.

Automatic Recovery Can Be Disabled By Passing nil

Automatic recovery options now respect both false and nil values.

Change Log

Langohr change log is available on GitHub.

Langohr is a ClojureWerkz Project

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

  • Elastisch, a minimalistic well documented Clojure client for ElasticSearch
  • Cassaforte, a Clojure Cassandra client built around CQL 3.0
  • Monger, a Clojure MongoDB client for a more civilized age
  • Neocons, a client for the Neo4J REST API
  • Quartzite, a powerful scheduling library

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

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

About The Author

Michael on behalf of the ClojureWerkz Team

Langohr 2.2.1 Is Released

TL;DR

Langohr is a small Clojure RabbitMQ client.

2.2.1 is a bug fix release.

Changes between Langohr 2.2.0 and 2.2.1

Automatic Topology Recovery Doesn’t Kick In When Disabled

Automatic topology recovery no longer kicks in when it is disabled.

Change Log

Langohr change log is available on GitHub.

Langohr is a ClojureWerkz Project

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

  • Elastisch, a minimalistic well documented Clojure client for ElasticSearch
  • Cassaforte, a Clojure Cassandra client built around CQL 3.0
  • Monger, a Clojure MongoDB client for a more civilized age
  • Neocons, a client for the Neo4J REST API
  • Quartzite, a powerful scheduling library

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

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

About The Author

Michael on behalf of the ClojureWerkz Team

Elastisch 1.4.0 Is Released

TL;DR

Elastisch is a battle tested, small but feature rich and well documented Clojure client for ElasticSearch. It supports virtually every Elastic Search feature and has solid documentation.

1.4.0 is a minor feature and usability release. We recommend all users to upgrade to it.

Changes between Elastisch 1.3.0 and 1.4.0

Native Document Supports Optimistic Locking

The native document API now supports the same :version option for optimistic locking that the REST api does.

Contributed by Richie Vos (Groupon).

GH issues: #56.

ElasticSearch Exceptions

Elastisch now uses ElasticSearch exceptions instead of generic ones in the native client.

Contributed by Richie Vos (Groupon).

GH issues: #54, #57.

ElasticSearch Native Client Upgrade

Elastisch now depends on ElasticSearch native client version 0.90.8.

clojurewerkz.elastisch.native.document/update-with-script Fix

clojurewerkz.elastisch.native.document/update-with-script invoked without script parameters no longer raises an exception.

Cheshire Upgrade

Cheshire dependency has been updated to 5.3.1.

Elastisch change log is available on GitHub.

Thank You, Contributors

Kudos to Richie Vos for contributing to this release.

Elastisch is a ClojureWerkz Project

Elastisch 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
  • Monger, a Clojure MongoDB client for a more civilized age
  • Cassaforte, a Clojure Cassandra client
  • Titanium, a Clojure graph library
  • Neocons, a client for the Neo4J REST API
  • Welle, a Riak client with batteries included
  • Quartzite, a powerful scheduling library

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

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

About the Author

Michael on behalf of the ClojureWerkz Team

Validateur 1.7.0 Is Released

TL;DR

Validateur is a functional validations library inspired by Ruby’s ActiveModel. Validateur 1.7 introduces ClojureScript support.

Changes between Validateur 1.6.0 and 1.7.0

ClojureScript Support

Validateur now supports ClojureScript.

Contributed by Konstantin Shabanov.

Change Log

We recommend all users to upgrade to 1.7.0.

Validateur change log is available on GitHub.

Thank You, Contributors

Konstantin Shabanov contributed key improvements in this release.

Validateur is a ClojureWerkz Project

Validateur 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
  • Monger, a Clojure MongoDB client for a more civilized age
  • Elastisch, a minimalistic Clojure client for ElasticSearch
  • Cassaforte, a Clojure Cassandra client built around CQL
  • Neocons, a client for the Neo4J REST API
  • Welle, a Riak client with batteries included
  • Quartzite, a powerful scheduling library

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

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

About The Author

Michael on behalf of the ClojureWerkz Team

Monger 1.7.0 Is Released

TL;DR

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.

1.7.0 is a minor backwards-compatible release that updates MongoDB Java driver and makes two dependencies optional.

Changes between 1.6.0 and 1.7.0

MongoDB Java Driver Update

MongoDB Java driver dependency has been updated to 2.11.3.

Ragtime Dependency Dropped

Ragtime is now an optional dependency: if your project uses monger.ragtime, you need to add Ragtime to your own project.clj:

1
[ragtime/ragtime.core          "0.3.4"]

Validateur Dependency Dropped

Validateur is no longer a dependency.

Change Log

Monger change log is available on GitHub.

Monger is a ClojureWerkz Project

Monger 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
  • Cassaforte, a Clojure Cassandra client built around CQL
  • Elastisch, a minimalistic Clojure client for ElasticSearch
  • Welle, a Riak client with batteries included
  • Neocons, a client for the Neo4J REST API
  • Quartzite, a powerful scheduling library

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

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

About the Author

@michaelklishin on behalf of the ClojureWerkz Team

Langohr 2.2.0 Is Released

TL;DR

Langohr is a small Clojure RabbitMQ client.

2.2.0 is a usability improvement release.

Changes between Langohr 2.1.x and 2.2.0

Automatic Topology Recovery Tracks Entities Per Connection

Automatic topology recovery now tracks entities (exchanges, queues, bindings, and consumers) per connection. This makes it possible to, say, declare an exchange on one channel, delete it on another channel and not have it reappear.

Suggested by Jonathan Halterman.

RabbitMQ Java Client Upgrade

RabbitMQ Java client dependency has been updated to 3.2.2.

clj-http Upgrade

clj-http dependency has been updated to 0.7.8.

Cheshire Upgrade

Cheshire dependency has been updated to 5.3.1.

Change Log

Langohr change log is available on GitHub.

Langohr is a ClojureWerkz Project

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

  • Elastisch, a minimalistic well documented Clojure client for ElasticSearch
  • Cassaforte, a Clojure Cassandra client built around CQL 3.0
  • Monger, a Clojure MongoDB client for a more civilized age
  • Neocons, a client for the Neo4J REST API
  • Quartzite, a powerful scheduling library

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

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

About The Author

Michael on behalf of the ClojureWerkz Team

Meltdown 1.0.0-beta3 Is Released

TL;DR

Meltdown is a Clojure interface to Reactor, an asynchronous programming, event passing and stream processing toolkit for the JVM.

1.0.0-beta3 is a development milestone release that updates Reactor to 1.0.0.RELEASE.

Changes between 1.0.0-beta2 and 1.0.0-beta3

Reactor Update

Reactor is updated to 1.0.0.RELEASE.

Change log

Meltodwn change log is available on GitHub.

Meltdown is a ClojureWerkz Project

Meltdown 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 Clojure client for ElasticSearch
  • Monger, a Clojure MongoDB client for a more civilized age
  • Cassaforte, a Clojure Cassandra client
  • Titanium, a Clojure graph library
  • Neocons, a client for the Neo4J REST API
  • Quartzite, a powerful scheduling library

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

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

About the Author

Michael on behalf of the ClojureWerkz Team

Machine Head 1.0.0-beta6 Is Released

TL;DR

Machine Head is a small Clojure MQTT client.

1.0.0-beta6 is a development milestone that introduces one usability improvement.

Changes Between 1.0.0-beta5 and 1.0.0-beta6

:clean-session Accepts false

It is now possible to set :clean-session to `false.

Contributed by Martin Trojer.

Change Log

Machine Head change log is available on GitHub.

Machine Head is a ClojureWerkz Project

Machine Head 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
  • Neocons, a feature rich Clojure client for Neo4J REST API

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

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

About the Author

Michael on behalf of the ClojureWerkz Team

Langohr 2.1.0 Is Released

TL;DR

Langohr is a small Clojure RabbitMQ client.

2.1.0 is a usability improvement & bug fix release.

Changes between Langohr 2.0.x and 2.1.0

Full Channel State Recovery

Channel recovery now involves recovery of publisher confirms and transaction modes.

No Zombie Bindings After Recovery

Langohr now correctly removes bindings from the list of bindings to recover when a binding is removed using queue.unbind or exchange.unbind.

Change Log

Langohr change log is available on GitHub.

Langohr is a ClojureWerkz Project

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

  • Elastisch, a minimalistic well documented Clojure client for ElasticSearch
  • Cassaforte, a Clojure Cassandra client built around CQL 3.0
  • Monger, a Clojure MongoDB client for a more civilized age
  • Neocons, a client for the Neo4J REST API
  • Quartzite, a powerful scheduling library

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

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

About The Author

Michael on behalf of the ClojureWerkz Team