- Github CorrugatedIron
- Project Site for Corrugated Iron
- Riak Database & Github Repo
- CorrugatedIron Installation
- CorrugatedIron on Nuget
- Samples on Github
So no excuses in .NET land to write some apps that are hard core data centric and capable based on the power of Riak! There are tons of features. You can read about them yourself via the README.md file on the CorrugatedIron Repository, but I wanted to post the features right here so you get an idea of the feature rich capabilities of the library. In addition, it does indeed work on Linux & OS-X with Mono. So don’t let Windows get in your way! 🙂
Current Features
♥: denotes availability of both blocking and asynchronous APIs
«: denotes availability of both streaming and non-streaming APIs
- Riak cluster support:
- One or more nodes in the cluster.
- Load-balancing and pooling of connections across the nodes.
- Currently only round-robin is supported, more strategies to come later.
- Per-node configuration for:
- Host Name (purely used for identification).
- Host Address.
- PBC Port.
- HTTP/REST Port.
- Pool Size.
- Timeout parameters.
- Server ping. ♥
- Get server information/version. ♥
- Simple Get/Put/Delete operations. ♥
- Bulk Get/Put/Delete operations. ♥
- List buckets. ♥
- List keys. ♥ «
- Semi-fluent Map/Reduce. ♥ «
- Link walking. ♥
- Delete buckets. ♥
- Set/Get bucket properties. ♥
- Batch operations on a single connection.
- Each time a Client function is called resulting in communication with the Riak cluster, a connection is pulled from a pool on a given node. In most use-cases this functionality is fine as it is often single-shot calls that are made. There are, however, cases where many operations will happen at once. Rather than forcing the user to make multiple calls to the client, resulting in multiple connection acquisitions behind the scenes, the user can use the Batch interface to make many calls on a single connection. This also reduces the overhead of setting the client ID on each call.
- Because a batch operation reuses a single connection only a subset of the client API is available for batch actions. The functions that are excluded are the asynchronous functions.
- Graceful degrades to HTTP/REST API when the request isn’t supported via Protocol Buffers.
- Configurable via
web.config
,app.config
or a custom configuration file.
CorrugatedIron works with .NET 4.0 on Windows and Mono on Linux and OSX.