thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From 刘畅 <>
Subject Re: Thrift in an embedded setting
Date Mon, 11 Jan 2016 16:08:08 GMT
Dear Randy,

I’m interested in your project as well, please send me the link as well.

Look forward to creating things with you guys.


> 在 2016年1月11日,上午1:44,Randy Abernethy <>
> Hey Dane,
> My shop has a C++11 (no boost) language implementation for thrift. We have
> only built out the generator (--gen cpp2) TBinaryProtocol,
> TCompactProtocol, framing and basic socket transports. I have tried to get
> some help cleaning this up for public consumption but so far no takers.
> Also other quarters have threatened to post such a code base which has
> caused us to hold off (don't want multiple versions of this stuff in the
> trunk). If you are willing to contribute I'll try to package things up for
> a commit this week so that we can get the community to pitch in and finish
> off a basic C++11 lib. Should work great for your purposes (which is
> exactly what we use it for).
> Best,
> Randy
> On Sat, Jan 9, 2016 at 6:20 PM, Dane Mason <> wrote:
>> Sorry I should have been more clear. C++ is fine, but the boost dependency
>> is problematic.
>> Dane
>> On Saturday, January 9, 2016, Randy Abernethy <>
>> wrote:
>>> Do you need a C impel or can you use C++11 on the embedded sys?
>>> On Saturday, January 9, 2016, Dane Mason <
>>> <javascript:;>> wrote:
>>>> Hi, I'm part of a project that makes heavy use of Thrift and it's RPC
>>>> functionality across Java, C++, and Python. This project now needs to
>>>> incorporate an embedded component with 256kb ram running on a CortexM3.
>>>> After a bit of research, I've decided that there is no straight forward
>>> way
>>>> of using Thrift in this context out of the box. We are not willing to
>>> bring
>>>> GLib in as a dependency, nor are we willing to use C++ and Boost. What
>> we
>>>> simply need is a way to reuse the binary protocol and most importantly,
>>> the
>>>> IDL used throughout the rest of the project. We are using many large
>>>> structs, so maintaining 4 hand written implementations across our 4
>>>> languages doesn't make sense.
>>>> Some solutions I've considered:
>>>> 1. Manually write code serialize and deserialize the thrift binary
>>>> protocol.
>>>> - We are dealing with many large structs, and ensuring correctness of
>>> this
>>>> handwritten code is tedious and error prone.
>>>> 2. Use a JSON protocol and use existing JSON parsers on the C side.
>>>> - Again error prone, may not be performant enough for our use case.
>>>> 3. *Possibly *create something like a "TFlatBufferProtocol"  (or any
>>> other
>>>> Serialization format with an IDL)
>>>> - I haven't looked into this in depth, it seems messy and hard to
>>> maintain.
>>>> I'd appreciate any advice you all have to offer here.
>>>> Thanks,
>>>> Dane

View raw message