The Enlightenment Foundation Libraries (EFL) are a set of
graphics libraries that grew out of the development of
Enlightenment, a
window manager
A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment. They work in conjunction ...
and
Wayland compositor
Wayland is a communication protocol that specifies the communication between a display server and its clients, as well as a C library implementation of that protocol. A display server using the Wayland protocol is called a '' Wayland composito ...
. The project's focus is to make the EFL a flexible yet powerful and easy to use set of tools to extend the capabilities of both the Enlightenment window manager and other software projects based on the EFL. The libraries are meant to be portable and optimized to be functional even on mobile devices such as smart phones and tablets.
The libraries were created for version 0.17 of the window manager.
EFL is developed by Enlightenment.org with some sponsorship from
Samsung
The Samsung Group (or simply Samsung) ( ko, 삼성 ) is a South Korean multinational manufacturing conglomerate headquartered in Samsung Town, Seoul, South Korea. It comprises numerous affiliated businesses, most of them united under the ...
, ProFUSION and
Free.fr. EFL is
free and open source software
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
.
Core components
Evas
Evas is the EFL canvas library, for creating areas, or windows, that applications can draw on in an
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
. The EFL uses hardware-acceleration where possible to allow it to work faster, but is also designed to work on lower-end hardware, falling back to lower color and quality for graphics if necessary. Unlike most canvas libraries, it is primarily image-based (as opposed to vector-based) and fully state-aware (the vast majority of canvases are stateless, requiring the programmer to keep track of state).
Edje
Edje is a library that attempts to separate the user interface from the application. It allows applications to be skinnable, so that it is possible to change the
GUI
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
of an application without changing the application itself. Edje-based applications use files which contain the specifications for the GUI layout that is to be used. Edje themes are contained using EET generated files.
Ecore
Ecore is an event abstraction, and modular convenience library, intended to simplify a number of common tasks. It is modular, so applications need only call the minimal required libraries for a job. Ecore simplifies working with X, Evas, and also a few other things, such as network communications and threads.
Embryo
Embryo implements a scripting language used by other parts of the EFL, such as Edje. The language has a
C-like syntax, and was based on the C-like, scriptable language Pawn - built on the old
Small-C
Small-C is both a subset of the C programming language, suitable for resource-limited microcomputers and embedded systems, and an implementation of that subset. Originally valuable as an early compiler for microcomputer systems available during ...
compiler.
EET
EET is a library that is designed to store and load all types of data, locally or through a network stream. It is designed to be light-weight, efficient and quick. EET forms the basis of theme files in the EFL, i.e. if you want to install a theme for Enlightenment or another themable EFL app, you would be installing an EET-format file, which contains all of the theme graphics and configuration and it does not need to be extracted onto the filesystem in order to be used.
It is also the basis for all
IPC communication and all configuration. Even if it's a binary file format, it is possible to dump/undump it on the fly to see what's going from a human point of view.
Eina
Eina is the base library of all data types used by the EFL. It is designed to reduce CPU-usage as much as possible without using too much memory. It provides list (and inlined list), hash, red-black tree, shared string, rectangle, array, iterator and accessor, memory pool, module, fixed point and magic check helper.
The library itself is small and could easily be used without any other EFL libraries.
Helper components
Ethumb
Ethumb is a library for creating thumbnails of many types of images, designed to be compliant with freedesktop.org's Thumbnail Managing Standard. It supports all of the file formats that Evas supports, including
PNG,
JPEG
JPEG ( ) is a commonly used method of lossy compression for digital images, particularly for those images produced by digital photography. The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and imag ...
,
TIFF
Tag Image File Format, abbreviated TIFF or TIF, is an image file format for storing raster graphics images, popular among graphic artists, the publishing industry, and photographers. TIFF is widely supported by scanning, faxing, word processin ...
,
GIF
The Graphics Interchange Format (GIF; or , see pronunciation) is a bitmap image format that was developed by a team at the online services provider CompuServe led by American computer scientist Steve Wilhite and released on 15 June 1987. ...
, etc.
Emotion
Emotion is a library providing video-playing capabilities through the use of ''smart-objects''. Emotion provides several video backends. The best-supported one is ''libxine'', a well-established video-playing library, but ''gstreamer'' and ''vlc'' backends are also provided. Thus, Emotion supports all of the video formats that video libraries support, including
Ogg Theora
Theora is a free lossy video compression format. It is developed by the Xiph.Org Foundation and distributed without licensing fees alongside their other free and open media projects, including the Vorbis audio format and the Ogg container ...
,
DivX,
MPEG2
MPEG-2 (a.k.a. H.222/H.262 as was defined by the ITU) is a standard for "the generic coding of moving pictures and associated audio information". It describes a combination of lossy video compression and lossy audio data compression methods, w ...
, etc.
Elementary
Elementary is a
widget set
Widget may refer to:
* Widget (beer), a device placed in cans and bottles of beer to aid in the generation of froth
* Widget (economics), a placeholder name for an unnamed, unspecified, or hypothetical manufactured good or product
* Software wid ...
based on the EFL that makes heavy use of Evas and Edje to provide a fast, stable, and scalable library that can be used to create both rich and fast applications that can be used on anything from every day desktop computers to small PDAs and set-top boxes. It is designed to fully expose the capability of the EFL.
EIO
EIO provide asynchronous file system operation, like listing the content of directory, copying and moving directory and files around. It relies on Ecore thread ability and, if correctly used, prevents any lock in the interface when browsing local file content.
Defunct/deprecated EFL components
* EWD (features now added to Ecore)
* Estyle (features have been absorbed by Etox)
* Etox (obsolete)
* Ebits (replaced by Edje)
* Evoak (dead)
* Imlib2 (replaced by Evas in E17, no new features will be added
)
* EDB (replaced by EET)
* EXML
* EPEG (feature obsoleted by Evas)
* Epsylon (replaced by Ethumb)
* Engrave (feature have been absorbed by Edje)
* Esmart (not maintained and job's better done by Elementary)
References
External links
EFL DocumentationWiki page with diagramson phab.enlightenment.org
EFL Maemo Edition
{{Widget toolkits
Free graphics software
Software using the BSD license
Cross-platform software
Widget toolkits