EFL Overview

The Enlightenment Foundation Libraries (EFL) are a collection of libraries that make up the foundation of the DR17 window manager. While their original intent was solely to support the window manager, the libraries quickly took on a life of their own, which is a contributing factor to the delays of the window manager itself. These libraries are so powerful, flexable, and easy to use that they present a strong platform on which to develop nearly any graphical application you could think of.

The EFL begins with Imlib2, a general image manipulation and rendering library, and Evas, our canvas library. Because Evas is built on several diffrent selectable engines (Linux FrameBuffer, DirectFB, X11, OpenGL, QTopia, etc) the platform is extremely portable, which translates thru to all of the libraries built on top of it. Ecore is a modular convience library that in its base provides timers, callback functionality, and loop management for event handling. Ecore's various modules can simplify the setup of an X11 drawable for general use (Ecore_X11), an X11 drawable for use with Evas (Ecore_Evas), manage IPC (Ecore_IPC), manage BSD Sockets (Ecore_Con), management of the FrameBuffer (Ecore_FB), and more. Because Ecore can simplify so many tasks that are used in conjuction with Evas it has lived up to its name as the core componant of nearly any EFL application.

Edje provides a revolutionary method of absstacting every aspect of your interface from the application itself. By passing signals between the interface and the application all communication is done in an interface neutral way. No longer are "themes" simple changes of pixmaps over a fixed area. Using Embryo we can provide scripting ability to the interface componant itself to harness even more power and flexability.

Ewl brings all the libs into focus, providing a complete end-to-end widget library for fast and easy development of complex graphical applications.

Below is a diagram of how the various componants of the EFL fit together. Because of complexity of the libraries and the fact that so many libraries can be used independant of other EFL libraries we have a diagram alittle more complex than your standard block diagram.

If you're interested in working with, or on, the EFL take a look at the wiki for more information.