lexbor 2.7.0

13 марта, после четырёх месяцев разработки, состоялся выпуск 2.7.0 высокопроизводительной библиотеки lexbor, предназначенной для обработки форматов HTML 5 и CSS.
Основные особенности проекта:
- полная поддержка спецификаций WHATWG, W3C и Unicode: HTML5, CSS Syntax 3, Encoding, URL, Unicode Standard Annex #15, Unicode Technical Standard #46, Punycode, Unicode Standard Annex #15, Unicode Technical Standard #46;
- манипулирование элементами и атрибутами DOM: добавление, изменение, удаление и прочее;
- поддержка разбора фрагментов HTML;
- прохождение всех тестов построения деревьев DOM;
- протестирована на более чем 200 миллионах HTML-страниц с помощью ASAN;
- поддержка определения кодировки по потоку байтов;
- анализ стилей 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.
Основные изменения:
- Добавлена поддержка амальгамации (объединения исходных файлов в один файл). Это упрощает интеграцию библиотеки в проекты — достаточно подключить один файл вместо использования всей системы сборки. Подробности см. в документации.
- Проведена масштабная переработка кода, отвечающего за разбор CSS, для подготовки к реализации вёрстки.
- Добавлена проверка входящего потока в HTML-парсере (это необходимо исключительно для вывода ошибок разбора в соответствии со спецификацией). Отключена по умолчанию, подробнее см. html/#tokenizer-options.
- Подготовка кода к выпуску движка вёрстки.
- Общие улучшения и исправления ошибок.
>>> Сайт проекта
>>> Исходный код
>>> Документация
>>> Сделанные и запланированные возможности
>>> Подробности о версии 2.7.0 на GitHub
Linux.org.ru прочитано 2065 раз
