Albin "Lutin" Tonnerre <albin.tonnerre@gmail.com>
Alexandre "diaxen" Becoulet <diaxen@free.fr>
Andre Dieb <andre.dieb@gmail.com>
Arnaud de Turckheim "quarium" <quarium@gmail.com>
Carsten Haitzler <raster@rasterman.com>
Cedric Bail <cedric.bail@free.fr>
Corey "atmos" Donohoe <atmos@atmos.org>
Fabiano FidĂȘncio <fidencio@profusion.mobi>
Gustavo Chaves <glima@profusion.mobi>
Gustavo Sverzut Barbieri <barbieri@profusion.mobi>
Jorge Luis "turran" Zapata <jorgeluis.zapata@gmail.com>
Peter "pfritz" Wehrfritz <peter.wehrfritz@web.de>
Raphael Kubo da Costa <kubo@profusion.mobi>
Tilman Sauerbeck <tilman@code-monkey.de>
Vincent "caro" Torri <vtorri at univ-evry dot fr>
Tom Hacohen <tom@stosb.com>


The Eina library is a library that implements an API for data types in an efficient way. It also provides some useful tools like openin shared libraries, errors management, type conversion, time accounting and memory pool.

This library is cross-platform and can be compiled and used on Linux, BSD, Opensolaris and Windows (XP and CE).

The data types that are available are (see Data types.):

  • Array standard array of void* data.
  • Hash Table standard hash of void* data.
  • Inline List list with nodes inlined into user type.
  • List standard list of void* data.
  • Sparse Matrix sparse matrix of void* data.
  • Red-Black tree red-black tree with nodes inlined into user type.
  • String Buffer mutable string to prepend, insert or append strings to a buffer.
  • Stringshare saves memory by sharing read-only string references.
  • Tiler split, merge and navigates into 2D tiled regions.
  • Trash container of unused but allocated data.

The tools that are available are (see Tools):

  • Benchmark helper to write benchmarks.
  • Convert faster conversion from strings to integers, double, etc.
  • Counter measures number of calls and their time.
  • Error error identifiers.
  • File simple file list and path split.
  • Lazy allocator simple lazy allocator.
  • Log full-featured logging system.
  • Magic provides runtime type checking.
  • Memory Pool abstraction for various memory allocators.
  • Module lists, loads and share modules using Eina_Module standard.
  • Rectangle rectangle structure and standard manipulation methods.
  • Safety Checks extra checks that will report unexpected conditions and can be disabled at compile time.
  • String a set of functions that manages C strings.