Introducing some open source technologies
I'm Bryan O'Sullivan, and Bethanye Blount and I cofounded MailRank at the beginning of December. We are busily heads-down creating a product that we're very excited about, and which we'll be ready to talk about more soon.
Like many startups, as we work on our product, we create a lot of "incidental" technology: we need it, but it's not some kind of special secret that we'd benefit from by keeping it under wraps. Since both of us have long backgrounds in the worlds of open source and open content, we are excited to be able to share some of our work early, in the hope that other folks out there will find it useful.
Innovative Riak bindings
We have built a client library for the Riak decentralized data store, from our friends at Basho Technologies. Our library focuses on high performance, flexibility, and correctness. It sports several features that we are pleased with:
- Written in, and for, the powerful Haskell programming language
- Uses the protocol buffer API, and some low-level networking tricks, to achieve high performance
- Supports pipelining of requests, so you can issue multiple requests before receiving any responses
- Uses the Haskell type system to support automatic resolution of vector clock conflicts
We think that this combination of features makes our Riak library particularly nice to work with.
If you're already using Haskell, you can install the Riak library with a single command:
cabal install riak
We've made the source code available as riak-haskell-client on github.
A faster JSON library
We like building sleek, performant code, so we wrote our own JSON library. Compared to the most popular existing JSON library for Haskell, ours is both a lot faster and uses more compact data structures. The library is named Aeson (after Jason's father in Greek mythology).
To install:
cabal install aeson
We've made the source code available as aeson on github.
The future
We hope to continue releasing more code as the opportunities arise. As our use of github implies, we are happy to receive bug reports and patches, and we'll act on them as time permits.
Have fun with our code! We hope you'll find it to be useful, solid, and well documented.