thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dane Mason <danem.ma...@gmail.com>
Subject Re: Thrift in an embedded setting
Date Mon, 11 Jan 2016 19:14:20 GMT
Hey Randy,

That sounds perfect for our use case. I would love to contribute. Let me
know when you have more details.

Dane

On Sun, Jan 10, 2016 at 9:44 AM, Randy Abernethy <randy.abernethy@gmail.com>
wrote:

> 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 <danem.mason@gmail.com> 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 <randy.abernethy@gmail.com
> >
> > wrote:
> >
> > > Do you need a C impel or can you use C++11 on the embedded sys?
> > >
> > > On Saturday, January 9, 2016, Dane Mason <danem.mason@gmail.com
> > > <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
> > > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message