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