Fact-checked by Grok 2 weeks ago

Enlightenment Foundation Libraries

The Enlightenment Foundation Libraries (EFL) are a collection of libraries designed to facilitate the development of graphical user interfaces and applications, with a focus on efficiency for embedded systems, desktops, and other platforms. Originating from the window manager project started in 1997, EFL underwent a significant rewrite in 2001 to support version 0.17 of the , evolving into a modular toolkit for handling tasks like rendering, event processing, , and . Licensed under a combination of LGPL and , EFL emphasizes low resource consumption, fitting into as little as 8 MB with minimal dependencies while supporting features such as , theming, and compatibility with display servers like X11, , and . Key components of EFL form a layered , starting with foundational libraries like Eina for data structures and Ecore for core utilities including event loops, networking, and . Graphics and rendering are managed by Evas, a state-aware that optimizes to reduce CPU and usage through techniques like compression and anti-overdraw. For , Edje provides a declarative layout engine enabling dynamic theming and separation of visual elements from application logic, while Elementary offers a set of ready-to-use widgets built atop these layers. Additional libraries such as Eet handle data and storage, and Emotion supports playback, making EFL versatile for diverse applications. EFL powers a wide range of devices and software, including mobile platforms like , set-top boxes, medical devices, systems, and the itself, with version 1.28 released in January 2025 introducing enhancements and stability improvements. Its optimization for varied hardware—from low-power embedded controllers to high-end desktops—has made it a staple in Linux-based ecosystems, particularly through contributions from developers at and the broader open-source community. The libraries continue to evolve, supporting modern standards like for rendering and scripting via Elua for runtime applications.

Overview

Purpose and Design Philosophy

The Enlightenment Foundation Libraries (EFL) serve as a suite of C-based libraries designed to facilitate efficient (GUI) development, encompassing functionalities for graphics rendering, event handling, data management, and UI theming. Originally developed as the foundational components for the , EFL libraries are engineered to operate independently, enabling developers to integrate specific modules into standalone applications without dependency on the full window manager stack. This approach supports the creation of lightweight, high-performance software suitable for diverse environments, from desktops to resource-limited devices. As of March 2025, the latest stable release is version 1.28.1, incorporating ongoing optimizations for performance and compatibility. Central to EFL's design philosophy is modularity, which allows individual libraries to be used in isolation or combined as needed, promoting flexibility and reducing overhead in application development. The libraries prioritize optimization for mobile and embedded systems, achieving a minimal footprint—such as fitting core components into 8 MB with few dependencies—while leveraging hardware acceleration through backends like OpenGL ES to minimize CPU, GPU, memory, and battery consumption. Portability is ensured via abstraction layers that support Unix-like operating systems, including X11, Wayland, framebuffer, and even non-Linux platforms like Windows and macOS, without sacrificing performance. EFL embodies a clear , distinguishing rendering mechanisms—such as the canvas-based system in the Evas library—from declarative theming handled by Edje, which allows for dynamic layouts and visual customizations independent of the underlying rendering engine. This modular layering fosters portability and maintainability across hardware variations. A distinctive aspect of EFL's philosophy is its "everything is an object" paradigm, implemented through the infrastructure, which treats elements as composable objects with shared functions and minimal inheritance, enabling efficient, state-aware management without excessive . For instance, Evas objects handle automatic updates and rendering, simplifying development for composable interfaces.

Licensing and Platforms

The Enlightenment Foundation Libraries (EFL) are licensed under a combination of the GNU Lesser General Public License version 2.1 (LGPL v2.1), the BSD 2-Clause license, and the GNU General Public License version 2 (GPL v2) for certain components and tools, enabling developers to integrate the libraries into proprietary applications via dynamic linking without mandating the release of the application's source code. Certain components, such as the Evas canvas library, fall under the more permissive BSD 2-Clause license, while some tools and executable binaries are governed by the GNU General Public License (GPL v2). This mixed licensing approach, often referred to as dual-licensing in practice for flexibility, supports broad adoption in commercial projects by balancing open-source principles with proprietary compatibility. Sponsorship from organizations including and ProFUSION has reinforced EFL's open-source model, funding development while preserving the ability for commercial entities to leverage the libraries without full source disclosure under LGPL terms. EFL powers the , demonstrating its licensing in a real-world . In terms of platforms, EFL targets operating systems such as and BSD variants, with core optimizations for resource-constrained environments like ARM-based mobile devices, desktops, and embedded systems including set-top boxes and game consoles. It provides native support for these through backends like X11, , and rendering. Partial portability to non-Unix platforms is achieved via wrappers; for instance, macOS compatibility is facilitated through Homebrew installations and source builds, while Windows support remains experimental, relying on or cross-compilation tools.

History

Origins and Early Development

