TL;DR

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

1.0.0-beta5 is a development milestone release that updates Reactor to 1.1.0.M1 and includes a few bug fixes and minor API refinements.

Changes between 1.0.0-beta4 and 1.0.0-beta5

Environment Reuse

Previously Meltdown instantiated a new Environment per clojurewerkz.meltdown.reactor/create invocation without a provided environment. This lead to excessive thread creation which could eventually exhaust system resources.

Meltdown 1.0.0-beta5 will reuse the same environment for all created reactors unless its asked to use a specific Environment instance.

Environment Functions

clojurewerkz.meltdown.env/environment is a function that returns a shared environment. To create a completely new environment from scratch, use clojurewerkz.meltdown.env/create.

clojurewerkz.meltdown.env/shutdown shuts down environments and all associated dispatchers.

clojurewerkz.meltdown.fn/->filter

clojurewerkz.meltdown.fn/->filter is a new function that reifies Reactor filters from Clojure functions.

Changes between 1.0.0-beta3 and 1.0.0-beta4

Moved Functions

clojurewerkz.meltdown.streams/fn->function and clojurewerkz.meltdown.streams/fn->predicate are removed, use clojurewerkz.meltdown.fn/->function and clojurewerkz.meltdown.fn/->predicate instead.

Streams Flushing

Stream operations are now lazier in Reactor. To enforce stream sources to be drained, use clojurewerkz.meltdown.streams/flush which accepts a stream or deferred.

Reactor Update

Reactor is updated to 1.1.0.M1 which has multiple breaking API changes.

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