lexbor 2.7.0

good-penguin.png

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 прочитано 958 раз