Enlightenment Foundation Libraries
# Enlightenment Foundation Libraries

As Enlightenment Foundation Libraries (Bibliotecas Fundamentais do Enlightenment), ou EFL, são um conjunto de bibliotecas e softwares gráficos de código aberto, desenvolvidas junto com o gerenciador de janelas Enlightenment.
O foco do projeto é fazer das EFL um conjunto flexível, mas poderoso e fácil, de usar e estender as capacidades tanto do gerenciador de janelas enlightenment como outros projetos de softwares baseados nas EFL, incluindo nisto a criação de jogos. As bibliotecas foram criadas para a versão 0.17 do gerenciador de janelas. Pretendem ser portáveis e optimizáveis para serem funcionais em aparelhos como PDAs.
A EFL é uma criação da Enlightenment.org com o patrocínio da Samsung, ProFUSION e Free.fr.

## Componentes EFL

Seguem-se, abaixo, os componentes ativos do Enlightenment.

### Imlib2

Imlib2 é a biblioteca usada nas EFL para manipulação básica e visualização de gráficos. É capaz de carregar e manipular arquivos gráficos de vários formatos, e é também capaz de mostrá-los em um X Window System. Os desenvolvedores das EFL dizem que a Imlib2 é muito optimizada e que ela faz o que faz mais rápido do que qualquer outra coisa.

### EDB

A biblioteca EDB está envolvida em torno da biblioteca Berkeley DB 2.7.7, cujo objetivo é fornecer uma API de base de dados que seja rápida e fácil de usar.

### EET

EET é uma biblioteca que permite a criação de arquivos compactados, similar aos arquivos .zip, mas desenvolvido para ser pequeno, eficiente e rápido. EET forma a base dos arquivos de temas nas EFL, isto é, se você quer instalar um tema para o Enlightenment ou outra aplicação EFL que suporte temas, você precisará instalar um arquivo com o formato EET, que contenha todos os gráficos e as configurações do tema e não precisa ser descompactado no sistema de arquivos para ser usado.

### Evas

Evas é a biblioteca visual das EFL, para criar áreas, ou janelas, onde as aplicações podem trabalhar no X Window System. As EFL usam aceleração por hardware quando possível, habilitada para trabalhar mais rapidamente, mas foi também projetado para trabalhar em equipamentos sem aceleração, diminuindo a quantidade de cores e a qualidade dos gráficos se necessário.

### Ecore

Ecore é uma abstração de eventos, e uma biblioteca de conveniência modular, desenvolvida para simplicidar um número de tarefas comuns. É modular, então as aplicações precisam apenas chamar as bibliotecas necessárias para uma tarefa. Ecore simplifica o trabalho com o X, Evas, e também muitas outras coisas, como as comunicações da rede.

### Epeg

Epeg é uma biblioteca menor que cria miniaturas (previsualizações) de um grande número de imagens JPEG rapidamente.

### Epsilon

Epsilon é uma biblioteca para a criação de miniaturas (previsualizações) de muitos tipos de imagens, desenvolvida para ser compatível com o "Thumbnail Managing Standard", do freedesktop.org. Epsilon suporta todos os formatos de arquivo que a Imlib2 suporta, incluindo PNG, JPEG, TIFF, XCF e GIF, entre outros.

### Embryo

Embryo implementa uma linguagem de "script" usada por outras partes da EFL, como a Edje. A linguagem tem uma sintaxe parecida com o C, e foi baseada na linguagem Small.

### Edje

Edje é uma biblioteca que tenta separar a interface de usuário da aplicação. Permite que aplicações tenham temas, logo é possível mudar a GUI de uma aplicação sem mudar ela mesma. Aplicações baseadas na Edje usam arquivos que contém as especificações de como vai ser usado o layout na GUI. Temas Edje são empacotados usando arquivos gerados pela EET.

### Esmart

Esmart é uma biblioteca que provê uma coleção de smart objects, objetos que permitem algumas funcionalidades em um container fácil de usar.

### Emotion

Emotion é uma biblioteca que fornece a capacidade de executar vídeos através do uso de smart-objects. Emotion é baseado no libxine, uma bem estabelecida biblioteca de execução de video, e que suporta todos os formatos de vídeo que o libxine suporta, incluindo Ogg Theora, DiVX e MPEG2, entre outros.

### EWL

EWL é a Enlightenment Widget Library (Biblioteca de Widgets do Enlightenment) e provê widgets com suporte a temas para aplicações e serve ainda como outra maneira de iniciar facilmente a criação de aplicações com as EFL. A EWL fornece widgets típicas, como janelas, botões, listas, textos, etc. e o mecanismo de temas permite efeitos animados.

### Evoak

Evoak é um canvas server que fornece um canvas, uma área onde as aplicações podem desenhar gráficos e múltiplas aplicações podem conectar e manipular juntas.
Devem ser listados, ainda, os componentes atualmente "mortos" e/ou descontinuados da biblioteca EFL.
* EWD (características agora adicionadas a ecore).
* Estyle (características foram absorvidas pela etox).
* Ebits (substituído pela Edje).

## Aplicações baseadas na EFL
### Ativas

Dentre as suas aplicações básicas, podem se destacar as listadas abaixo. Vários dos programas citados estão disponíveis somente via CVS (não estando completos e/ou estáveis).
* engage: uma barra de tarefas no estilo Mac OS X.
* elicit: uma ferramenta de cor-do-pixel para desenhistas gráficos.
* evidence: um gerenciador de arquivos.
* entice: um atraente (enticing) visualizador de imagens.
* entrance: um extasiante (entrancing) gerenciador de login.
* express: um cliente de mensagens instantâneas.
* euphoria: uma interface para o XMMS2.
* erss: um leitor de feeds RSS.
* enlightenment: o gerenciador de janelas X window manager.
* examine: um programa para configuração de aplicações.
* iconbar: parecido com o engage.
* enotes: um programa de lembretes na área de trabalho.
* equate: uma calculadora.
* eke: um agregador feed RSS.
* envision: uma interface de visualização de vídeos.
* elation: uma interface de visualização de DVDs.
* embrace: um programa que alerta a chegada de emails.
* elapse: um relógio para o enlightenment.
* elinguish: um cliente BitTorrent.
* eclips — possivelmente descontinuado.

### Descontinuadas

Se seguem, abaixo, as aplicações baseadas na EFL que atualmente estão "mortas" e/ou descontinuadas.
* MED.
* EFM.
* Etcher.
* EFSD.
* eBindings.