The Enlightenment Foundation Libraries (EFL) emerged in the early 2000s from the development of DR17 (version 0.17), initiated by Carsten Haitzler, known as Rasterman, to provide robust support for , rendering, and theming in the . This effort built upon the project's foundations, which began in 1997, but focused on creating reusable components to enhance graphical capabilities across platforms. Early milestones included the development of foundational libraries for image handling, starting with Imlib2 in 1999 as a precursor to EFL for efficient image loading, scaling, and alpha blending. In 2000, Evas was introduced as a stateful canvas library leveraging Imlib2 and supporting hardware acceleration via , while Ecore provided abstractions for event loops and system integration. The first cohesive EFL release was tied to 0.16 around 2003, integrating these early libraries into a unified during the ebits experimentation phase from 2001 to 2003. A key event in the mid-2000s was the shift from a to a modular structure, enabling the libraries' reuse in applications beyond the Enlightenment window manager itself. This modularity was driven by the need for portability and efficiency, with a preview release of EFL announced in to support ongoing DR17 work. Edje, introduced in , exemplified this approach by handling theming and scripted behaviors through a declarative format. The formal branding of the suite as Enlightenment Foundation Libraries solidified around 2008, aligning with intensified development for the Enlightenment 0.17 release. Major refactoring occurred between 2008 and 2010, including the addition of Eina in 2008 for data structures and culminating in EFL 1.0 in January 2011, which established API and ABI stability.

Key Milestones and Releases

The Enlightenment Foundation Libraries (EFL) achieved a significant milestone with the release of version 1.0 in January 2011, which introduced stable APIs and optimizations tailored for and devices. This version solidified the core , enabling reliable of graphical applications and the Enlightenment on resource-constrained platforms. Subsequent releases built on this foundation, with EFL 1.7 in 2013 marking the maturity of the , providing a robust set of components for desktop and mobile applications. This update enhanced widget stability and functionality, facilitating the stable rollout of 0.17. In 2017, EFL 1.20 introduced a Vulkan rendering backend to Evas, the graphics library, improving performance on modern GPUs through low-overhead graphics API support and enabling better efficiency in and rendering pipelines. This addition aligned with growing adoption of in ecosystems for high-performance graphics. EFL 1.26, released in December 2021, emphasized security enhancements and performance improvements across core libraries, including better in Eina and optimized event handling in Ecore to address vulnerabilities and reduce overhead in multi-threaded environments. The most recent stable release, EFL 1.28.0 on January 11, 2025, incorporated extensions for enhanced integration, such as improved surface handling and protocol compliance, alongside numerous bug fixes to ensure compatibility with contemporary compositors. Throughout its evolution, EFL has followed structured deprecation cycles to modernize its codebase, notably phasing out X11-specific code in favor of compositing to support secure, direct-rendering sessions without legacy dependencies. Components like have seen a reduced role, with developers encouraged to migrate to more efficient alternatives like native C or bindings for scripting needs.

Core Libraries

Evas

Evas serves as the foundational canvas library within the Enlightenment Foundation Libraries (EFL), providing a hardware-accelerated engine for rendering shapes, images, text, and animations. It abstracts low-level graphics operations across various display systems, enabling efficient drawing in applications and window managers. Designed for performance in resource-constrained environments, Evas optimizes rendering through techniques that minimize CPU and memory usage. The library features an object-oriented API centered on the Evas_Object structure, which represents graphical primitives like rectangles, images, and text blocks. Developers can manipulate these objects using functions such as evas_object_rectangle_add() for creating filled or outlined shapes, evas_object_image_add() for loading and scaling raster images, and methods for positioning (evas_object_move()) and resizing (evas_object_resize()). Evas supports multiple backends, including for , a software rasterizer for portability, and for direct console rendering, allowing seamless adaptation to different hardware targets. Key to its efficiency is the implementation of anti-aliased rendering for smooth edges on shapes and text, alongside clipping mechanisms that enable precise of overlapping objects with alpha blending for effects. This facilitates complex scene management without excessive computational overhead. Evas integrates closely with Edje, the declarative description library, to extend its capabilities for themed and animated graphical elements. Version 1.0 of Evas was released as part of EFL 1.0 in 2011, marking a stable milestone after years of development focused on and use cases. Higher-level toolkits like Elementary build upon Evas for widget-based interfaces.

Edje

Edje is a graphical and layout within the Enlightenment Foundation Libraries (EFL), serving as a theming engine that enables the creation of complex user interfaces through declarative descriptions rather than imperative C code. It allows developers and designers to define visual elements, such as window borders, buttons, and scrollbars, with support for animations, state transitions, and dynamic behaviors, while packaging themes into compact .edj files that include shared image and font resources. By separating layout and logic from application code, Edje facilitates artist-driven design, where themes can be modified independently without recompiling the software. The core of Edje is its declarative UI description language, known as Edje Data Collections (), a text-based format compiled into .edj files using the edje_cc . EDC files specify layouts, animations, and states using structured syntax, allowing for the composition of interfaces composed of "parts"—which are instances of Evas objects like rectangles, images, or text blocks—and "programs," which are event-driven scripts that handle transitions, such as smooth animations or property changes over time. External parameters in EDC enable dynamic theming by allowing runtime data injection, such as colors or sizes, via messages and signals passed from the application. Edje employs a collection-based theming system, where multiple reusable layout groups (collections) can coexist in a single .edj file, promoting modularity and efficiency through shared resources. This system supports theme inheritance, enabling collections to extend or override parts and programs from base themes using logical naming conventions, which reduces redundancy and eases customization. Additionally, Edje integrates scripting hooks via the language for advanced interactivity and supports sound playback tied to program events, further enhancing its role in design. Developed to enable artist-driven UI design, Edje evolved from the earlier Ebits tool and was conceived specifically for the 0.17 window manager project, with its first major use appearing in development builds around 2008.

