
13 марта, спустя четыре месяца после начала разработки, состоялся релиз высокопроизводительной библиотеки lexbor 2.7.0, предназначенной для работы с форматами HTML 5 и CSS.
Главные особенности проекта:
- полная поддержка актуальных спецификаций WHATWG, W3C и Unicode, включая HTML5, CSS Syntax 3, Encoding, URL, Unicode Standard Annex #15, Unicode Technical Standard #46, Punycode;
- управление DOM-элементами и атрибутами: создание, модификация, удаление и другие операции;
- возможность разбора фрагментов HTML;
- успешное прохождение всех тестов, связанных с построением деревьев DOM;
- проверка стабильности с помощью ASAN на более чем 200 миллионах реальных HTML-страниц;
- автоматическое определение кодировки на основе потока байтов;
- анализ CSS-стилей непосредственно в тегах и их атрибутах;
- поиск элементов HTML с задействованием CSS-селекторов;
- поддержка кодирования и декодирования для 40 различных кодировок;
- режимы буферизованного и небуферизованного кодирования/декодирования;
- реализация на языке C (стандарт C99) без привлечения сторонних зависимостей, распространение под лицензией Apache 2.0;
- модульная архитектура (компоненты Core, CSS, DOM, Encoding, Engine, HTML, NS, Punycode, Selectors, Tag, Unicode, URL, Utils), допускающая раздельную сборку через опцию CMake LEXBOR_BUILD_SEPARATELY=ON;
- сторонние врапперы и биндинги для языков Crystal, D, Elixir, Julia, PHP, Python и Ruby.
Ключевые изменения в версии 2.7.0:
- Появилась поддержка амальгамации — объединения всех исходных файлов в единый файл для упрощения интеграции библиотеки в сторонние проекты без сложной настройки системы сборки.
- Выполнена масштабная реструктуризация кода для парсинга CSS с целью подготовки к внедрению полноценного движка вёрстки.
- Интегрирована проверка входящего потока в HTML-парсере, предназначенная для вывода специфичных ошибок разбора (по умолчанию отключена).
- Продолжена подготовка базы кода к выпуску полноценного движка вёрстки.
- Произведены общие оптимизации и исправлены выявленные ошибки.
>>> Сайт проекта
>>> Исходный код
>>> Документация
>>> Сделанные и запланированные возможности
>>> Подробности о версии 2.7.0 на GitHub
Источник: https://www.linux.org.ru






