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

Reply via email to