Ecore

Ecore serves as the foundational and abstraction library within the Enlightenment Foundation Libraries (EFL), providing a cross-platform mechanism to unify handling of file descriptors, timers, animations, and network events into a single, efficient main loop. This design allows applications to process events asynchronously without blocking, supporting across various input sources such as sockets, pipes, and user inputs. By abstracting low-level system calls, Ecore enables developers to write portable code that operates seamlessly on systems, reducing the need for platform-specific implementations. Key features of Ecore include modular backends for display and audio systems, such as Ecore_X for X11 , Ecore_Wl for , and for via Ecore_Audio. The Ecore_Animator module facilitates smooth animations through timer-based interpolations, allowing precise control over frame rates and easing functions for visual transitions. Additionally, Ecore provides abstractions for inter-process communication (IPC) through Ecore_IPC, which handles via Unix domain sockets, and pipe operations for local data exchange, simplifying between processes. Idle enter and exit callbacks further enhance efficiency by triggering functions when the system is idle, aiding in scenarios like screen blanking or CPU throttling. Initial support was integrated into Ecore around 2012, enabling EFL applications to leverage the for modern display server operations and significantly reducing the volume of platform-specific code required for rendering and input handling. This advancement built on EFL 1.0's stable foundation from 2011, marking a pivotal step toward broader compatibility. Ecore integrates briefly with Evas for event-driven rendering, feeding input and timer events directly into the canvas system to drive updates efficiently.

Eina

Eina serves as the foundational utility library within the Enlightenment Foundation Libraries (EFL), providing efficient implementations of common data structures and utilities to support other EFL components. It offers generic data types such as lists, hashes, arrays, red-black trees, and strings, all designed to minimize CPU usage while optimizing memory efficiency through features like memory pooling. These structures enable developers to handle complex tasks without relying on ad-hoc implementations scattered across EFL libraries, promoting and across applications. Key features of Eina include the Eina_Bool type, an unsigned char-based that facilitates error-prone operations by serving as a return value for success or failure in functions, allowing compact bitfield usage and compatibility with EFL's . Performance is enhanced through extensive use of inline functions, reducing overhead in critical paths, while built-in via Eina_Log and tools like Eina_Evlog enable and optimization by tracking events and resource usage. Eina also introduces specialized concepts such as hash tables for key-value storage, which employ for collision resolution to maintain efficiency under load, and string buffers that dynamically grow strings without frequent reallocations, thereby avoiding unnecessary memory operations. Development of Eina began in 2008 as part of efforts to standardize data handling in EFL, culminating in its inclusion in the EFL 1.0 release in January 2011, where it replaced fragmented data structures in prior implementations. This integration marked a significant milestone, allowing seamless data with libraries like EET while ensuring cross-platform on systems such as , BSD, and Windows.

EET

EET is a library in the Enlightenment Foundation Libraries (EFL) that enables the storage and transmission of arbitrary in a simple, compressed binary optimized for structs, lists, and dictionaries based on Eina data types. This supports zlib , making EET files compact and suitable for efficient network transfer without additional archiving, while providing fast random-access reads for written once and accessed multiple times. Version 1.0 of EET was released on , 2008, as part of the EFL development efforts, with a primary focus on handling files and configuration storage for the Enlightenment . Key features include optional encryption for secure data handling and big-endian encoding to ensure platform independence across different architectures. It integrates with Ecore for streamlined file I/O operations, allowing developers to leverage EFL's event-driven model for asynchronous data persistence. At its core, EET uses EET_File handles—created via functions like eet_open—to manage file operations, supporting reading and writing of serialized data through APIs such as eet_data_write and eet_data_read. A built-in directory table functions as an EET_Dictionary, indexing entries by name with details on offsets, sizes, and flags for quick retrieval. This binary approach avoids the parsing overhead and larger file sizes typical of text formats like XML or , prioritizing speed and minimal resource use in and applications.

Embryo

