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