thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stig Bakken <s...@zedge.net>
Subject Re: Thrift as an in-process server?
Date Tue, 15 Sep 2015 09:41:08 GMT
It would be possible, but you must handle compatibility in a way that works
with Thrift.

For example, you could have a mechanism for getting an implementation of a
service interface from the library, but if that library was built with
generated code that does not align with what the (C/C++) program was built
with, you may end up with pointers going where you don't want them (feel
free to correct me here, anyone more familiar with Thrift's C++ generator).
For more dynamic languages, this technique should work though.

The way Thrift handles compatibility is through the protocol and transport
layers, which means you must serialize and deserialize data for every
single call. You would need some kind of initialization that creates a
transport shared between the shared lib and the main process, and agree on
the protocol and service. This transport could use in-process memory to
temporarily store serialized parameters and return values (you may be able
to just use the memory buffer, but I suspect you'll have to roll your own).

So, possible, yes.

 - Stig



On Mon, Sep 14, 2015 at 3:57 AM, David Bennett <david@yorkage.com> wrote:

> Is it possible to use Thrift for in-process cross-language marshalling?
>
> For a mobile or desktop app there is no particular benefit in running a
> socket-based server, and it's much easier to install and start up an app
> that makes an in-process call to a dynamic library.
>
> So is this possible?
>
> Regards
> David M Bennett FACS
>
> Andl - A New Database Language - andl.org
>
>
>


-- 
Stig Bakken
CTO, Zedge.net - free your phone!

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