Embryo serves as the embedded scripting engine in the Enlightenment Foundation Libraries (EFL), offering a lightweight interpreter for a -like scripting language that enables runtime behaviors in user interfaces without the need for full C code recompilation. Derived from the scripting language (previously known as SMALL), Embryo functions as a compiler and , allowing developers and theme designers to embed simple logic directly into EFL components for dynamic functionality. This approach facilitates and adjustments to interactions, particularly in resource-constrained environments like embedded systems. Key features of include direct bindings to EFL APIs, enabling scripts to access and manipulate elements from libraries such as Edje for controlling visual and interactive elements. The engine incorporates garbage collection to manage memory efficiently during script execution, while restricting operations to a sandboxed set for enhanced security, preventing scripts from accessing sensitive system resources or causing unintended side effects. Its compact design, with the core implemented in roughly 2,000 lines of code, ensures minimal overhead, making it ideal for integrating executable logic into declarative definitions. Within Edje programs, scripts are commonly employed to handle animations, event responses, and transitional effects, such as timers for timed sequences or custom state transitions based on user input. For instance, scripts can define rotational behaviors for objects or implement basic interactive elements like bouncing animations, all compiled into theme files for seamless execution. This integration allows Edje to extend beyond static layouts, providing hooks for programmable interactions that enhance without altering underlying C implementations. Introduced in 2008 as part of EFL's core libraries, Embryo remains maintained as of EFL 1.28 (January 2025).

Helper Libraries

Elementary

Elementary is a high-level within the Enlightenment Foundation Libraries (EFL), designed to provide cross-platform components such as buttons, lists, sliders, and layouts for application development. It serves as the topmost layer in the EFL stack, simplifying UI creation by abstracting underlying graphics and event handling while ensuring compatibility across desktop and mobile environments. These widgets are rendered through Evas and themed via Edje, allowing for customizable appearances without altering core functionality. At its core, Elementary uses the Elm_Object class as the foundational for all widgets, enabling common operations like event handling, positioning, and across diverse elements. Key features include responsive design that adapts to touch inputs and desktop interactions, such as finger-size adjustments for scalable layouts, and built-in support through tooltips and indicators to enhance for diverse users. This toolkit emphasizes efficiency and flexibility, supporting both simple controls and complex interfaces with minimal overhead. For arranging widgets, Elementary offers specialized layout classes like Elm_Box for linear packing (horizontal or vertical) and Elm_Table for grid-based structures, facilitating intricate UI designs without manual coordinate calculations. These classes promote modular , where developers can nest components dynamically to build responsive views. Elementary reached significant maturation with the EFL 1.7 release in , stabilizing its API and integrating it more tightly with the broader EFL ecosystem. It has been notably adopted in OS for constructing mobile user interfaces, powering native applications with its lightweight and performant widget set.

Emotion

Emotion is a multimedia library in the Enlightenment Foundation Libraries (EFL) that functions as a player engine for audio and video content, supporting a wide range of formats through configurable backends including and libvlc. It enables seamless integration of media playback into EFL user interfaces by embedding media as Evas objects, allowing developers to treat video and audio like any other graphical element in the . Added in EFL version 1.0, released on January 29, 2011, was designed with efficiency in mind for systems such as set-top boxes and devices, leveraging EFL's to minimize resource usage while delivering smooth playback. Among its key features, supports network streaming with buffering for reliable delivery, subtitle rendering for text overlays, and hardware decoding to offload processing to GPU capabilities provided by the underlying backends like . User controls for actions such as play, pause, and volume adjustment are typically handled through Edje themes, enabling customizable and visually consistent media interfaces within EFL applications. Central to its implementation is the Emotion_Object, an Evas that serves as the primary video surface for rendering media content directly onto the . This object facilitates management by performing decoding in a dedicated , which synchronizes with the Ecore main loop to achieve low-latency playback and prevent blocking the . Developers can attach callbacks to the object for like playback start or errors, enhancing experiences.

Ethumb

Ethumb is a library within the Foundation Libraries (EFL) designed for generating images from various s, primarily targeting applications such as file managers that require quick previews. It operates as an asynchronous thumbnailer, leveraging Evas for efficient resizing and rendering of to produce scaled-down versions without blocking the main application thread. Introduced in 2009, Ethumb was developed to address the need for on-demand creation in desktop environments, with initial notices dating to that year by contributors including ProFUSION embedded systems. A key feature of Ethumb is its client-server , which enables shared caching across applications to avoid redundant processing of the same files. In this mode, the Ethumb server handles thumbnail generation via communication, while clients request thumbnails asynchronously, supporting multiple simultaneous operations for improved performance in resource-constrained environments. Thumbnails are cached according to the thumbnail specification, ensuring compatibility with standard desktop standards and efficient storage using EFL's EET for data compression and persistence. The Ethumb_Client API provides the primary interface for applications to request thumbnails, allowing configuration of parameters such as output size, preservation, quality levels, and support for multiple frames in animated images. It supports a wide range of image formats through Evas loaders, including common types like , , and , enabling seamless integration for preview . Ethumb is often paired with EIO for on-demand thumbnail creation during file , where file events only when needed. This combination optimizes workflows in EFL-based applications by balancing computational efficiency with visual responsiveness.

EIO

EIO is an asynchronous library within the Enlightenment Foundation Libraries (EFL), designed to handle and directory operations without blocking the main application thread. It provides a layer that supports watching, copying, moving, and monitoring of and directories, utilizing platform-specific mechanisms such as on kernels version 2.6.13 and later for passive event detection. Developed starting in 2010 as part of EFL enhancements for applications like managers, EIO enables efficient interactions that enhance features such as by allowing non-blocking access to directory contents and change notifications. The library's core functionality revolves around asynchronous APIs that integrate with the Ecore main loop for event handling, ensuring seamless incorporation into EFL-based applications. Key features include the Eio_File structure for asynchronous reads and writes on files, which operates on top of Eina_File objects to map files to memory without halting execution. Directory operations are facilitated through iterators like eio_dir_ls and eio_file_ls, which asynchronously list contents with optional filtering callbacks to process entries such as files, subdirectories, or specific types, returning results via completion callbacks. Monitoring is achieved via functions like eio_monitor_add, which registers paths for and triggers user-defined callbacks upon events such as file modifications, creations, or deletions, providing progress tracking and error handling through dedicated structures like Eio_Progress and Eio_Monitor_Error. EIO extends its utility with support for extended attributes (xattr) manipulation and integration with other EFL components, such as asynchronous operations on Eet files for compressed data handling. Cross-platform compatibility is maintained across , BSD, and Windows (with modern support added as of EFL 1.28 in 2025). Operations are performed in separate threads to prevent locks, and results dispatched back to the main loop via Ecore events. While primarily focused on local file systems, the library's design allows brief references to thumbnail generation requests from Ethumb for image processing in file browsing contexts. Overall, EIO prioritizes non-blocking efficiency, making it essential for responsive user interfaces in EFL ecosystems.

Deprecated Components

Defunct Libraries

Several libraries within the Enlightenment Foundation Libraries (EFL) have been discontinued over time to eliminate redundancy with core libraries, reduce maintenance burdens, or address outdated technologies incompatible with modern systems like . These removals primarily took place before the EFL 1.20 release in 2017, with additional cleanup efforts in the 1.24 (2020) and 1.26 series in 2021–2022, and further in 1.28 (2025). Imlib2 served as an image loading and manipulation library but was replaced by the more advanced Evas canvas library, rendering it defunct as no new features were added and its functionality was fully subsumed. EPEG, a specialized compression and thumbnailing tool, was deprecated as unmaintained and its features obsoleted by integrated Evas capabilities. EXML, an XML parsing library, is defunct. Other defunct libraries include EWD, a widget demonstration tool whose features were added to Ecore; EDB, replaced by Eet for ; Engrave, whose features were absorbed by Edje; and Epsylon, replaced by Ethumb for thumbnailing to focus on core functionality. Esmart is unmaintained. These changes streamlined the ecosystem, focusing resources on active, high-impact libraries.

Deprecated Features and Migration

The Enlightenment Foundation Libraries (EFL) maintain a policy of deprecating outdated components to align with modern display protocols, scripting standards, and unified backend support, as documented in and changelogs. Deprecations are typically announced with a spanning two versions, allowing developers time to migrate before full removal. The XRender backend support in EFL reflects the broader shift from legacy X11 rendering toward compositing. Developers should migrate to Ecore_Wayland, which handles Wayland display connections, surface management, and efficient compositing via its API for binding protocols like wl_compositor and wl_subcompositor. Certain Ecore_X features, such as XPrint support, were removed in EFL 1.24 to streamline X11-specific handling. Migration paths recommend transitioning Ecore_X usage to counterparts in Ecore_Wayland for future-proof . As of EFL 1.28.1 (March 2025), no further major deprecations have been announced.

Applications and

Notable Software and Integrations

The Enlightenment Foundation Libraries (EFL) underpin several notable software applications that extend beyond traditional desktop environments. Tizen OS, Samsung's Linux-based platform for mobiles, wearables, and smart devices, relies on EFL—particularly the Elementary toolkit—for building native 2D and 3D user interfaces, enabling portable applications across diverse hardware. However, Samsung announced in 2024 that support for Tizen on smartwatches will end in September 2025, transitioning to Wear OS for future models. As of the end of 2023, Tizen powered over 270 million Samsung smart TVs globally, highlighting EFL's scale in consumer electronics. Standalone tools like Terminology, an advanced terminal emulator, utilize EFL for features including multi-pane splits, tabbed sessions, 256-color support, and inline image/video rendering, making it suitable for developers and system administrators. Ephoto, a lightweight image viewer and editor, similarly leverages EFL to provide simple browsing, editing, and organization tools while prioritizing performance and minimal resource use. EFL's integrations enhance its adoption in modern and embedded ecosystems. It supports Wayland compositors through libraries like Ecore Wayland, allowing to function as a standalone display server without X11 dependencies, facilitating efficient compositing on systems. In embedded contexts, EFL powers user interfaces for smart TVs via and extends to automotive applications through Tizen's In-Vehicle (IVI) profile, which handles dashboard and infotainment systems in vehicles. Language bindings further broaden accessibility: bindings via the python-efl package enable development with EFL's core components like Evas for rendering and Elementary for widgets, as seen in tools such as Eflete, a graphical editor for EFL themes. bindings, available as a module, integrate EFL modules like Ecore for event handling and Eina for data structures, supporting hybrid web-native applications. EFL's design suits non-desktop scenarios, such as dashboards on devices, where its lightweight abstractions enable responsive interfaces for monitoring and control in connected environments like smart home appliances.

