The Enlightenment Foundation Libraries (EFL) are designed to build on top of each other in layers, steadily becoming higher level yet allowing access to each individual level as they go. Whether you're looking for the types of low-level helpers contained in the
Eina library or the high-level abstractions of
Elementary you'll find a wealth of assistance within EFL.
Use the menu on the right to navigate this documentation. Below there's a short description of the content of each section.
The documentation on this section of the website is written with a focus on the next-generation API called Unified API, currently rolling out of the beta stage. While this means that the Unified documentation is only partial in places, it will get you started with the very latest revision of EFL and all the new and improved features it brings.
Documentation on the Legacy API of EFL can be found in the Legacy section. It is possible to use both APIs in the same application, although not recommended. Information about that is in the Unified and Legacy page.
Information on porting existing software to the Unified API can be found as part of the Programming Guides section.
Developers working with the Enlightenment Foundation Libraries can do so in a variety of languages. Each of the following documentation categories is split by language: at present the majority include documentation only for the C and C# languages, with documentation for additional languages to follow.
In all cases, the language to which a particular document applies will be indicated in the page location: a document in
/develop/tutorials/c will be for the C language, whereas
/develop/tutorials/csharp offers alternatives for C# developers.
A full list of the languages available is available on the landing page for each section.
Information on downloading EFL and configuring a development environment can be found in the Setup section.
The EFL Tutorials are designed to introduce the functions and features of EFL to those who already have programming experience. Each tutorial walks through the implementation of a particular EFL feature or function, building upon previous tutorials to offer a step-by-step guide to getting comfortable with developing using EFL.
Although you do not need previous experience with EFL to work through the tutorials, general programming knowledge is required.
The Programming Guides are designed to provide informative material to developers working with EFL, including code snippets demonstrating the use of various features. They are provided both as a reference guide for experienced EFL developers and as an alternative or extension to the tutorials for those who prefer less guided experimentation.
The Legacy API equivalent documentation in the Legacy API Reference section (Only for C).
Debugging EFL Applications demonstrates how to debug your application, from tracking down memory leaks with Valgrind to diagnosing user interface issues with Clouseau.
If you have been working on an EFL-based project which you believe would be of value to other EFL or Enlightenment users, please consider contributing the code. Details on how to contribute your code to the Enlightenment Project, whether it's an entire application or a simple bug-fix, can be found on the Developer Contributions page.
We run a CI service on all commits that enter the efl git repository. These builds cover various combination of our build configs, different architecture and Linux distributions as well as running QA tools like unit tests, integration tests and static analysers. More details on it can be found on our CI page.
The official Enlightenment IRC channels, hosted on the Freenode network, are often the quickest way to communicate with fellow developers. Available in English, German, French, and Korean, the channels are accessible 24/7 and are open to both developers and end-users.
Connection information is as follows:
|irc.freenode.net||6667||#e.de||General - German|
|irc.freenode.net||6667||#e.fr||General - French|
|irc.freenode.net||6667||#e.kr||General - Korean|
The Enlightenment Project maintains several mailing lists, full details of which are available on the Contact page. The developer-focused lists, which are available in English only, are as follows:
|enlightenment-devel||SourceForge||E/EFL development discussion|
|enlightenment-e-bork||Quality assurance reports|