The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Первый релиз многопоточного HTML-парсера MyHTML

13.07.2016 15:28

После нескольких месяцев разработки увидел свет первый релиз быстрого и самодостаточного 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.

  1. Главная ссылка к новости (https://github.com/lexborisov/...)
Автор новости: Alexander
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/44782-myhtml
Ключевые слова: myhtml, html
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (162) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, neon1ks (ok), 20:16, 13/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Круть!)
     
     
  • 2.52, Rodegast (??), 11:21, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • –17 +/
    Вот было бы на haskell-е, тогда бы была бы действительно круть...
     
     
  • 3.54, Вадик (??), 12:10, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну а смысл. C достаточно универсален. Биндинги к нему напилить и все круто будет. А хаскель...да, мы любим хаскель.
     
     
  • 4.88, Rodegast (??), 14:46, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну как минимум с многопоточностью у haskell-а дела обстоят лучше.
    А вообще проект мне понравился. Надеюсь что у автора всё получится в полной мере.
     
     
  • 5.110, Uri (??), 18:08, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Эммм, что-что?

    Я не ослышался - У хаскеля с многопоточностью дела лучше, чем у С???

     
     
  • 6.134, Rodegast (??), 21:52, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно. Аппликативный код распараллеливается лучше итеративного. При словах "многопоточного HTML-парсера" у меня первая мысль была об erlang-е, но я подумал и всё-таки написал про haskell.
     
     
  • 7.161, Аноним (-), 21:22, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Конечно. Аппликативный код распараллеливается лучше итеративного. При словах "многопоточного
    > HTML-парсера" у меня первая мысль была об erlang-е, но я подумал
    > и всё-таки написал про haskell.

    Если он будет такой же как ejabberd - спасибо, но оставьте это себе.

     
  • 5.116, Аноним (-), 18:40, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А со сборкой мусора? Будет ли код такой же быстрый как и на си?
     
     
  • 6.136, Rodegast (??), 22:05, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Насколько гипотетический парсер на haskell-е будет быстрее|медленнее сабжа сказать трудно. Но достаточно быстрый парсер написать можно. См. ссылку ниже.
     
  • 6.141, Аноним (-), 23:13, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    зачем такому проекту сборщик?
     
  • 3.62, rob pike (?), 13:02, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://github.com/bazqux/fast-tagsoup
     
     
  • 4.89, Rodegast (??), 14:48, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Оно что-то давно не обновлялось, хотя скорость 20-200MB/sec это более чем круть ;)
     
  • 3.124, Vombat (?), 19:34, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А что сложного написать? Поставь задачу и вперед.
     
  • 3.160, Аноним (-), 21:21, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вот было бы на haskell-е, тогда бы была бы действительно круть...

    Куда это потом девать? Пофапать и выбросить? На сях то оно куда угодно прикручивается при должном желании.

     

  • 1.2, G.NercY.uR (?), 20:16, 13/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Написано всё очень оптимистично и красиво! Это в итоге использовать можно будет для построения браузерного движка или какие у этого парсера предназначения?
     
     
  • 2.3, НяшМяш (ok), 20:21, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Судя по тому, что будут писать рендер, да ещё и MyCSS на подходе - есть все шансы увидеть новый браузер.
     
     
  • 3.5, rob pike (?), 20:27, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нету. Главное это layout, rendering и Javascript.
     
     
  • 4.14, lastmac (?), 22:23, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +8 +/
    layout, reflow and other

    Будет, всё будет. Если почитать статьи к парсеру то там я указывал, что рендер уже есть, но всё написано в черновом варианте. Сейчас же идет разработка чистовика. JS будет сторонний, пока сторонний.

    На хабре (https://habrahabr.ru/post/277031) я описывал что за проект и к чему стремлюсь. Возможно скоро я буду делать его не один.

     
     
  • 5.16, rob pike (?), 22:30, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Это вы отрисовку шрифтов к other отнесли?
     
     
  • 6.17, Аноним (-), 22:35, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А куда её отнести? Или отрисовка шрифтов -- это ключевое что есть?
     
     
  • 7.18, rob pike (?), 22:58, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В те 10% задачи, которые займут 90% времени.

    > Или отрисовка шрифтов -- это ключевое что есть?

    Это с какой стороны смотреть. Но если относить в other - вас ждёт открытий чудных, и больших надежд на релиз такого браузера я бы не питал.

     
     
  • 8.105, Аноним (-), 17:16, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Есть большая разница между отрендерить шрифт и отрендерить шрифт с антиалисами н... текст свёрнут, показать
     
     
  • 9.119, Crazy Alex (ok), 18:51, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Во-первых, это забота библиотек Во-вторых - это кому как У меня вот нет ретин... текст свёрнут, показать
     
     
  • 10.149, Аноним (-), 09:20, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    поехавшие шрифты поехавшие сайты Сейчас настолько адская смесь из css, js, h... текст свёрнут, показать
     
  • 5.26, G.NercY.uR (?), 06:05, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Уважаемый, если вы не измените своим принципам и до конца будете идти по пути качественного кода, с упором на скорость и минимальные потребляемые ресурсы, и в итоге если ещё появится браузер, которым можно будет пользоваться на системе с 256 мегами памяти, то мой вам поклон и запись в постоянные донейторы вашего проекта.
     
     
  • 6.34, Crazy Alex (ok), 08:50, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вообще-то один из простых способов получить скорость и компактность - не давать страницам делать лишнего. Ну там - дефолтное полное отключение JS в неактивных вкладках (с белым списком, конечно), а тои полная выгрузка уже распарсенного и загруженного контента в каких-то разумных (вероятно, слегка сжатых чем-то быстрым вроде imagezero и подобных) форматах на диск, возможность прервать исполнение уже загруженного и запущенного JS и тому подобное. И этого всего в существующих браузерах здорово не хватает.
     
     
  • 7.47, тоже Аноним (ok), 10:51, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Секрет в том, что тормоза в браузерах и оплата их разработки идут из одного источника - рекламных сетей. Браузер со встроенной изначально резалкой шлака будет заметно быстрее Хрома, например, даже в том случае, если будет просто Хромиумом со встроенной резалкой шлака.
     
     
  • 8.56, Crazy Alex (ok), 12:21, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Я скорее согласен, чем нет Речь была о том, что это условно простой путь полу... текст свёрнут, показать
     
     
  • 9.68, rob pike (?), 13:17, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В принципе, совсем необязательно Есть какое-то количество ниш, в которых был бы... текст свёрнут, показать
     
     
  • 10.72, Crazy Alex (ok), 13:41, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет там никаких проблем с ресурсами - ни в делах автомобильных, ни в промышленно... текст свёрнут, показать
     
     
  • 11.80, rob pike (?), 14:18, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И проблемы с ресурсами есть, и с ограничением фич всё очень плохо Продвинутые п... текст свёрнут, показать
     
     
  • 12.90, Crazy Alex (ok), 14:56, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Архитектура хребет плагины, которые можно цеплять цепочками , в общем-то, не ... текст свёрнут, показать
     
     
  • 13.96, rob pike (?), 15:35, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Она не сложна ровно до момента её имплементации Особенно вместе требованиями ... текст свёрнут, показать
     
     
  • 14.118, Crazy Alex (ok), 18:44, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да делана такая архитектура сто раз и мной в том числе - нет ничего великого в... текст свёрнут, показать
     
     
  • 15.128, rob pike (?), 21:33, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошая архитектура препятствует набеганию тысяч неквалифицированных разработчик... текст свёрнут, показать
     
     
  • 16.143, Crazy Alex (ok), 00:02, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда у нас очень разные понятия о хорошей архитектуре Вопрос, в общем-то, не в... текст свёрнут, показать
     
     
  • 17.147, Аноним (-), 07:57, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    зачем тебе unix shell убогий твое корыто это systemd - вот жри его и вперед ... текст свёрнут, показать
     
  • 8.67, rob pike (?), 13:15, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вы опять главного не сказали - за этим стоят Ротшильды или Рокфеллеры ... текст свёрнут, показать
     
  • 7.117, Аноним (-), 18:44, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    К сожалению тут надо очень долго возится, иначе сайты получятся совсем не юзабельными
     
  • 7.165, Аноним (-), 04:18, 16/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще-то один из простых способов получить скорость и компактность - не давать
    > страницам делать лишнего.

    Во-первых, сейчас сами браузеры пытаются делать много лишнего, от борьбы с фишингом до телеметрии внаглую.

    Во-вторых, без разрешения этого лишнего - сайты часто работать перестают. Для понимания, посмотри на twitter bootstrap. Без js половина оформления отваливается, хотя формально js опционален. А оно популярное и на этом каждый второй сайт сделан.

     
  • 6.50, lastmac (?), 11:04, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Уважаемый, если вы не измените своим принципам и до конца будете идти
    > по пути качественного кода, с упором на скорость и минимальные потребляемые
    > ресурсы, и в итоге если ещё появится браузер, которым можно будет
    > пользоваться на системе с 256 мегами памяти, то мой вам поклон
    > и запись в постоянные донейторы вашего проекта.

    Спасибо вам!
    Своим принципам я не поступлюсь.

     
  • 5.37, Аноним (-), 09:37, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вы правда (если это вы) собираетесь в одиночку сделать конкурента Firefox и Chrome? Либо вы гений, либо глупец.
     
     
  • 6.41, Crazy Alex (ok), 10:17, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Или умный человек, способный поставить задачу премлемого масштаба, не пытаясь реализовать всё, что понапихали в этих кадавров. Ну и читайте внимательнее то, на что отвечаете - "возможно скоро я буду делать его не один."
     
     
  • 7.64, rob pike (?), 13:06, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Заодно можно реализовать много другого.
    Да и один в поле тоже воин - http://lambda-the-ultimate.org/node/3851#comment-57760
     
  • 6.42, Sen (?), 10:31, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    где-то это было... А точно Линуксу этоже сказали в своё время... И да Google тоже из тех же ребят)))
     
  • 6.49, lastmac (?), 10:59, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Вы правда (если это вы) собираетесь в одиночку сделать конкурента Firefox и
    > Chrome? Либо вы гений, либо глупец.

    К счастью, или сожалению, но мне это говорят часто. Я не пытаюсь сделать, как это модно сейчас говорить, "убийцу" того или другого. Я просто не доволен тем что есть и делаю так как считаю правильным.

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

    Я реалист, проект очень большой. Просто вот нахрапом такое не сделать. Можно даже сказать, что браузер это свод современных технологий/решений. В общем, это крайне не простая "штука".

     
     
  • 7.57, G.NercY.uR (?), 12:25, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Автор как я считаю, пример исчезающих к сожалению, романтиков IT отрасли Это ра... большой текст свёрнут, показать
     
     
  • 8.60, Crazy Alex (ok), 12:36, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вокруг 4 браузера Chrome, Edge, Mozilla, Safari То, что на движки хрома ещё па... текст свёрнут, показать
     
     
  • 9.69, rob pike (?), 13:23, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Есть несколько экспериментально-академических движков - ну, не движков, а proof ... текст свёрнут, показать
     
  • 8.73, vitalif (ok), 13:42, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    ты кстати зря, firefox за это время например ускорился и течь таки меньше стал а... текст свёрнут, показать
     
  • 8.77, Аноним (-), 14:00, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну вот Mozilla переписала с нуля движок на Rust Как до хотя бы до беты дойдет п... текст свёрнут, показать
     
     
  • 9.82, rob pike (?), 14:20, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Там до переписывания и до того что можно было бы назвать движком еще очень далек... текст свёрнут, показать
     
  • 9.91, Crazy Alex (ok), 14:58, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    У мозиллы слишком отличается направление движения - всё упростить, ориентироват... текст свёрнут, показать
     
     
  • 10.97, rob pike (?), 15:37, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Самое смешное, конечно, в том что она будет еще и никому не нужная, потому что C... текст свёрнут, показать
     
     
  • 11.144, Crazy Alex (ok), 00:03, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вот то, что до них это не доходит, меня удивляет больше всего ... текст свёрнут, показать
     
     
  • 12.150, rob pike (?), 09:37, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А в других случаях - с Blackberry, например - не удивляет Это обыденность, редк... текст свёрнут, показать
     
  • 5.162, Аноним (-), 21:29, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > На хабре (https://habrahabr.ru/post/277031) я описывал что за проект и к чему стремлюсь.
    > Возможно скоро я буду делать его не один.

    А что, набор технологий ничего так, симпатично и со вкeсом. Никакой хипстерской фигни и решения всех мировых проблем, все по делу. Автор крут.

     

     ....большая нить свёрнута, показать (42)

  • 1.4, rob pike (?), 20:24, 13/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Сравнение с парсером на Rust - http://lexborisov.github.io/benchmark-html-persers/
     
     
  • 2.6, freehck (ok), 20:52, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ух. Да оно на порядок опережает servo/html5ever. Очень, очень достойный результат.
     
     
  • 3.7, rob pike (?), 21:20, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +16 +/
    Это какая ошибка, ведь Rust самый лучший язык, у servo самые лучшие разработчики на самом лучшем языке, Mozilla Foundation самая прогрессивная опен-сорс компания, а поезд Си давно ушел!
     
     
  • 4.100, Аноним (-), 15:43, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Как уже упоминал тёзка, html5ever скорее заглушка, которая ещё будет пилиться. Ну и gumbo тоже, как бы, на Си написан.
     
     
  • 5.102, rob pike (?), 16:37, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Но ведь скорость разработки на прогрессивном языке Rust обгоняет фотоны в вакууме!
    Почему же заглушка и будет пилиться? Ведь Servo разрабатывается рекордными темпами и со дня на день вытеснит устаревшие браузеры окончательно?
     
     
  • 6.108, Аноним (-), 18:00, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Но ведь скорость разработки на прогрессивном языке Rust обгоняет фотоны в вакууме!

    Казалось бы, причем тут скорость разработки.
    > Почему же заглушка и будет пилиться?

    Так что там с тормозами Gumbo?

     
     
  • 7.129, rob pike (?), 21:35, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Казалось бы, причем тут скорость разработки.

    Разве это не одна из уникальных особенностей прогрессивного языка Rust, выгодно отличающая его от устаревших языков Си и С++?

     
     
  • 8.139, Аноним (-), 22:52, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Так вы из неолуддитов будете ... текст свёрнут, показать
     
  • 4.163, Аноним (-), 22:19, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Это какая ошибка, ведь Rust самый лучший язык, у servo самые лучшие
    > разработчики на самом лучшем языке, Mozilla Foundation самая прогрессивная опен-сорс компания,
    > а поезд Си давно ушел!

    Разработчики из мозиллы свалили а у менеджеров всегда все самое лучшее. Но, к сожалению, только в маркетинговых буклетиках.

     
  • 3.19, angra (ok), 22:58, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Мсье точно смотрел графики? В каком месте на порядок? Или кто-то не знает, что порядок это в 10 раз, а не на 10%?
     
     
  • 4.21, rob pike (?), 23:01, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > MyHTML Overall time: 0.50890
    > HTML5Ever Overall time: 4.50536
     
     
  • 5.22, angra (ok), 23:11, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну как и предполагалось, графиков не смотрели, просто глянули на итоговые цифры.
     
     
  • 6.24, rob pike (?), 01:05, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Может быть вы расшифруете свою мысль, снизойдете до пояснений?
     
     
  • 7.51, angra (ok), 11:06, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В большей части случаев разница не в 10 раз, а от двух до четырех. То есть финальная разница в 10 раз сделана небольшим количеством сайтов. Причем очень любопытно, что на какой-нибудь паре сайтов сабж справляется за почти одинаковое время, а html5ever  с разницей в три раза. Тут два варианта, либо есть проблемы с парсингом каких-то конструкций в html5ever, либо сабж просто скипает парсинг некорректных кусков. И в этом серьезная проблема всего бенчмарка, он сравнивает скорость парсинга, но не проверяет корректность или хотябы равенство результатов у парсеров.
     
     
  • 8.55, lastmac (?), 12:14, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сравниваются только полноценные парсеры То есть те кто полностью соответствует ... текст свёрнут, показать
     
     
  • 9.104, angra (ok), 17:12, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Еще раз, сравнивались ли деревья, построенные парсерами на этих 60к сайтов, мног... текст свёрнут, показать
     
     
  • 10.115, Crazy Alex (ok), 18:38, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Чуть ниже по треду есть же ответ http www opennet ru openforum vsluhforumID3 ... текст свёрнут, показать
     
     
  • 11.122, angra (ok), 19:08, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Это не ответ на мой вопрос Ну разве что считать это признанием в том, что на са... текст свёрнут, показать
     
     
  • 12.125, lastmac (?), 19:47, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Быть может вы удивитесь, но их нельзя сравнить по конечной серелизации данных В... большой текст свёрнут, показать
     
     
  • 13.126, angra (ok), 21:17, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Я веду речь о том, что нельзя сравнивать напрямую скорость, если результат выдае... текст свёрнут, показать
     
     
  • 14.130, lastmac (?), 21:38, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Каждый тест парсится меньше чем за 1мс 0 00001 Там нечего тестировать на скор... текст свёрнут, показать
     
     
  • 15.138, angra (ok), 22:32, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Это нормально для тестов, но обычно в таких случаях их просто запускают нужное к... текст свёрнут, показать
     
  • 2.10, ZloySergant (ok), 21:35, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Сравнение с парсером на Rust - http://lexborisov.github.io/benchmark-html-persers/

    Упс.

    P.S. Да, некрасиво получается. С другой стороны, кто-то, вообще, на ASM'е пишет.

    P.P.S. Больно всяким бидонистам? Обидно? Ну так что делать-то? У низкоуровневых (при наличии мозгов у прогера) - оверхеда-то -  нет.

    P.P.S.S.
    Слава-слава бидонистам! (нужную фигню - вставить)
    Прирожденным оптимистам, (на предмет проца и памяти)
    Кто способен в поле чистом
    Всю систему положить! (без комментариев. Наблюдал)

     
     
  • 3.15, Аноним (-), 22:28, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Не ругай меня, родная, что накодил тут г..на я :D
     
     
  • 4.20, rob pike (?), 22:59, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > на я :D

    Ну что вы, на прогрессивном языке D получилось бы раз в 200 быстрее.


     
  • 3.107, Аноним (-), 17:28, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    То что ты наблюдал в кабинете информатики своего ПТУ это конечно важные наблюдения, но реальность "немножко" другая. Стыдно не знать что к питону подключаются всякие сишные библиотечки, совмещая скорость Си и простоту питона. К примеру есть вполне себе массовый и шустрый питоновский парсер grab, который написан вокруг обвязки сишной библиотеки lxml. Работает и шустро и просто. Больно, да?
     
     
  • 4.153, Mail (?), 11:19, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    На perl обвязка еще быстрее.

    Совсем больно?

     
     
  • 5.155, Аноним (-), 11:46, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > На perl обвязка еще быстрее.
    > Совсем больно?

    Во первых, то что на перл быстрее - надо пруф.
    Во вторых, больше обвязок, хороших и разных.

     
  • 4.166, ZloySergant (ok), 20:08, 06/08/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > То что ты наблюдал в кабинете информатики своего ПТУ это конечно важные
    > наблюдения, но реальность "немножко" другая. Стыдно не знать что к питону
    > подключаются всякие сишные библиотечки, совмещая скорость Си и простоту питона. К
    > примеру есть вполне себе массовый и шустрый питоновский парсер grab, который
    > написан вокруг обвязки сишной библиотеки lxml. Работает и шустро и просто.
    > Больно, да?

    Солнышко, ты хоть усрись, но конечный продюкт, транслируемый в машинный код всякие парсеры-херарсеры не превзойдут. Все равно что сказать: наша картонная мороженка круче Вашей нативной из молока! Всегой-то надо отшелушить десяток слоёв картона. А там - тот самый пломбир.

     
  • 2.11, Аноним (-), 21:54, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > x86_64-apple-darwin15.3.0

    Не интересно.

     
     
  • 3.23, НяшМяш (ok), 00:01, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Полезнее было бы вместо очередного коммента про проявление отсутствия интереса выложить свои тесты. Пусть даже если эти тесты были сделаны на твоей любимой десяточке.
     
     
  • 4.48, lastmac (?), 10:51, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Полезнее было бы вместо очередного коммента про проявление отсутствия интереса выложить
    > свои тесты. Пусть даже если эти тесты были сделаны на твоей
    > любимой десяточке.

    Я могу порыть интернеты, бенчмарки были выложены пару месяцев назад. Тогда, после публикации на reddit, люди тестировали на разных платформах и согласились с результатом. Весь код открыт.

     
  • 2.63, Аноним (-), 13:04, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    html5ever в нынешнем виде не предназначен для использования в продакшне. Это по сути заглушка для прохождения тестов, которая позже будет полностью переписана. Все делающие выводы из этого сравнения, извините за мой французский, некомпетентные идиоты.
     
     
  • 3.121, lastmac (?), 19:02, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не нужно ругаться. Откуда у вас эта информация?

    Где-то три-четыре месяца назад мне писали из мазилы (на работу звали), где некий сотрудник среди прочего утверждал, что в данный момент делаются тюнинг и оптимизации кода. Речи о заглушках и полном переписывании не шло. Хотя я не исключаю, что ребята таки соберутся и перепишут парсер полностью.

    В данный момент они утверждают, что их парсер: High-performance browser-grade HTML5 parser

    Но и я на месте стоять то не буду.

     

     ....большая нить свёрнута, показать (33)

  • 1.8, Гость (??), 21:31, 13/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Код написан на языке Си

    Дырки присутствуют?

     
     
  • 2.12, Аноним (-), 22:01, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Количество не найденных ещё дырок всегда бесконечно (цэ).
     
     
  • 3.13, Аноним (-), 22:13, 13/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А всё почему? Потому, что ошибка неисчерпаема, как атом.
     
     
  • 4.25, rob pike (?), 01:06, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Как Electron.
     

  • 1.9, Пользователь Debian (?), 21:33, 13/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Ну, вообще-то реальный веб это не HTML5.

    Парсер для настоящего (а не сферического в вакууме) браузера, к сожалению, должен поддерживать различные ухищрения чтобы парсить кривой HTML и XHTML различных версий.

     
     
  • 2.31, Crazy Alex (ok), 08:37, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Это веб пятилетней давности. Сейчас - либо HTML5, либо что-то, где идеальная отрисовка на фиг не нужна.
     
  • 2.45, lastmac (?), 10:44, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Ну, вообще-то реальный веб это не HTML5.
    > Парсер для настоящего (а не сферического в вакууме) браузера, к сожалению, должен
    > поддерживать различные ухищрения чтобы парсить кривой HTML и XHTML различных версий.

    Всё это парсер делает. Всё ровно так же как современные браузеры. Спецификация HTML оговаривает что и как должно происходить в "непонятных" ситуациях.

    В спецификации можно посмотреть здесь:
    An introduction to error handling and strange cases in the parser:
    https://html.spec.whatwg.org/multipage/syntax.html#an-introduction-to-error-ha

    Adoption agency algorithm:
    https://html.spec.whatwg.org/multipage/syntax.html#adoption-agency-algorithm

     
  • 2.59, Аноним (-), 12:35, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Не испытывает проблем если на вход подать бинарный файл или невалидный HTML;
     

  • 1.27, Аноним (-), 06:05, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ждём новостей об уязвимостях. Хотя постойте.. нет, никто это не будет использовать.
     
     
  • 2.65, rob pike (?), 13:10, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Уже используют.
     

  • 1.28, Аноним (-), 06:55, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Замечательно. Правда, я схему парсинга скрипта неосилил, поэтому вопрос: если в javascript-строке попадется </script> он будет считаться закрывающим тэгом как у всех или нет?
     
     
  • 2.46, lastmac (?), 10:48, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Замечательно. Правда, я схему парсинга скрипта неосилил, поэтому вопрос: если в javascript-строке
    > попадется </script> он будет считаться закрывающим тэгом как у всех или
    > нет?

    Там всё не так сложно, если долго смотреть на картинку)
    Да, будет считаться закрывающим, так требует спецификация.

    http://lexborisov.github.io/myhtml/img/script_data.png

     

  • 1.29, Аноним (-), 07:02, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    html5ever собирался с флагом --release?
     
     
  • 2.44, lastmac (?), 10:40, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > html5ever собирался с флагом --release?

    Да, конечно.

     

  • 1.30, Аноним (-), 08:34, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А как в тестах проверялась корректность результатов? Т.е. что полученный вариант дерева во всех 4-х тестах на выходе совпадает. А то можно написать самый быстрый парсер, который будет выдавать на выходе полную ерунду. но быстро
     
  • 1.32, Crazy Alex (ok), 08:38, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хм, лично меня (в разумных пределах) скорость не очень волнует. Но вот если разработчику будет, в отличие от хромозилл, не плевать на мнение пользователей - это будет основной фичей. Начиная, скажем, от изначальной разработки с учётом возможности эффективно резать/править контент (адблокеры и прочее) и заканчивая удобным контролем из внешнего софта. Или, допустим, возможность подгрузки сишных плагинов, имеющих те же возможности, что и родные компоненты.
     
     
  • 2.33, Аноним (-), 08:45, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    расшифруй что значит не плевать на пользователей милок, с чего ты взял что если к твоему мнению не прислушались - то значит плюют на пользователей?
     
     
  • 3.36, Crazy Alex (ok), 08:56, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да. именно это и значит. Примеры я перечислял. А ещё есть многолетние баги, зато какой-нибудь покет запихнуть - это пожалуйста.

    Вот на разработчиков им не плевать, это да. А как защищать пользователя от кривых рук и эгоистичности этих разработчиков - так в кусты.

     
     
  • 4.39, Аноним (-), 09:53, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    а с чего ты взял что ты это все? в твоем приложении используется множественное число, но текст говорит что проблема специфична для тебя.

    Кроме того, это же opensource молодой человек. У тебя есть исходники и ты можешь это все исправить сам, или можешь заплатить кому-то кто сделает это за тебя, если это важно именно для тебя.

     
     
  • 5.40, Crazy Alex (ok), 10:12, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну вот я так считаю, что проблема не специфична только для меня. На основании того, что вижу кругом, в том числе здесь на опеннете - можете глянуть на любую новость о мозилле, например.

    Форкать в этих монстров в одиночку - нереально, организовывать команду - лично для меня мороки много. Появится что-то подходящее - поучаствую, кодом или деньгами. Вон, на сабж донейтить - хоть сейчас.

    А вообще - читать нотации идите... да хоть лесом, например.

     
     
  • 6.71, rob pike (?), 13:29, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Если разработчику будет не плевать на мнение пользователей - то шансов как раз нет, потому что толпу пользователей, желающих Chrome, но с перламутровыми пуговицами, вы никогда не перекричите.
     
     
  • 7.74, Crazy Alex (ok), 13:45, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Поэтому им надо давать возможность пришить эти самые пуговицы. Как было в мозилле, только круче - чтобы можно было влезть в сами движки.
     
     
  • 8.75, Аноним (-), 13:49, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    так вам дали эту возможность Открыли код А что за вас еще и пришить должны А ... текст свёрнут, показать
     
     
  • 9.95, Crazy Alex (ok), 15:21, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Во-первых, там что открыли, что нет - сложность кода такая, что если нет специал... большой текст свёрнут, показать
     
     
  • 10.148, Аноним (-), 08:00, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    какая разница - сколько Тебе дали возможность или нет Теперь ты ноешь что это... текст свёрнут, показать
     
  • 8.83, rob pike (?), 14:22, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вы не помните сколько из-за XUL в мозилле было проблем Хорошая архитектура - эт... текст свёрнут, показать
     
     
  • 9.92, Crazy Alex (ok), 15:08, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Я как раз с ним проблем не припомню кроме, разве что, тормозности - дык это от ... текст свёрнут, показать
     
     
  • 10.98, rob pike (?), 15:38, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Это замечательно смотрится в одной фразе с утверждениями о том что архитектура э... текст свёрнут, показать
     
     
  • 11.113, Crazy Alex (ok), 18:34, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Особых противоречий нет Не было проблем - то есть от него, грубо говоря, никто ... текст свёрнут, показать
     
     
  • 12.131, rob pike (?), 21:46, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Это по состоянию на 2016 год можно оставить Вы не помните как оно тормозило и... текст свёрнут, показать
     
     
  • 13.145, Crazy Alex (ok), 00:12, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Я на файрфоксе сидел с тех времён, когда он назывался firebird - с оперой вперем... текст свёрнут, показать
     
     
  • 14.151, rob pike (?), 10:10, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    На юниксах особенно некуда было уходить А на всех остальных платформах никто ма... текст свёрнут, показать
     
  • 5.61, Аноним (-), 12:38, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А с чего ты взял что проблема специфична только для него? Ты пробовал писать багрепорты авторам? Или думаешь он единственный кто пробовал?
     
     
  • 6.76, Аноним (-), 13:50, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > А с чего ты взял что проблема специфична только для него? Ты
    > пробовал писать багрепорты авторам? Или думаешь он единственный кто пробовал?

    Писал и не раз. Когда это было интересно автору он правил, нет - patches are welcome.
    А вы не пробовали присылать патчи авторам вместо того что бы скулить "ах бага не фиксится" ?

     

     ....большая нить свёрнута, показать (18)

  • 1.35, Crazy Alex (ok), 08:51, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Кстати - куда донейты слать?
     
     
  • 2.43, lastmac (?), 10:38, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Хороший вопрос. Я им не задавался и даже не знаю как это организовывается. Вот пару месяцев назад мне предлагали биткоинов, но я как-то застеснялся и отказался. Да и они незаконны у нас, вроде.
     
     
  • 3.58, Crazy Alex (ok), 12:33, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    У вас - это в России? Насколько я понимаю, не то чтобы незаконны, скорее  власти пока сами решить не могут, как к ним относиться. Но счёт в палке (и соответствующая кнопка Donate) точно возможны.

    А если помечтать - то проект на indiegogo с какого-то момента был бы к месту...

     

  • 1.38, Аноним (-), 09:39, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ждем выход браузера на этом деле.
     
  • 1.53, Аноним (-), 12:09, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот это проектик... Автор молодец!

    P.S. Гулять так гулять! Я бы еще посмотрел парсер на асме :) Лет 10 назад какой-то профессор сообщал, что разработал супербыстрый парсер с использованием SIMD-инструкций. Там вроде там неплохое ускорение получалось.

     
     
  • 2.66, rob pike (?), 13:12, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    SIMD-инструкции используются в довольно небольшой части парсинга, такой как проматывание до искомого символа, например.
    И сюда их встроить совсем несложно.
     

  • 1.70, Аноним (-), 13:27, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интерестно, а можно будет потом этот "браузер" (парсер+рендерер) портануть на ARM11 для Symbian 9.x с помощью P.I.P.S.?

    https://en.wikipedia.org/wiki/P.I.P.S.

    https://sourceforge.net/projects/clibrariesforsy

     
  • 1.78, Kodir (ok), 14:02, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Стотыщный парсер протухшего HTML - оно надо? Гипертекст ущербен изначально, его основной смысл был в простейшем форматировании + ссылки (типа как сейчас markdown). Но совр. сайты и принципы дизайна ушли намного дальше даже полиграфии, поэтому без нового языка веб тихо деградирует и наполняется разной говённости сайтегами, где дизайнер тратит уйму времени на элементарные вещи.
    Уже давно настало время за языком, неким гибридом внутреннего формата Adobe Illustrator и XAML.
     
     
  • 2.86, тоже Аноним (ok), 14:27, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну, молодой человек, раз уж вы сами вышли к доске, расскажите нам о внутреннем формате AI.
    Мы вас внимательно слушаем.
     
     
  • 3.109, Аноним (-), 18:03, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В старых версиях -- PostScript, в новых -- PDF.
     
     
  • 4.111, тоже Аноним (ok), 18:20, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот! А я-то и не подозревал.
    Но мы должны идти глубже!
    Вопрос первый: а что такое, собственно, PDF?
    Вопрос второй: а что, в браузере правда не хватает еще одной ВМ, теперь еще для обсчета ПостСкрипта? Его просто распарсить недостаточно, в отличие от.
    Вопрос третий: а со всей массой написанных за последние 20 лет скриптов и стилей мы будем прощаться без всякого сожаления?
    Вопрос ключевой а зачем нам вся эта головная боль, если уже существует SVG?
     
     
  • 5.132, rob pike (?), 21:49, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Переписать React на PostScript - я хотел бы на это посмотреть!
     

  • 1.79, dq0s4y71 (??), 14:10, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А зачем нужно парсер HTML делать многопоточным? По-моему, даже у компиляторов промышленного уровня парсеры не делают многопоточными, потому что основное время тратится совсем не на парсинг.
     
     
  • 2.84, rob pike (?), 14:24, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Затем что быстрый парсер нужен далеко не только компиляторам.
    Я бы даже сказал что компиляторам он нужен в последнюю очередь.
     
     
  • 3.93, dq0s4y71 (??), 15:14, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Прирост в скорости разбора среднестатистической веб-страницы будет практически незаметен, зато сложность и ресурсоёмкость многопоточного парсера будет ощутимо выше.

    А в компиляторах быстрые парсеры нужнее, потому что, в отличие от браузеров, компиляторы тратят большинство времени именно на компиляцию, а не на ожидание данных по сети и рендеринг.

     
     
  • 4.99, rob pike (?), 15:40, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Кому он будет незаметен?
    Тому кто разбирает тысячи страниц в секунду, например, безо всякого рендеринга?
     
     
  • 5.101, dq0s4y71 (??), 16:16, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В этом случае да, согласен.
     
  • 3.94, dq0s4y71 (??), 15:16, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И, кстати, именно поэтому в GCC, в конце концов, отказались от bison и переписали парсер вручную.
     

  • 1.81, dq0s4y71 (??), 14:19, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Поддерживает C99;

    Важная особенность? :)

     
     
  • 2.103, lastmac (?), 16:48, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, но глаз радует! :)
     
     
  • 3.140, Аноним (-), 22:53, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вот будете в прошлое путешествовать, сразу поймёте.
     
  • 3.158, dq0s4y71 (??), 12:59, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда надо было написать "поддерживает ООП" или что-нибудь "визуальное". Школота это понимает.
     

  • 1.85, Антоним (ok), 14:26, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Жду не дождусь нативного браузера под андроид.

    >Возможность добавлять, изменять и удалять элементы и их атрибуты;

    Это киллер-фича (при соотв реализации).

    К примеру, запретил
    document.write
    (все равно им одну рекламу вставляют)
    И весь этот шлак удаляется на уровне парсинга, соотв не надо исполнять егойный выхлоп.
    При этом сайт может остаться работоспособным и динамичным.

     
     
  • 2.87, rob pike (?), 14:35, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > К примеру, запретил document.write

    Кто же вам мешает провести натурный эксперимент? Поправьте пару строчек отвечающих за обработку document.write в Chromium или Firefox, да и пройдитесь по интернетам.

     

  • 1.106, Дуплик (ok), 17:25, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Спасибо, отличный софт!
     
     
  • 2.123, lastmac (?), 19:28, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Всегда рад помочь!
     

  • 1.120, KR (?), 18:54, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Неужели я вижу что-то, написанное не на новеньком модном Go/Rust/etc.?
     
     
  • 2.133, rob pike (?), 21:51, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    На страницы таблоидов еще изредка попадает что-то написанное на Scala, но всё реже.
    Clojure и D, недавние фавориты, уже совсем забыты.
     

  • 1.135, rob pike (?), 21:55, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > While I've never used html5ever it's landing page mentions that the DOM representation is pluggable (and suggests that the DOM included is mostly for demonstration purposes). Based on your benchmark repo it seems you're using a very simple C lib api wrapper around html5ever that indeed uses the proof-of-concept DOM.
    > So you're benchmarking something, I'm just not sure it really means much (it's not the DOM servo uses, and even if you used that; it's not an apples-to-apples comparison since a real browser DOM is likely meant to be fast at post-load JS+CSS integration, and not just quick building).
    > Personally, I think misleading benchmarks simply distract from a pretty cool pet project, so I'd just get rid of them (or think about with what you can make realistic comparisons, and how)

    https://www.reddit.com/r/programming/comments/4snfz7/the_first_release_of_fast

     
     
  • 2.137, lastmac (?), 22:13, 14/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Читал. Странный комментарий. Автор предполагает и он не прав.
    Все исходники в публичном доступе, всё можно посмотреть и потрогать.
     

  • 1.142, Аноним (-), 23:51, 14/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Прекрасный проект, спасибо вам. Попробую написать обвязочку для luajit
     
     
  • 2.146, lastmac (?), 05:35, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вам спасибо! Для вас делаю.
    Было бы крайне здорово. Вот ещё бы кто с обвязочкой для python помог.
     

  • 1.152, Аноним (-), 10:58, 15/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Джва года ждал. Когда уже запилят браузер? Я недавно видел принципиально новый пармер javascript на Си.
     
     
  • 2.154, lastmac (?), 11:45, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Дело это не простое, но реализуемое. По прогнозам сложно что-то сказать. Могу сказать одно, что это дело не двух недель и даже не двух месяцев.

    Можно ссылку на js на сях?

     
     
  • 3.156, Vsevolod Stakhov (?), 12:02, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    http://duktape.org/

    Он достаточно тормозной по сравнению с v8 и уж тем более luajit, но JS спецификациям, вроде бы, соотвествует. Еще есть v7 от cesanta, но там бездна GPL оккупации и весьма специфический стиль. Со скоростью, когда я его смотрел, были катастрофические проблемы.

     

  • 1.157, Vsevolod Stakhov (?), 12:07, 15/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Очень интересный набор фич и производительность, спасибо за работу!

    Жалко, что проекта не было, когда я искал подходящий (как минимум, по скорости) парсер html для своего rspamd - пришлось написать собственный велосипед, заточенный только под фильтрацию спама. Впрочем, возможно, будет иметь смысл перейти на ваше решение в будущем.

     
     
  • 2.159, lastmac (?), 18:13, 15/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо!

    Если перейдете на MyHTML то дайте знать, интересно кто использует у себя и как.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру