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]