Skip to content
This repository has been archived by the owner on Dec 6, 2023. It is now read-only.

Releases: agemooij/riak-scala-client

Release 0.8.1.2 for Akka 2.2-RC1 and Spray 1.2-M8

05 Jul 19:47
Compare
Choose a tag to compare

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 to no. 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 to yes 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

05 Jul 19:42
Compare
Choose a tag to compare

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 to no. 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 to yes 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

02 Jul 20:23
Compare
Choose a tag to compare

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.

http://riak.scalapenos.com/

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/