Community and Sponsorship

The Enlightenment Foundation Libraries (EFL) are hosted and maintained by the Enlightenment.org community, an open-source collective dedicated to advancing graphical user interfaces for and embedded systems. Development occurs primarily through repositories at git.enlightenment.org, where contributors submit patches and enhancements following standard open-source workflows. The community also engages via bug reporting, translations, and feedback mechanisms, fostering collaborative improvement of the libraries. Sponsorship for EFL has historically come from key industry players invested in its applications, with Samsung serving as the primary backer due to its integration in Tizen-based devices like Galaxy Watches and Smart TVs. Additional support has been provided by ProFUSION and Free.fr, enabling sustained development for embedded and multimedia use cases. The project remains open to individual developers, encouraging broad participation without formal barriers beyond open-source norms. As of 2025, EFL continues active maintenance by its core team, highlighted by the release of version 1.28.1 on March 17, which included stability improvements and fixes. Bug tracking and task management are handled through an active Phabricator instance at phab.enlightenment.org, supporting ongoing issue resolution and code reviews. With over two decades of development since its inception in the early , EFL maintains ties to the broader project, ensuring alignment with desktop and compositing advancements.

References

  1. [1]
  2. [2]
    [PDF] Enlightenment Foundation Libraries
    Enlightenment Foundation Libraries ? • GUI toolkit targetting embedded device. • Licensed under a mix of LGPL and BSD license. • Optimized to reduce CPU, ...
  3. [3]
    [PDF] The Enlightenment Foundation Libraries - Documentation
    Jun 28, 2010 · 1 Introduction. The Enlightenment Foundation Libraries, or simply EFL, are a set of software libraries that grew up to support the ...
  4. [4]
    Making sure you're not a bot!
    **Summary of EFL 1.28 Release Announcement**
  5. [5]
    Enlightenment's EFL Continues Dominating In The Embedded Space
    Oct 10, 2016 · EFL provides most libraries that embedded developers need to get going, the presentation confirms Enlightenment Vulkan support is coming, and it ...
  6. [6]
    Enlightenment Foundation Libraries (Overview) | PDF - Slideshare
    The document discusses the Enlightenment Foundation Libraries (EFL), an open source UI toolkit designed for embedded systems.
  7. [7]
    [PDF] Introduction to the Enlightenment foundation libraries. - Code Pipes
    The infrastructure of this desktop shell comes in the form of separate graphic libraries called the Enlightenment Foundation Libraries (EFL for short).
  8. [8]
    [PDF] A UI Toolkit Designed for the Embedded World - stosb
    EFL Interfaces - API Redesign. Reorganised namespaces and inheritance tree. Almost everything is an object. Functions are shared among classes: Fixed design ...Missing: philosophy | Show results with:philosophy
  9. [9]
    Enlightenment/efl: Mirror of https://git.enlightenment.org ... - GitHub
    EFL is a collection of libraries for handling many common tasks a developer may have such as data structures, communication, rendering, widgets and more.
  10. [10]
    Optimizing Apps for Wearables With Enlightenment Foundation ...
    May 11, 2017 · The toolkit is licensed with a mix of LGPL 2.1 and BSD, and written in C, with bindings to other languages. EFL is primarily designed for Linux, ...
  11. [11]
    Enlightenment Foundation Libraries 1.0 Hit Beta - Phoronix
    Oct 3, 2010 · ... sponsored by various companies that use EFL in their products, such as Samsung, ProFUSION, Free.fr, Calaos and some that would like to ...
  12. [12]
    Enlightenment Main
    Enlightenment is a Window Manager, Compositor and Minimal Desktop for Linux (the primary platform), BSD and any other compatible UNIX system.About · About EFL · About Enlightenment · Download
  13. [13]
    About EFL - Enlightenment.org
    EFL, or the Enlightenment Foundation Libraries, powers millions of systems from mobile phones to set-top boxes, desktops, laptops, game systems and more.
  14. [14]
    Installing EFL on macOS - Enlightenment.org
    This document explains how to install EFL using either the Homebrew package manager or by building from source via git.
  15. [15]
    [PDF] Enlightenment Foundation Libraries and E17 - Desktop Summit
    based on ebits experience (2001-2003). - eet: easy all-in-one distribution, efficient reading. - embryo: dynamic scripted behavior.
  16. [16]
    [PDF] EFL - Tizen
    What is EFL? ○ A collection of libraries. ○ Built by the same team working on Enlightenment. ○ Built for the purpose of ...
  17. [17]
    Enlightenment Foundation Libraries Preview Release - OSnews
    Aug 1, 2004 · The Enlightenment Foundation Libraries are a collection of libraries that make up the foundation of the future enlightenment-0.17 window ...Missing: philosophy | Show results with:philosophy
  18. [18]
    Index of /rel/libs/efl
    ### EFL Release Directories (2010 Onward)
  19. [19]
    Version 1.0 Of Enlightenment Foundation Libraries - Phoronix
    Jan 29, 2011 · If you missed it this Friday night, version 1.0 of the core Enlightenment Foundation Libraries (EFL) have been released.
  20. [20]
    Tizen 5.0 Public M1 Source Release
    EFL version 1.16 is upgraded to 1.20. Web engine base open source version is ... Added support for no-composite mode on Vulkan (20% improvement in performance).
  21. [21]
    Evas - Documentation
    Evas is a canvas display library. This is markedly different from most display and windowing systems as a Canvas is structural and is also a state engine, ...Missing: Foundation | Show results with:Foundation
  22. [22]
    Edje Library Documentation
    For the purposes of Enlightenment 0.17, Edje was conceived to serve all the purposes of creating visual elements (borders of windows, buttons, scrollbars, etc.) ...<|separator|>
  23. [23]
    What is Edje? — Python EFL 1.26.0 documentation
    Feb 27, 2022 · Edje is an important EFL component because it makes easy to split logic and UI, usually used as theme engine but can be much more powerful than ...
  24. [24]
    Edje - Enlightenment.org
    Edje History. It's a sequel to "Ebits" which has serviced the needs of Enlightenment development for early version 0.17. The original design parameters under ...
  25. [25]
    Brief description of each EFL library - Code Pipes
    Ecore is a library which provides all the low-level stuff of your application. You can compare it with Glib from GTK+. It contains data structures, IPC ...
  26. [26]
    EFL Overview - Enlightenment Foundation Libraries - Deep Sky
    The Enlightenment Foundation Libraries (EFL) are a collection of libraries that make up the foundation of the DR17 window manager.
  27. [27]
    Enlightenment Is Enlightening Wayland - Phoronix
    Jan 13, 2012 · The Enlightenment project has made significant progress in making their key libraries compatible with the Wayland Display Server.
  28. [28]
    EFL Characteristics - Tizen Docs
    EFL supports a GUI layout (EDC) and logic separation by having the layout description in a plain text file and the logic code in the C or C++ source files.
  29. [29]
    Eina - Enlightenment.org
    The Eina library is a library which implements an API for data types in an efficient way. It also provides some useful tools like opening shared libraries.Missing: Foundation | Show results with:Foundation<|control11|><|separator|>
  30. [30]
    Types - Documentation
    Definition for eina types and core functions. Macro Definition Documentation. ◇ EAPI_WEAK. #define EAPI_WEAK. Weak symbol, primarily useful in ...
  31. [31]
    Event Log Debugging - Documentation
    Logs an event for profiling data. Log some interesting event inside of EFL, e.g. a wakeup (and why etc.). The event string must always be provided and be of ...
  32. [32]
    EFL 1.0 Is Finally Released - Slashdot
    Jan 29, 2011 · Lisandro writes The Enlightenment crew has finally released the first version of the Enlightenment Foundation Libraries, which the E17 desktop ...
  33. [33]
    Eet Library Documentation - Enlightenment.org
    Eet files can be very small and highly compressed, making them very optimal for just sending across the internet without having to archive, compress or ...Missing: Foundation | Show results with:Foundation
  34. [34]
    '[E-devel] RELEASE: Eet 1.0.0' - MARC
    ... enlightenment-devel Subject: [E-devel] RELEASE: Eet 1.0.0 From ... com [Download RAW message or body] Eet 1.0.0 (Alpha version 0.9.99900) is now available.
  35. [35]
    Embryo: Embryo.h File Reference - Documentation
    Embryo.h File Reference. Embryo virtual machine library. More... Defines ... Creates a new Embryo program based on the bytecode data stored in the given file.
  36. [36]
  37. [37]
    What is elementary? — Python EFL 1.26.0 documentation
    Feb 27, 2022 · What is elementary?¶. Elementary is a the high level toolkit based on the underlying efl technologies (Evas, Edje, Ecore, etc…).
  38. [38]
    Getting Started with EFL UI Programming - Tizen Docs
    Elementary provides a high-level toolkit for UI implementation. You can build a layout using UI containers and add UI components in it. Switching from one ...
  39. [39]
    What is Emotion? — Python EFL 1.18.0 documentation
    Emotion is a media object library for Evas and Ecore. Emotion is a library that allows playing audio and video files, using one of its backends.
  40. [40]
    EFL and Enlightenment GStreamer 1.x support – coaxion.net
    Jan 17, 2014 · Over the past few weeks I did some work on porting Emotion to GStreamer 1.x. Emotion is the media library used by Enlightenment and part of ...
  41. [41]
  42. [42]
    https://metadata.ftp-master.debian.org/changelogs/...
    ... efl Source: https://git.enlightenment.org ... embryo/* Copyright: 2004, Carsten Haitzler 1999 ... 2008, 2010-2018, 20011, Cedric Bail License: LGPL ...
  43. [43]
  44. [44]
    Fileselector — Python EFL 1.26.0 documentation
    Feb 27, 2022 · If Elementary is built with support of the Ethumb thumbnailing library, the second form of view will display preview thumbnails of files which ...<|control11|><|separator|>
  45. [45]
    src/lib/eio/eio_map.c · v1.25.0-beta3 - Explore projects - CodeLinaro
    /* EIO - EFL data type library. * Copyright (C) 2010 Enlightenment Developers: * Cedric Bail <cedric.bail@free.fr>. * Vincent "caro" Torri <vtorri at univ ...
  46. [46]
    Eio file and directory monitoring API - Tizen Docs
    This function will add the given path to its internal list of files to monitor. It utilizes the inotify mechanism introduced in kernel 2.6.13 for passive ...
  47. [47]
    Eio
    ### Summary of EIO from https://docs.enlightenment.org/auto/eio_main.html
  48. [48]
    Eio_Legacy.h File Reference - Documentation
    Detailed Description. Eio asynchronous input/output library. These routines are used for Eio. Enumeration Type Documentation. ◇ _Eio_File_Op ...
  49. [49]
    Eio file listing API - Tizen Docs
    List the content of a directory and all its sub-content asynchronously. Eio_File *, eio_dir_direct_ls (const char *dir, Eio_Filter_Dir_Cb filter_cb, ...
  50. [50]
    New Enlightenment EFL Package Releases - Phoronix
    Mar 24, 2012 · New to the Enlightenment Foundation Libraries is Eio, Ethumb, Emotion, and Elementary. Emotion is a video playback library that works with ...
  51. [51]
    Enlightenment EFL 1.20 Released - Phoronix
    EFL 1.20 is now available as the newest version of the Enlightenment Foundation Libraries. EFL 1.20 is a big release with more than 1,600 commits that work ...
  52. [52]
    Enlightenment Foundation Libraries 1.26.1 Release
    Enlightenment Foundation Libraries 1.26.1 Release. 2022-01-03 - by Carsten Haitzler. This is a bug-fix release. Download. LINK, SHA256. efl-1.26 ...
  53. [53]
    EFL Enlightenment Foundation Libraries - TIB AV-Portal
    Its goals are to enable developers to meet and to promote the awareness and use of free and open source software. Series; Transcript; Annotations. FOSDEM 201265 ...Missing: philosophy | Show results with:philosophy<|control11|><|separator|>
  54. [54]
    openembedded-commits@lists.openembedded.org | Messages
    Martin Jansa : exml, enhance: move to obsolete ... Martin Jansa : eina: introduce 1.0.0. Module ... Martin Jansa : efl: remove unused files/mkinstalldirs.
  55. [55]
    old/NEWS.ecore · v1.8.3 · CodeLinaro / le / wayland / efl - GitLab
    Wayland SHM engine now features a mechanism to synchronize rendering with. the compositor, removing the tearing effect in animations when using that.
  56. [56]
    Ecore_Wayland.h File Reference - Documentation - Enlightenment.org
    Initializes the Wayland display connection to the given display. More... EAPI int, ecore_wl_shutdown (void). Shuts down the Ecore Wayland Library. More...
  57. [57]
    Enlightenment Foundation Libraries 1.24 Release
    Apr 29, 2020 · After eight months of development work we are proud to announce the release of version 1.24 of the Enlightenment Foundation Libraries.Missing: 1.0 | Show results with:1.0
  58. [58]
    EFL Applications | Tizen Docs
    Edje provides a powerful theme library for your application. You can also use Edje to create your own objects and use them in your application, or even extend ...
  59. [59]
    Samsung to offer 7 years of free Tizen OS upgrade for AI TVs
    Aug 23, 2024 · ... devices including TVs, mobile devices, home appliances and even signage. As of the end of 2023, Tizen powered over 270 million Samsung smart ...
  60. [60]
    Terminology - Enlightenment.org
    Terminology is a terminal emulator for the Enlightenment desktop, useful for developers and system admins, and makes working with multiple shell sessions easy.
  61. [61]
    Ephoto - Enlightenment.org
    Ephoto is an image viewer and editor written using the Enlightenment Foundation Libraries (EFL). It focuses on simplicity and ease of use.
  62. [62]
    Tizen - NamuWiki
    Oct 27, 2025 · Tizen is a universal operating system that supports multiple platforms such as mobile, wearable, TV, IVI, and IoT devices.
  63. [63]
    python-efl - PyPI
    EFL, or the Enlightenment Foundation Libraries, is a collection of libraries for handling many common tasks such as data structures, communication, rendering, ...<|separator|>
  64. [64]
    rimmed/eflete - GitHub
    EFL Edje Theme Editor (eflete) Efl Edje Theme Editor is a rich graphical tool, that provide UI for edc markup. It is aimed to simplify creation and editing ...
  65. [65]
  66. [66]
    Enlightenment Foundation Libraries 1.28 Release
    Jan 11, 2025 · Enlightenment Foundation Libraries 1.28 Release ... It's been a while since the last main EFL release (1.28.0) so this now updates EFL to 1.28.0.
  67. [67]
    efl/.arcconfig at 4d0e3c37aa41863d7790a684315ee4f4df09b16a
    "project_id" : "efl",. "projects" : "efl",. "conduit_uri" : "https://phab.enlightenment.org/",. "phabricator.uri" : "https://phab.enlightenment.org/",.<|control11|><|separator|>