Новая версия EFL 1.20 (Enlightenment Foundation Library)
Проект Enlightenment опубликовал набор библиотек EFL 1.20 (Enlightenment Foundation Library), позволяющих создавать визуально привлекательные графические интерфейсы, отличающиеся компактностью, низким потреблением ресурсов и высокой производительностью. Несмотря на изначальное развитие в качестве базиса для окружения Enlightenment, компоненты EFL часто используются для построения интерфейсов потребительской электроники и мобильных устройств. Например, EFL является составной частью мобильной платформы Tizen, используются в бытовой технике Electrolux, телефонах Samsung, а также в продуктах компаний ProFUSION, Free.fr и Calaos.
С момента прошлого выпуска внесено более 1600 изменений от 60 авторов. Проведена работа по увеличению качества кода - в тестах Coverity показатель качества доведен до 0.03 ошибок на 1000 строк кода (для сравнения в Qt - 0.72, glib - 0.44, ядре Linux - 0.47, OpenSSL - 0.32). В 1.1 млн строк кода устранено 1288 дефектов, выявленных Coverity, неисправленными остаются 38 дефектов.
Улучшена поддержка Wayland и компоненты для взаимодействия с подсистемой DRM (Direct Rendering Manager) ядра Linux, в том числе добавлена поддержка атомарного переключения видеорежимов и создания multiseat-конфигураций, в которых за одним рабочим столом может одновременно работать несколько человек со своими клавиатурами и мышами. Обеспечена качественная работа Enlightenment с EFL на платах Rapberry Pi 3 (ARM + VC4), O-DROID XU3/XU4 (ARM + Mali-6xx) и различных устройствах с сенсорными экранами на базе чипов Intel. Продолжено развитие средств для отладки и профилирования.
- Eina - библиотека с реализацией различных типов данных (массив, хэш, список, дерево) и полезных инструментов (работа с логами, оценка производительности, преобразование форматов и т. д.).
- Eet - библиотека для записи произвольного набора блоков данных в файл и их последующего частого чтения в произвольном порядке.
- Evas - система рендеринга для организации вывода на экран. Evas оперирует содержимым экрана как сценой, на которой размещаются определенные объекты, состояние которых в последующем отслеживается. Подобный подход, абстрагированный от размещения экранных элементов, позволяет разрабатывать интерфейс пользователя с точки зрения дизайнера, а не программиста (в коде достаточно определить только логику и не думать о прорисовке и выводе на экран). Evas также абстрагирует метод вывода, что позволяет использовать один и тот же код в сочетании как с программным рендерингом, так и с OpenGL. При этом над сценой можно проделывать такие операции как масштабирование, вращение и 3D-трансформации. Evas обеспечивает замечательную производительность даже при использовании программных методов рендеринга, без задействования аппаратной акселерации вывода.
- Ecore - библиотека для организации цикла обработки событий, имеющая в своем арсенале набор модулей для упрощения связанных с обработкой событий задач, таких как работа с X, Evas, нитями, сетевыми соединениями и т. п.
- Embryo - библиотека для написания небольших компилируемых приложений для встраиваемых устройств.
- Edje - графическая библиотека, отделяющая внешний вид от кода (оформление задается в виде загружаемого из файла шаблона). По своей сути Edje занимает нишу где-то между HTML+CSS и Flash/PSD/SVG. При помощи данной библиотеки можно сформировать насыщенный пользовательский интерфейс, снабженный анимированными визуальными эффектами и поддерживающий динамическое оформление (внешний вид можно полностью поменять просто сменив EDJ-шаблон и не трогая код, при этом, в отличие от визуальных тем, порядок расположения элементов может быть произвольно изменен).
- Efreet - библиотека, позволяющая использовать в приложениях некоторые спецификации Freedesktop.org по работе с пиктограммами, Desktop-файлами и меню.
- Eeze - библиотека для организации взаимодействия с внешними устройствами через udev, hal и другие механизмы.
- Expedite - инструментарий для измерения производительности, который может тестировать различные движки Evas, такие как X11, XRender, OpenGL, SDL и DirectFB. Методика тестирования максимально приближена к реальным условиям.
- Evil - реализация уровня совместимости для работы на платформе Windows.
- Eio - абстрактный интерфейс для доступа к файловой системе и реализации асинхронного ввода/вывода;
- Emotion - библиотека для интеграции в EFL-приложения поддержки проигрывания аудио и видео контента. Проигрывание видео может осуществляться с использованием Gstreamer, Xine или других внешних плагинов (например, VLC), при этом видео отображается как стандартный объект в Evas.
- Ethumb - библиотека для формирования эскизов изображений, соответствующих стандартам freedesktop.org. Ethumb реализован в виде сервиса dbus и клиентской библиотеки, взаимодействующей с данным сервисом.
- Elementary - набор виджетов с готовой реализацией разнообразных графических элементов (от кнопок и элементов управления, до календаря и модуля редактирования текста).
- Eldbus - надстройкой над DBus API, заменившая собой ранее доступный модуль E_Dbus. Поддержка E_dbus пока сохранена, но больше не будет обновляться;
- Ephysics - предоставляет средства для использования движка симуляции физических процессов Bullet Physics Engine в приложениях на базе EFL. Ephysics обеспечивает связку Bullet с библиотеками Ecore и Evas;
- Ecore Audio - API для работы со звуком.
- Elocation - библиотека для получения информации о географическом местоположении.