Enlightenment Foundation Libraries — Вікіпедія
Тип | графічна бібліотека |
---|---|
Стабільний випуск | 1.15 (4 серпня, 2015 ) |
Платформа | Linux, macOS[1], FreeBSD[2] і Windows[3] |
Операційна система | Unix-подібні |
Мова програмування | C |
Стан розробки | активний |
Ліцензія | ліцензія BSD |
Репозиторій | git.enlightenment.org/core/efl.git/ |
Вебсайт | enlightenment.org |
Enlightenment Foundation Libraries, EFL (бібліотеки фундації Enlightenment) — набір програмних бібліотек, компоненти якого складають основу проекту Enlightenment. Бібліотеки EFL дозволяють створювати візуально привабливі графічні інтерфейси, що відзначаються компактністю, низьким споживанням ресурсів і високою продуктивністю. Ці якості роблять EFL привабливим рішенням для побудови інтерфейсів споживчої електроніки і мобільних пристроїв. Наприклад, системи на базі EFL вже використовуються в побутовій техніці Electrolux та телефонах Samsung, EFL є складовою частиною мобільної платформи Tizen.
Випуск EFL 1.8 (грудень 2013) примітний відходом від практики розрізненої поставки компонентів EFL у формі набору окремо поставляються архівів бібліотек: бібліотеки Ecore, Edje, Eet, Eeze, Efreet, Eina, Eio, Embryo, Emotion, Ethumb, Evas і Evil об'єднані в одне дерево сирцевих текстів і доступні для завантаження в одному архіві. В окремі архіви винесені тільки віджети Elementary, набір Emotion Generic Players з реалізацією базових компонентів для програвання медіаконтенту і колекція модулів Evas Generic Loaders, що дозволяють організувати завантаження форматів svg, xcf, pdf, ps, ppt, doc, docx, xls, avi, mkv, wmv тощо. Модулі зі складу Emotion Generic Players і Evas Generic Loaders виконані у формі відособлених процесів, що взаємодіють з базовою програмою через спільну пам'ять і неіменовані канали, що дозволяє забезпечити продовження роботи програми на базі EFL навіть у разі краху обробника медіаконтенту.
Характеристики основних компонентів EFL:
- Eina - бібліотека з реалізацією різних типів даних (масив, хеш, список, дерево) і корисних інструментів (робота з логами, оцінка продуктивності, перетворення форматів тощо).
- Eet - бібліотека для запису довільного набору блоків даних у файл та їхнього подальшого частого читання в довільному порядку
- Evas - система рендерингу для організації виведення на екран. Evas оперує вмістом екрану як сценою, на якій розміщуються певні об'єкти, стан яких в подальшому відстежується. Подібний підхід, абстрагований від розміщення екранних елементів, дозволяє розробляти інтерфейс користувача з точки зору дизайнера, а не програміста (в коді досить визначити тільки логіку і не думати про промальовуванні і виведення на екран). Evas також абстрагує метод виводу, що дозволяє використовувати один і той же код в поєднанні як з програмним рендерингом, так і з OpenGL. При цьому над сценою можна проробляти такі операції як масштабування, обертання і 3D-трансформації. Evas забезпечує чудову продуктивність навіть при використанні програмних методів візуалізації, без задіяння апаратної акселерації виведення.
- Ecore - бібліотека для організації циклу обробки подій, що має в своєму арсеналі набір модулів для спрощення пов'язаних з обробкою подій завдань, таких як робота з X, Evas, нитками, мережними з'єднаннями тощо
- Embryo - бібліотека для написання невеликих компільованих застосунків для вбудованих пристроїв.
- Edje - графічна бібліотека, яка відокремлює зовнішній вигляд від коду (оформлення задається у вигляді завантажується з файлу шаблону). За своєю суттю Edje займає нішу десь між HTML+CSS і Flash/PSD/SVG. За допомогою цієї бібліотеки можна сформувати насичений користувацький інтерфейс, забезпечений анімованими візуальними ефектами і підтримкою динамічного оформлення (зовнішній вигляд можна повністю модифікувати просто змінивши EDJ-шаблон і не чіпаючи код, при цьому, на відміну від візуальних тем, порядок розташування елементів може бути довільно змінений)
- Efreet - бібліотека, що дозволяє використовувати в застосунках деякі специфікації Freedesktop.org по роботі з піктограмами, Desktop-файлами і меню.
- E_Dbus - надбудова над D-Bus API, що дозволяє використовувати його в EFL-застосунках і інтегрувати в основний цикл обробки подій Ecore/main.
- Eeze - бібліотека для організації взаємодії з зовнішніми пристроями через udev, HAL і інші механізми.
- Expedite - інструментарій для вимірювання продуктивності, який може тестувати різні рушії Evas, такі як X11, XRender, OpenGL, SDL і DirectFB. Методика тестування максимально наближена до реальних умов.
- Eio - абстрактний інтерфейс для доступу до файлової системи і реалізації асинхронного вводу/виводу;
- Emotion - бібліотека для інтеграції в EFL-застосунки підтримки програвання аудіо і відео. Програвання відео може здійснюватися з використанням Gstreamer, Xine, VLC або інших зовнішніх плагінів, при цьому відео відображається як стандартний об'єкт в Evas;
- Ethumb - бібліотека для формування ескізів зображень, відповідних стандартам freedesktop.org. Ethumb реалізований у вигляді сервісу dbus і клієнтської бібліотеки, взаємодіє з даним сервісом;
- Elementary - набір віджетів з готовою реалізацією різноманітних графічних елементів (від кнопок і елементів управління, до календаря і модуля редагування тексту).
Додаткові компоненти, що розвиваються в рамках проекту Enlightenment:
- Enlightenment - віконний менеджер, на базі якого, в поєднанні з такими компонентами, як файловий менеджер, набір віджетів і робочий стіл, формується десктоп-оточення;
- Ephoto - менеджер для управління колекцією фотографій;
- Eve - web-браузер на базі рушія WebKit (використовується бібліотека EFLWebKit);
- Editje - візуальний редактор для проектування інтерфейсу користувача, що оперує файлами .edc і .edj;
- Біндінг для мов Python, JavaScript, Vala, C++, Perl та Ruby
- Elua — runtime на основі LuaJIT, призначений для швидкої розробки застосунків мовою Lua з використанням EFL.
- Стабильный релиз EFL 1.13 (Enlightenment Foundation Library) [Архівовано 11 лютого 2015 у Wayback Machine.] - opennet.ru