We are happy to announce that cassy 0.5 series, after months of development and iterations, is now available on Hackage. cassy is a high-level library for working with Cassandra in Haskell that aims to be flexible and practical while minimizing the ugliness of the underlying thrift API.

This version delivers a number of exciting new features and an overall quality improvement in the API:

Database.Cassandra.Marshall

The all-new Marshall module allows the user to pick and choose the serialization methodology to be used in all operations. You can now easily store and retrieve complex Haskell objects on Cassandra using Serialize, SafeCopy, To/FromJSON instances and your custom conversion schemes.

Marshall also adds basic pagination support for dealing with very wide rows, which is a theme that appears frequently when using Cassandra.

Database.Cassandra.JSON module is now deprecated; you should migrate your code to Marshall instead.

Database.Cassandra.Pack

Available since 0.4, the Pack module is very important to understand for a heavy Cassandra user. This module bridges the gap between Haskell and Cassandra types, making it possible to work with various column types. It also adds Composite Column support via good old Haskell tuples and the Exclusive wrapper.

Almost all operations in the Marshall module are designed to work with the abstractions presented in the Pack module.

Usage and Examples

We plan on dedicating a blog post in the near future to show the community some example of interacting with cassy using this library. cassy is almost a year old and a more thorough post is long overdue.