[ANN] eixx - C++ interface to Erlang
Serge Aleynikov
serge@REDACTED
Tue Jan 4 03:06:12 CET 2011
http://github.com/saleyn/eixx
eixx - Erlang C++ Interface Library
===================================
This library provides a set of classes for convenient marshaling
of Erlang terms between processes as well as connecting to other
distributed Erlang nodes from a C++ application.
The marshaling classes are built on top of ei library included in
{@link http://www.erlang.org/doc/apps/erl_interface erl_interface}.
It is largely inspired by the {@link http://code.google.com/p/epi epi}
project, but is a complete rewrite with many new features and
optimization enhancements.
This library adds on the following features:
- Use of reference-counted smart pointers for complex terms and
by-value copied simple terms (e.i. integers, doubles, bool, atoms).
- Ability to provide custom memory allocators.
- Encoding/decoding of nested terms using a single function call
(eterm::encode() and eterm::eterm() constructor).
- Global atom table for fast manipulation of atoms.
The library consists of two separate parts:
- Term marshaling (included by marshal.hpp or eixx.hpp)
- Distributed node connectivity (included by connect.hpp or eixx.hpp)
The connectivity library implements a richer set of features than
what's available in erl_interface - it fully supports process
linking and monitoring. The library is fully asynchronous and allows
handling many connections and mailboxes in one OS thread.
Ths library is dependend on {@link http://www.boost.org BOOST}
project and erl_interface, which is a part of the
{@link www.erlang.org Erlang} distribution.
Regards,
Serge
More information about the erlang-questions
mailing list