From: eLinux.org

EFL

Enlightenment Foundation Libraries, or EFL, are the set of libraries
used to create the Enlightenment Window Manager DR17 (E17). This set of
libraries is not restricted to X11 as Enlightenment WM itself.

E17-Illume
The-gang-03.jpg

Contents

Libraries

Most used libraries follows, you can see them all at
SVN:

  • Evas object-oriented and stateful 2D canvas, uses
    retained render mode and is very optimized, both with hardware
    acceleration with OpenGL and XRender and software. Ships with 32bpp
    and 16bpp native engines, but can downscale from 32bpp down to 1bpp
    with dithering on render time.
  • Ecore set of libraries that covers main loop with
    events, including UNIX signals, timers, file descriptors, animators,
    pollers (shared timers). It also contains integration code with X11,
    DirectFB, Win32/DirectDraw, MacOS/Quartz. Extra functionality are
    simple IPC and HTTP communication.
  • Edje is a super-theme engine, it builds on top of
    Evas, Ecore, Embryo, EET and others to provide powerful themes. With
    it your application themes are not restricted to just replace some
    images or changing some colors, you can radically change the look
    and feel. It can be thought as a mix of HTML, CSS and JavaScript.
    It’s based on object states and transition between theirs states, so
    animations can be easily specified. State descriptions can use
    relative and absolute positioning, so your interfaces can be
    scalable yet pixel perfect.
  • Emotion is a media playback system integrated with Ecore and Evas.
    It ships with Xine, GStreamer and VLC engines.
  • Epsilon is an image and video thumbnailer, builds on top of Evas,
    Ecore and Emotion.
  • Eina basic data types, very optimized. Includes stringshare, lists,
    hashes and red-black trees.
  • EET data storage library and command line tool, provides
    ar/zip-similar storage and is optimized for reading. It can handle
    entry compression, signing and crypto. It bundles an easy to use
    C-struct serialization, so one can loads complex data from files
    directly to dynamically allocated C structs or persist them into
    files. Ideal to save user preferences in an optimized way, but still
    editable with regular tools/editors if you use eet -e and
    eet -e. It’s used Edje to store theme resources,
    as fonts, images, descriptions and even embryo scripts.
  • Embryo is a tiny, simple and fast virtual machine that runs a C
    subset, derived from
    PAWN/SMALL.

Old Style Toolkits

Some more traditional toolkits were build on top of EFL but don’t expose
underneath technologies like Evas or Edje. They’re targeted at form-like
applications, just like GTK and Qt.

  • ETK, similar to GTK in API. not being actively developed anymore
  • EWL, more Model-View-Controller approach.

New Style Toolkits

Some new toolkits were born recently and makes more use of EFL concepts,
not just exposing components like Evas and Edje, but truly mixing with
them. So far we have two alternatives, but they will merge soon. See
Rich GUI without pain ELC-E 2008
talk
.

  • Elementary, targeted at phones, pdas and other touch screen devices.
    It was originally born as a port of E17 widgets.
  • Guarana, targeted at digital tv,
    media centers and other set-top boxes. Guarana is more than just
    widgets, it also covers module loader, MVC framework and more.

Demos and Videos

Category: