EFL 1.1

Представлен стабильный релиз набора библиотек EFL (Enlightenment Foundation Library) 1.1, компоненты которого составляют основу проекта Enlightenment 17. Библиотеки EFL позволяют создавать визуально привлекательные графические интерфейсы, отличающиеся компактностью, низким потреблением ресурсов и высокой производительностью. Данные качества делают EFL привлекательным решением для построения интерфейсов потребительской электроники и мобильных устройств. Например , системы на базе EFL уже используются в бытовой технике Electrolux, телефонах Samsung, а также в продуктах компаний ProFUSION, Free.fr и Calaos. Не в последнюю очередь успех EFL среди коммерческих компаний обеспечен лицензией BSD.Характеристики основных компонентов EFL:
Eina - библиотека с реализацией различных типов данных (массив, хеш, список, дерево) и полезных инструментов (работа с логами, оценка производительности, преобразование форматов и т.д.).
В версии 1.1 добавлены следующие новшества:
вспомогательные функции для упрощения работы с UTF-8;
функция eina_list_move для прямого перемещения элементов между списками;
API для парсинга SAX XML;
API для работы с сортированными списками;
API для перепаковки mempool;
eina_file API для переносимого маппинга памяти;
кросс-платформенная обвязка вокруг средств синхронизации потоков;
prefix API для определения базового пути к приложению или библиотеке;
refcount macro API;
binbuf с реализацией бинарных буферов;
eina_hash_free_cb_set API;
eina_main_loop_is API;
eina_strbuf_manage_new/eina_ustrbuf_manage_new API;
eina_xattr API;
eina_hash_murmur3 API;
улучшения масштабируемости и производительности в Chained Mempool;

Eet - библиотека, позволяющая записать любой набор блоков данных в файл и затем осуществить их быстрое решительное произвольное чтение.
В версии 1.5:
проведены дополнительные оптимизации потребления памяти и производительности;
улучшено качество кодирования и декодирования jpeg-файлов (за счёт выбора более медленного алгоритма);
добавлен API EET_DATA_DESCRIPTOR_ADD_LIST_STRING для работы со списками строк;
API eet_node для манипулирования узлами;
eet_alias_get API;
eet_data_xattr_cipher_get/eet_data_xattr_cipher_set API;
EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY API;

Evas - система рендеринга для организации вывода на экран. Evas оперирует содержимым экрана как сценой, на которой размещаются определенные объекты, состояние которых в последующем отслеживается. Подобный подход, абстрагированный от размещения экранных элементов, позволяет разрабатывать интерфейс пользователя с точки зрения дизайнера, а не программиста (в коде достаточно определить только логику и не думать о прорисовке и выводе на экран). Evas также абстрагирует метод вывода, что позволяет использовать один и тот же код в сочетании как с программным рендерингом, так и с OpenGL. При этом над сценой можно проделывать такие операции как масштабирование, вращение и 3D-трансформации. Evas обеспечивает замечательную производительность даже при использовании программных методов рендеринга, без задействования аппаратной акселерации вывода.
В версии 1.1 реализовано около 60 улучшений, среди которых:
поддержка движка GL Cocoa;
поддержка цветовых схем NV12 и MT12 для объектов с изображениями;
дополнительные параметры управления шрифтами;
поддержка кеширования GL-шейдеров и текстур на диске;
поддержка внешнего процесса-загрузчика для такого контента, как xcf, pdf и видео;
загрузчики для ICO, WBMP и PSD;
улучшено качество кодирования и декодирования для JPEG;
проведены оптимизации производительности для различных компонентов;
расширены возможности, связанные с блоками для работы с текстом: поддержка спец. символов, вертикального выравнивания, автовыравнивание, формы для паролей, различные режимы переноса;
удалена поддержка рендеринга с помощью quartz, cairo, qtopia и xrender.

Evas Generic Loaders - набор модулей для Evas, реализующих загрузку дополнительных форматов файлов, среди которых: xcf, ps, pdf, raw и мультимедийные форматы (через gstreamer). Версия 1.1 является первым выпуском этого компонента.
Ecore - библиотека для организации цикла обработки событий, имеющая в своём арсенале набор модулей для упрощения связанных с обработкой событий задач, таких как работа с X, Evas, потоками, сетевыми соединениями и т.д.
В версии 1.1:
добавлено около 40 новых функций;
улучшена поддержка IPv6;
проведена оптимизация потребления памяти;
улучшена поддержка платформ Windows и Mac OS X;

Embryo - библиотека для написания небольших компилируемых приложений для встраиваемых устройств.
В версии 1.1 улучшена поддержка платформы Windows;
Edje - графическая библиотека, отделяющая внешний вид от кода (оформление задается в виде загружаемого из файла шаблона). По своей сути Edje занимает нишу где-то между HTML+CSS и Flash/PSD/SVG. При помощи данной библиотеки можно сформировать насыщенный пользовательский интерфейс, снабженный анимированными визуальными эффектами и поддерживающий динамическое оформление (внешний вид можно полностью поменять просто сменив EDJ-шаблон и не трогая код, при этом, в отличие от визуальных тем, порядок расположения элементов может быть произвольно изменён).
В версии 1.1:
добавлен эффект зеркала;
автоматическое выравнивание текста;
расширенные опции управления курсором;
возможность управления направлением теней;
новые виды интерполяции (ACCEL_FAC, DECEL_FAC, SIN_FAC, DIVIS, BOUNCE, SPRING);
дополнительные сигналы для обработки событий, связанных с буфером обмена;
API для управления параметрами шаблонов панелей ввода данных;
значительно расширен API для скриптов на языке Lua;

Efreet - библиотека, упрощающая использование спецификаций freedesktop.org по работе с пиктограммами, desktop-файлами и меню.
В версии 1.1:
добавлена поддержка кеширования в памяти eet-файлов;
постоянное кеширование пиктограмм;
ускорение операций по обработке строк;
ускорение работы с маской * в именах файлов;

E_Dbus - надстройка над DBus API, позволяющая использовать его в EFL-приложениях и интегрировать в основной цикл обработки событий Ecore/main.
В версии 1.1:
добавлена поддержка API connman-0.7x;
обеспечена поддержка протокола нотификации 1.2;
добавлены функции e_notification_action_id_get, e_notification_action_name_get и e_notification_image_init;

Eeze - библиотека для организации взаимодействия с внешними устройствами через udev, hal и другие механизмы.
В версии 1.1:
добавлен API для монтирования дисковых разделов;
увеличено число функций, связанных с получением информации о дисках;
добавлена утилита eeze_scanner;

Кроме выхода библиотек входящих в состав EFL, можно отметить выход:
Expedite-1.1 - инструментарий для измерения производительности, который может тестировать различные движки Evas, такие как X11, XRender, OpenGL, SDL и DirectFB. Методика тестирования максимально приближена к реальным условиям.
Evil-1.0 - библиотека, содержащая некоторые функции Unix портированные под Windows. Служит для упрощения портирования e17.
Также доступны снапшоты свежих версий Elementary и Enlightenment.
Сайт проектаНовость частично взята с сайта OpenNet.ru