D programming language support ------------------------------ Key: THRIFT-1500 URL: https://issues.apache.org/jira/browse/THRIFT-1500 Project: Thrift Issue Type: New Feature Reporter: David Nadlinger
As some of you might remember, I started working on [D programming language|http://dlang.org] support for Thrift during the [2011 Google Summer of Code|http://klickverbot.at/code/gsoc/thrift/]. After many unexpected delays, the time has finally come where both the code is stable - that is, ready for upstream merging, I hope - and I can spare enough time to focus any further issues that should pop up. The library generally tries to follow the precedent set by C++ and Java in design and, in some places, implementation. What is pretty unique, though, is that most of the actual code generation is done at D compile time, the Thrift compiler module for D does little more than providing a direct translation of the IDL file(s) into D code. What is done: - Binary/Compact/JSON protocols - Socket, SSL, HTTP and file transports (plus your familiar helpers, i.e. buffered/framed/memory-buffer/piped/zlib...) - Several single- and multithreaded server variants (including a libevent-based non-blocking implementation) - Both synchronous and asynchronous client implementations - Reasonably good test suite coverage Wish/Todo list: - SSL support for the asynchronous clients (probably done in the next weeks) - More real-world battle testing (I have mostly written synthetic test cases similar to the other languages; while I know of a few people intending to use Thrift/D in the wild, but still need to inquire about the current status) I have been developing the project in my own fork [over at GitHub|https://github.com/klickverbot/thrift], attached is a (large) patch against current trunk. Using a current D compiler, the test suite should pass on Linux x86/x86_64, OS X x86/x86_64 and Windows x86. The necessary dependencies are detected by configure. At the [GitHub project wiki|https://github.com/klickverbot/thrift/wiki/], I put together an introduction and build instructions, which could e.g. be moved to the Thrift wiki. Please let me know about the best way to go forward with this, and feel free to let me know of any issues with the code you might come across (the build system integration could particularly use a look, Autotools isn't exactly my strength). If the code will make its way into trunk, I will also be happy to fill out any necessary legal paperwork, I'm just not quite sure what is required by the ASF in that regard. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira