Enlightenment Foundation Libraries

Short description: Software libraries

Enlightenment Foundation Libraries

Stable release|

1.26.1 / January 3, 2022; 4 years ago (2022-01-03)[1]

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

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.

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.

## Contents

* 1 Core components
* 1.1 Evas
* 1.2 Edje
* 1.3 Ecore
* 1.4 Embryo
* 1.5 EET
* 1.6 Eina
* 2 Helper components
* 2.1 Ethumb
* 2.2 Emotion
* 2.3 Elementary
* 2.4 EIO
* 3 Defunct/deprecated EFL components
* 4 References
* 5 External links

## 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

### 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

* 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,[4] no new features will be added[5])
* 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

1. ↑ Haitzler, Carsten (2022-01-03). "release - 1.26.1". https://git.enlightenment.org/core/efl.git/commit/?h=v1.26.1.
2. ↑ "Enlightenment as Standalone Wayland Compositor". 2014-02-01. https://fosdem.org/2014/schedule/event/enlightenment_standalone_wayland_compositor/.
3. ↑ "Enlightenment Sponsors". Enlightenment.org. http://enlightenment.org/p.php?p=about/sponsors&l=en.
4. ↑ "The road to Enlightenment". 2011-08-03. https://lwn.net/Articles/453699/.
5. ↑ Haitzler, Carsten (2011-11-19). "Mailing list post by Carsten Haitzler". http://thread.gmane.org/gmane.comp.window-managers.enlightenment.user/15829/focus=15831.

## External links

* v
* t
* e

List of widget toolkits

Low-level|

| On AmigaOS|

* Intuition

|

On Classic Mac OS,
macOS|

| Unknown, native|

* Macintosh Toolbox

|

* Carbon

On Windows|

* Windows API

On Unix,
under X11|

* Xlib
* XCB
* X Toolkit Intrinsics, Xt, X-Toolkit

On BeOS, Haiku|

* BeOS, ZETA, Haiku

On cross-platform|

| CLI|

* OpenTK

|

* GDK
* SDL

Java|

* JOGL

On Android|

| CLI|

* Xamarin.Android

|

High-level|

| On AmigaOS|

* BOOPSI
* MUI
* ReAction GUI
* Zune

|

On Classic Mac OS,
macOS|

| Object Pascal|

* MacApp (v1, v2)

|

Objective-C,
Swift|

| Desktop|

* Cocoa

|

Mobile|

* Cocoa Touch

C++|

* MacApp (v3)
* PowerPlant
* THINK Class Library

CLI|

| Desktop|

* Xamarin.Mac

|

Mobile|

* Xamarin.iOS

On Windows|

| CLI|

| Desktop|

* Windows Forms
* XAML (Silverlight, WinRT XAML, WPF)
* XNA Framework

|

Web|

* XAML (Silverlight)

Mobile|

* XNA Framework

C++|

* MFC
* ATL
* WTL
* OWL

Object Pascal|

* VCL

On Unix,
under X11|

* Athena (Xaw)
* LessTif
* Motif
* OLIT
* XForms

On Android|

| C++|

* Qt for Android

|

Cross-platform,
by language|

| C|

* GTK
* IUP
* Tk
* wxC
* XForms
* XVT

|

C++|

* CEGUI
* CLX
* FLTK
* FOX toolkit
* GLUI
* Gtkmm
* JUCE
* Nana
* Qt
* Rogue Wave Views
* TnFOX
* Ultimate++
* VCF
* Wt
* wxWidgets
* YAAF
* SFML

Objective-C|

* GNUstep

CLI|

| Desktop|

* Gtk#
* Tao (OpenTK, TaoClassic)
* wx.NET
* UIML.NET
* MonoGame

|

Web|

* Moonlight

Mobile|

* MonoGame
* Xamarin.Forms

* DFL
* DlangUI
* DWT
* GtkD
* QtD
* wxD

Flash|

* Apache Flex (MXML)

Haskell|

* Gtk2Hs
* wxHaskell

Java|

| Desktop|

* AWT
* FXML (JavaFX)
* Qt Jambi
* Swing
* SWT
* wx4j
* jUIML

|

Web|

* GWT
* FXML (JavaFX)

Mobile|

* LWUIT

JavaScript|

* Dojo Toolkit
* Echo
* Ext JS
* Google Closure
* jQuery UI
* Qooxdoo
* YUI

Common Lisp|

* CAPI
* CLIM
* Common Graphics
* Ltk
* McCLIM

Lua|

* IUP
* wxLua

Pascal|

| Desktop|

* LCL

|

Mobile|

* LCL

Object Pascal|

| Desktop|

* CLX
* fpGUI
* IP Pascal
* LCL

|

Mobile|

* LCL

Perl|

* Perl/Tk
* wxPerl

PHP|

* PHP-GTK
* PHP-Qt
* wxPHP

Python|

* PyGObject
* PyGTK
* Pyjs
* PyQt
* PySide
* Tkinter
* wxPython

Ruby|

* Shoes
* FXRuby
* Ruby-GNOME2
* qtbindings
* QtRuby
* wxRuby

Tcl|

* Tcl/Tk

XML|

* GladeXML
* Lively Kernel
* Pyjs
* Rialto Toolkit
* XAML
* XUL
* UXP
* Wt

shell|

* whiptail
* dialog

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Enlightenment Foundation Libraries. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Organization:Enlightenment_Foundation_Libraries&oldid=1034521"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template