Enlightenment Foundation Libraries

Last updated
Enlightenment Foundation Libraries
Stable release
1.27.0 [1]   OOjs UI icon edit-ltr-progressive.svg / 23 December 2023;10 months ago (23 December 2023)
Repository
Written in C
Operating system Unix-like
Type Graphics library
License LGPL; some binary separated shared libraries are licensed under various licenses such as BSD license and GPL
Website www.enlightenment.org/about-efl

The Enlightenment Foundation Libraries (EFL) are a set of graphics libraries that grew out of the development of Enlightenment, a window manager and Wayland compositor. [2] 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.

Contents

The libraries were created for version 0.17 of the window manager.

EFL is developed by Enlightenment.org with some sponsorship from Samsung, ProFUSION and Free.fr. [3] EFL is free and open source software.

Core components

Example of usage in Linux-based systems - software components of the Linux desktop stack like the display server, compositor, UI toolkits, desktop shells and desktop widgets Free and open-source-software display servers and UI toolkits.svg
Example of usage in Linux-based systems - software components of the Linux desktop stack like the display server, compositor, UI toolkits, desktop shells and desktop widgets

Evas

Evas is the EFL canvas library, for creating areas, or windows, that applications can draw on in an X Window System. 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 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 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, TIFF, GIF, 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, DivX, MPEG2, etc.

Elementary

Elementary is a widget set 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

Related Research Articles

<span class="mw-page-title-main">Graphical user interface</span> User interface allowing interaction through graphical icons and visual indicators

A graphical user interface, or GUI, is a form of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation. In many applications, GUIs are used instead of text-based UIs, which are based on typed command labels or text navigation. GUIs were introduced in reaction to the perceived steep learning curve of command-line interfaces (CLIs), which require commands to be typed on a computer keyboard.

<span class="mw-page-title-main">GNUstep</span> Open source widget toolkit and application development tools

GNUstep is a free software implementation of the Cocoa Objective-C frameworks, widget toolkit, and application development tools for Unix-like operating systems and Microsoft Windows. It is part of the GNU Project.

<span class="mw-page-title-main">Enlightenment (window manager)</span> Compositing window manager

Enlightenment, also known simply as E, is a compositing window manager for the X Window System. Since version 0.20, Enlightenment also supports Wayland. It is shipped with some Linux distributions such as Bodhi Linux and Pentoo.

freedesktop.org (fd.o), formerly X Desktop Group (XDG), is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operating systems. Although freedesktop.org produces specifications for interoperability, it is not a formal standards body.

X.Org Server is the free and open-source implementation of the X Window System (X11) display server stewarded by the X.Org Foundation.

cairo (graphics) Vector graphics-based software library

Cairo is an open-source graphics library that provides a vector graphics-based, device-independent API for software developers. It provides primitives for two-dimensional drawing across a number of different backends. Cairo uses hardware acceleration when available.

<span class="mw-page-title-main">GDK</span> Software library

GDK is a library that acts as a wrapper around the low-level functions provided by the underlying windowing and graphics systems. GDK lies between the display server and the GTK library, handling basic rendering such as drawing primitives, raster graphics (bitmaps), cursors, fonts, as well as window events and drag-and-drop functionality.

<span class="mw-page-title-main">Virtual desktop</span> User interfaces describe ways in which virtual space of a computers desktop is expanded

In computing, a virtual desktop is a term used with respect to user interfaces, usually within the WIMP paradigm, to describe ways in which the virtual space of a computer's desktop environment is expanded beyond the physical limits of the screen's display area through the use of software. This compensates limits of the desktop area and is helpful in reducing clutter of running graphical applications.

<span class="mw-page-title-main">Tiling window manager</span> Window manager with non-overlapping frames

In computing, a tiling window manager is a window manager with the organization of the screen often dependant on mathematical formulas to organise the widows into a non-overlapping frame. This is opposed to the more common approach used by stacking window managers, which allow the user to drag widows around, instead of widows snapping into a position. This allows for a different style of organization, although it strays from the traditional desktop metaphor.

Desktop Window Manager is the compositing window manager in Microsoft Windows since Windows Vista that enables the use of hardware acceleration to render the graphical user interface of Windows.

A compositing manager, or compositor, is software that provides applications with an off-screen buffer for each window. The compositing manager composites the window buffers into an image representing the screen and writes the result into the display memory.

<span class="mw-page-title-main">Poppler (software)</span> PDF rendering engine

Poppler is a free and open-source software library for rendering Portable Document Format (PDF) documents. Its development is supported by freedesktop.org. Commonly used on Linux systems, it powers the PDF viewers of the GNOME and KDE desktop environments.

<span class="mw-page-title-main">ImageMagick</span> Free and open-source image manipulation software

ImageMagick, invoked from the command line as magick, is a free and open-source cross-platform software suite for displaying, creating, converting, modifying, and editing raster images. ImageMagick was created by John Cristy in 1987, it can read and write over 200 image file formats. It is widely used in open-source applications.

fpGUI Graphical user interface toolkit in Object Pascal

fpGUI, the Free Pascal GUI toolkit, is a cross-platform graphical user interface toolkit developed by Graeme Geldenhuys. fpGUI is open source and free software, licensed under a Modified LGPL license. The toolkit has been implemented using the Free Pascal compiler, meaning it is written in the Object Pascal language.

<span class="mw-page-title-main">OpenGEU</span> Free computer operating system

OpenGEU was a free computer operating system based upon the popular Ubuntu Linux distribution, which in turn is based on Debian. OpenGEU combined the strengths and ease of use of GNOME desktop environment with the lightweight, and graphical eye candy features of the Enlightenment window manager to create a unique and user-friendly desktop. While OpenGEU was originally derived from Ubuntu, the design of the user gave it a significantly different appearance, with original art themes, software and tools.

<span class="mw-page-title-main">Okular</span> Document viewer by KDE

Okular is a multiplatform document viewer developed by the KDE community and based on Qt and KDE Frameworks libraries. It is distributed as part of the KDE Applications bundle. Its origins are from KPDF and it replaces KPDF, KGhostView, KFax, KFaxview and KDVI in KDE 4. Its functionality can be embedded in other applications.

<span class="mw-page-title-main">Wayland (protocol)</span> Display system intended to replace X11

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 compositor, because it additionally performs the task of a compositing window manager.

<span class="mw-page-title-main">GTK</span> Free and open-source cross-platform widget toolkit for creating graphical user interfaces

GTK is a free software cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the Wayland and X11 windowing systems.

<span class="mw-page-title-main">PhotoLine</span> Raster and vector graphics editor

PhotoLine is a general purpose bitmap and vector graphics editor developed and published by Computerinsel GmbH for Windows, macOS, and Linux/Wine. It was originally created in 1995 by Gerhard Huber and Martin Huber. The program combines bitmap and vector graphics editing in one seamless working application unlike most graphics software which tend to focus on either bitmap or vector editing and output. PhotoLine is considered as a market competitor to Adobe Photoshop.

<span class="mw-page-title-main">Hollywood (programming language)</span> Programming language

Hollywood is a commercially distributed programming language developed by Andreas Falkenhahn which mainly focuses on the creation of multimedia-oriented applications. Hollywood is available for AmigaOS, MorphOS, WarpOS, AROS, Windows, macOS, Linux, Android, and iOS. Hollywood has an inbuilt cross compiler that can automatically save executables for all platforms supported by the software. The generated executables are completely stand-alone and do not have any external dependencies, so they can also be started from a USB flash drive. An optional add-on also allows users to compile projects into APK files.

References

  1. "Enlightenment Foundation Libraries 1.27 Release".
  2. "Enlightenment as Standalone Wayland Compositor". 2014-02-01. Retrieved 2014-02-16.
  3. "Enlightenment Sponsors". Enlightenment.org. Retrieved 2012-06-14.
  4. "The road to Enlightenment". 2011-08-03.
  5. Haitzler, Carsten (2011-11-19). "Mailing list post by Carsten Haitzler".