LINUX.ORG.RU

lexbor 2.7.0

 , , , ,


2

2

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 в атрибутах тегов и в теге <style>;
  • поиск 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

★★★★★

Проверено: CrX ()
Последнее исправление: CrX (всего исправлений: 3)

Ну, наконец-то! Я уже было свой браузер писать собирался, а теперь можно эту либу обвязать интерфейсом и работой с сокетами и дело сделано.

BydymTydym ★★
()
Ответ на: комментарий от BydymTydym

Я уже было свой браузер писать собирался, а теперь можно эту либу обвязать интерфейсом и работой с сокетами и дело сделано.

Так эта поделка отображать содержимое ХТМЛ-меток не умеет же. Найти метку по тексту, вынуть значение и всё.

Enthusiast ★★★★
()

А вот это интересно) Можно цеплять вместо электрона и тяжелых веб движков и делать систему знании с wysiwyg редактором без маркдауна)

Xant1k ★★
()
Последнее исправление: Xant1k (всего исправлений: 1)
Ответ на: комментарий от Xant1k

Зачем «визгивизг» в системе знаний? И сама эта «система»- зачем??..

Somebody ★★★★
()

написан на языке C (стандарт C99) без сторонних зависимостей и распространяется по лицензии Apache 2.0;

Хорошо для эмбеда и зондов (а так же кулхацкеров).

luke ★★★★★
()

написан на языке C (стандарт C99) без сторонних зависимостей и распространяется по лицензии Apache 2.0

глянул код, там dirent.h используется. Так что ещё POSIX в зависимостях.

luke ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.