После нескольких месяцев разработки увидел свет первый релиз быстрого и самодостаточного HTML парсера MyHTML. Код написан на языке Си и распространяется под лицензией LGPL v2.1. На основе данного проекта разрабатывается рендер HTML, написанный на "голом" Си без зависимостей, способный формировать результирующий образ страниц без использования движков, подобных WebKit и Gecko. Кроме того, близится к завершению работа над CSS-парсером MyCSS.

Особенности MyHTML:

  • Высокая производительность, значительно опережающая парсеры Gumbo, HTML5Lib, HTML5Ever и libhubbub;
  • Обработка токенов и построение дерева в асинхронном режиме;
  • Полная поддержка спецификаций HTML 5, по состоянию на 19.06.2016;
  • Возможность добавлять, изменять и удалять элементы и их атрибуты;
  • Поддерживает 39 кодировок на входе. На выходе только UTF-8, вся работа внутри только в UTF-8
  • Автоматическое определение кодировки текста. Доступны unicode: UTF-8, UTF-16LE, UTF-16BE (+ определение по BOM) и русские кодировки windows-1251, koi8-r, iso-8859-5, x-mac-cyrillic, ibm866
  • Может работать в однопоточном Single Mode или может быть собран без потоков;
  • Возможность парсить фрагменты HTML или парсить кусками (chunks);
  • Не имеет внешних зависимостей;
  • Поддерживает C99;
  • Два варианта API: низкоуровневый и высокоуровневый;
  • Не испытывает проблем если на вход подать бинарный файл или невалидный HTML;

Проект также предоставляет большую подборку примеров по использованию и описание API.

Источник: http://www.opennet.ru/opennews/art.shtml?num=44782