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

        

Reply via email to