I work in a ruby shop with thrift, and I agree that it would be nice to follow more ruby idioms with the thrift libraries, especially with rdoc and rspec, and with a gem for installing. The naming conventions haven't been a problem for us, and we kind of enjoy the fact that it would be easy for us to start developing thrift services in c++ or java since we already know the API.

The one HUGE request we have for the rewrite is to do some type- checking, or allow for type checking to be turned on/off. Currently when a service method returns an incorrect type, or throws an undeclared exception, we get a TTransportException with no explanation. Even worse, in some instances when a method returns a string when an array was expected, the call just hangs.

Thanks,
Ben Taitelbaum

On May 26, 2008, at 6:14 PM, Kevin Ballard wrote:

Hi folks. My name is Kevin Ballard and I'm an intern at Rapleaf. Among other things, I have been tasked with "rubifying" the thrift ruby libraries. I took a look at them, and they look like they were written by a Java developer. Rubifying the existing libraries would be very difficult.

What I want to do is completely rip out the old libraries and re- write them in the Ruby way. This should clean up the API and make things a lot easier for ruby developers to understand. The biggest issue here is, of course, that the API will be changing, and changing in ways that means that non-ruby developers won't be able to easily draw parallels between their code and the ruby code. I view this as a necessary sacrifice. I believe it should be possible to write a 'thrift/old' library that would wrap the new libraries in the old API for existing code, but I also think that creating a new API now is very important to do before the old one is so entrenched that we can't change it.

I also want to fully spec out this new code and package it up as a gem, so anybody who wants to write a client can simply `gem install thrift` and be up and running.

Are there any objections, suggestions, or questions here? If not, how should I go about working? Is there a git repository somewhere? Should I maybe just create a new git repo on github.com for just the ruby libraries and work there, where everyone can see, and then submit it back for inclusion in the main project when it's done? Or are there other suggestions?

-Kevin Ballard

--
Kevin Ballard
[EMAIL PROTECTED]


Reply via email to