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.
svn co http://svn.enlightenment.org/svn/e/trunk/$PROJECT e
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.
- 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<code> and <code>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.