[ANN] eixx - C++ interface to Erlang

Serge Aleynikov <>
Tue Jan 4 03:06:12 CET 2011


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.



More information about the erlang-questions mailing list