Releases: agemooij/riak-scala-client
Release 0.8.1.2 for Akka 2.2-RC1 and Spray 1.2-M8
This is a minor update release to bring riak-scala-client up to date with Spray now that it has finally released the long-awaited M8 milestone (and I've returned from my well-deserved holidays).
This 0.8.1.2 release is compatible with Akka 2.2-RC1 and Spray 1.2-M8.
Please note that it is not compatible with Akka 2.2-RC2! This is because that release is binary incompatible with Spray 1.2-M8.
If you are looking for a release compatible with Akka 2.1.x and/or Spray 1.1-M8, please use the 0.8.1.1 release instead.
Changes include:
- Some internal code changes to bring the code up to date with the Spray M8 API
- Better handling of Riak tombstone values during conflict resolution (tombstoned values will now be ignored)
- The default value of the
add-client-id-header
configuration property has been changed tono
. This better reflects common practise since virtually no one is running pre-1.0 versions of Riak anymore and all post-1.0 versions support the newer vnode ids. Of course you can still set it toyes
in your application.conf if you want. - The client will no longer erroneously add the ETag and Last-Modified headers in requests to Riak. These are response headers and have no place in a request.
- General code cleanup
A release with actual new features will follow soon. Work was on hold for a few months while other things had a higher priority but priority has now been restored and I'll be adding more of the missing Riak features, solving your issues, and merging in your pull requests as soon as possible! My apologies for the temporary slow down.
Happy Riakking!
Age
Release 0.8.1.1 for Akka 2.1.4 and Spray 1.1-M8
This is a minor update release to bring riak-scala-client up to date with Spray now that it has finally released the long-awaited M8 milestone (and I've returned from my well-deserved holidays).
This 0.8.1.1 release is compatible with Akka 2.1.x (compiled against 2.1.4) and Spray 1.1-M8.
If you are looking for a release compatible with Akka 2.2-RC1 and Spray 1.2-M8, please use the 0.8.1.2 release instead.
Changes include:
- Some internal code changes to bring the code up to date with the Spray M8 API
- Better handling of Riak tombstone values during conflict resolution (tombstoned values will now be ignored)
- The default value of the
add-client-id-header
configuration property has been changed tono
. This better reflects common practise since virtually no one is running pre-1.0 versions of Riak anymore and all post-1.0 versions support the newer vnode ids. Of course you can still set it toyes
in your application.conf if you want. - The client will no longer erroneously add the ETag and Last-Modified headers in requests to Riak. These are response headers and have no place in a request.
- General code cleanup
A release with actual new features will follow soon. Work was on hold for a few months while other things had a higher priority but priority has now been restored and I'll be adding more of the missing Riak features, solving your issues, and merging in your pull requests as soon as possible! My apologies for the temporary slow down.
Happy Riakking!
Age
Release 0.8.0
After three months of hacking, I'm proud to announce a new Riak Scala client library based on Akka and Spray and simply called riak-scala-client. It aims to be easy to use, non-blocking, and fast, in that order.
This is the first public release but I've been testing it on a large project since January and it was time to let other people kick the tires and tell me what I did wrong (or right).
The client is purely based on the http API and currently it supports the following Riak features:
- Fetch
- Store
- Delete
- Secondary Indexes (2i)
- Fetching exact matches
- Fetching ranges
- Storing with indexes
- Getting/setting bucket properties
- ping
Other features include:
- Completely non-blocking thanks to Scala 2.10 Futures, Akka, and Spray
- Transparent integration with Akka projects through an Akka extension
- An untyped
RiakValue
class for interacting with raw Riak values and their associated
meta data (vclock, etag, content type, last modified time, indexes, etc.) - A typed
RiakMeta[T]
class for interacting with deserialized values while retaining
their associated meta data (vclock, etag, content type, last modified time, indexes, etc.) - Customizable conflict resolution on all fetches (and stores when
returnbody=true
) - Automatic (de)serialization of Scala (case) classes using type classes
- builtin spray-json (de)serializers
- Automatic indexing of Scala (case) classes using type classes
- Auto-retry of fetches and stores (a standard feature of the underlying spray-client library)
The following Riak (http) API features are still missing and will follow soon:
- Link walking
- Map Reduce
- Listing all keys in a bucket
- Listing all buckets
- Conditional fetch/store semantics (i.e. If-None-Match and If-Match for ETags and
If-Modified-Since and If-Unmodified-Since for LastModified) - Node Status
Check it out at: http://riak.scalapenos.com/