GSoC 2011: An Apache Thrift implementation for D

I was lucky enough to be selected to participate in the Google Summer of Code program this year under the umbrella of Digital Mars, during the course of which I worked on an implementation of the Apache Thrift framework for/in the D programming language.

The source code is available at my GitHub Thrift fork. The GitHub repository wiki has some documentation that would go to the Thrift wiki if my work was merged upstream (including a Getting Started page), and a DDoc build is available as well.

You can find the original project proposal on Google Melange, although the comments are not publicly accessible.

Current Status

The official Google Summer of Code term ended on August 22, and I was able to complete the project successfully. However, contrary to the original plans, D support has not been merged to upstream yet due to a few remaining issues, which have been resolved in the development versions of the D compiler. This is the current status of the test suite (based on Thrift efce47fc, DMD 2.058):

Unit tests Standalone tests
Linux x86 (DMD 2.058) pass pass
Linux x86_84 (DMD 2.058) pass pass
OS X x86 (DMD 2.058) pass pass
OS X x86_64 (DMD 2.058) pass pass
Windows x86 (DMD 2.058) pass pass

GDC and LDC should work just as well (provided that they are using a recent frontend), but have not been tested yet.

Assorted todo list (of items not really necessary to complete before kicking off the upstream merge):

  • Paint the API @safe (and pure/nothrow in the few places where they are applicable).
  • Some multi-threaded test cases can hang forever instead of exiting on failure.

Please free to contact me for any related questions.