I'm trying to get my feet wet with Grizzly on another project, so I've been spending some late(ish) nights also working on a Grizzly-based asynchronous PB client for Riak. I'm dropping all the way down to the protobuf level and using Grizzly's NIO abstractions to implement a completely non-blocking client. I'm writing the low-level stuff in Java and I'd really like to build a Scala layer on top of this, which uses the nice Scala idioms (operators, case classes, etc...). But I can't write code as fast in Scala as I can in Java and some of the Java APIs inside Grizzly aren't all that Scala-friendly and make the code pretty ugly. I figured it would be better to implement a fairly low-level PB client in Java and flesh out the user-facing API in Scala and/or Java.
My question is basically, if I seed this project on GitHub with what I've got so far, would anyone else be interested in helping complete it? I'm just working on this after my other Grizzly work, so I can't devote full time to it. It might take me a little while to implement things like links and mapreduce. I think it shows some real promise because it is completely non-blocking. It uses Futures and CompletionHandlers to do the dirty work. A Grizzly filter is responsible for the actual encoding/decoding of protobuf data. Right now, it will marshall JSON using Jackson if your content-type is set to "application/json", otherwise it uses JDK serialization to encode the entry (or just passes a String straight through, of course). Since it's a first pass, there is no real attempt to separate the protobuf stuff from the client. That's a v2 thing. Since I have limited time, I'm interested in speed to completion of features rather than good-looking and properly abstracted code. :) Thanks! Jon Brisbin http//jbrisbin.com
_______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com