Введение

Веб-браузер

NetSurf — это веб-браузер с открытым исходным кодом, использующий собственный движок отрисовки. Его основная цель — легковесность и портативность. NetSurf предоставляет такие функции, как просмотр вкладок, закладки и создание эскизов страниц. Проект NetSurf был начат в апреле 2002 года в ответ на обсуждение недостатков существующих веб-браузеров платформы RISC OS. Вскоре после запуска проекта, для пользователей RISC OS стали доступны загрузки предварительных версий через автоматизированную систему сборки проекта. NetSurf четыре раза, с 2004 по 2008 год, был признан "Лучшим некоммерческим программным обеспечением" в ежегодных наградах RISC OS от Drobe Launchpad. NetSurf поддерживает как основные системы (например, macOS и Unix-подобные), так и устаревшие или малораспространенные платформы (например, AmigaOS, Haiku, Atari TOS, RISC OS и Redox). В 2011 году браузер занял 8-е место в статье, выделяющей 10 браузеров для Linux, опубликованной в TechRepublic и ZDNet. В 2010 году его описывали как CLI-браузер, превосходящий w3m.

Особенности

Многоплатформенное ядро NetSurf написано на ANSI C и реализует большинство спецификаций HTML 4 и CSS 2.1, используя собственный движок верстки. Начиная с версии 2.0, NetSurf использует Hubbub – HTML-парсер, соответствующий спецификации HTML5. Помимо отображения изображений в форматах GIF, JPEG, PNG и BMP, браузер также поддерживает форматы, специфичные для RISC OS, включая файлы Sprite, Draw и ArtWorks. Разработчик Джон Марк Белл в 2007 году предложил добавить поддержку JavaScript. Эта функция не была реализована в NetSurf v2 в 2008 году и в NetSurf v3 в 2013 году, однако с декабря 2012 года доступны некоторые предварительные сборки NetSurf, содержащие поддержку JavaScript на ранней стадии разработки (впоследствии значительно улучшенную). 20 апреля 2013 года была выпущена версия NetSurf 3.0.

История

NetSurf начал свою деятельность в апреле 2002 года как веб-браузер для платформы RISC OS. Работа над портом GTK началась в июне 2004 года для содействия разработке и отладке. С тех пор он приобрел многие функции пользовательского интерфейса, присутствующие в версии RISC OS. Браузер поставляется с несколькими дистрибутивами, включая Ubuntu, NetBSD и OpenBSD. После пяти лет разработки первая стабильная версия браузера была выпущена 19 мая 2007 года, чтобы совпасть с выставкой RISC OS в Уэйкфилде. Версия 1.0 была доступна для загрузки с веб-сайта проекта, а программное обеспечение продавалось на CD на выставке. После выпуска NetSurf 1.0 было выпущено два точечных релиза, которые в основном включали исправления ошибок. NetSurf 1.1 был выпущен в августе 2007 года, а в марте 2008 года был выпущен NetSurf 1.2. NetSurf участвовал в Google Summer of Code в 2008 году в качестве наставнической организации, реализуя четыре проекта. Они включали улучшение интерфейса GTK, добавление поддержки экспорта PDF-файлов и разработку библиотеки разбора HTML, совместимой с HTML 5, – Hubbub. Все сборки NetSurf, начиная с 11 августа 2008 года, использовали Hubbub для разбора HTML, и она доступна для использования в других проектах под лицензией MIT. NetSurf снова был принят в качестве наставнической организации в Google Summer of Code 2009. В рамках проектов была разработана LibDOM – объектная модель документа проекта, а также улучшен пользовательский интерфейс NetSurf. Работа над интерфейсом включала перенос функциональности, ранее доступной только в RISC OS, в многоплатформенное ядро, включая закладки, глобальную историю, управление cookie и функции поиска страниц. Также был начат порт на операционную систему Windows. В 2010 году проект NetSurf не подавал заявку на участие в Google Summer of Code из-за других обязательств разработчиков. NetSurf 2.0 был выпущен в апреле 2009 года для RISC OS, Linux и других Unix-подобных платформ, BeOS, Haiku и AmigaOS 4. Это была первая версия, использующая библиотеку разбора HTML5 проекта – Hubbub. В мае 2009 года пользователям был выпущен релиз для обслуживания NetSurf 2.1, включающий исправления ошибок и некоторые улучшения в макете страниц. NetSurf 2.5 был выпущен в апреле 2010 года. Это был первый релиз, использующий библиотеку проекта для разбора и выбора CSS – LibCSS, а также новый внутренний кэш для загруженного контента. NetSurf 2.7 был выпущен в апреле 2011 года и добавил поддержку древовидного представления для функций, включая закладки (называемые менеджером Hotlist в NetSurf), управление историей и управление cookie. Это также была первая версия, выпущенная для Mac OS X. В сентябре 2011 года был выпущен NetSurf 2.8. В апреле 2012 года был выпущен NetSurf 2.9. Наиболее значительными изменениями стали новое поведение многозадачности, оптимизированная обработка URL-адресов, оптимизация загрузчиков, оптимизация кэша и более быстрый выбор CSS. В апреле 2013 года был выпущен NetSurf 3.0. Главное отличие заключалось в использовании новой библиотеки объектной модели документа – LibDOM. Эта новая библиотека является основой, которая прокладывает путь для разработчиков NetSurf в реализации полностью динамического движка макета в будущем. Другие улучшения в NetSurf 3.0 включают в себя совершенно новую поддержку текстовых областей, возможность одновременной загрузки и разбора CSS и HTML-документов, масштабную рефакторизацию и множество небольших изменений и исправлений. В апреле 2014 года был выпущен NetSurf 3.1, содержащий множество улучшений по сравнению с предыдущим выпуском. Основные особенности включают значительно более высокую производительность выбора CSS, более быстрое время запуска, новый внешний вид древовидных представлений (Hotlist/закладки, глобальная история и менеджер cookie), улучшенную обработку опций, поддержку отмены/повтора в текстовых областях и общее улучшение форм. Также включены многие другие дополнения, оптимизации и исправления ошибок. В июле 2019 года был выпущен NetSurf 3.9 с поддержкой CSS Media Queries (уровень 4) и улучшениями обработки JavaScript.

Порты

Разработан собственный порт для BeOS/Haiku. Поскольку версия GTK была создана для AmigaOS с использованием Cygnix, предоставляющего среду X11, также был разработан собственный порт для AmigaOS. Порт для Windows также доступен для скачивания. В сентябре 2008 года был создан порт с использованием фреймбуфера. Порт для Plan 9 также основан на нём. В январе 2010 года разработчики NetSurf объявили о выпуске того, что они в то время считали последним релизом для RISC OS. Ведущий разработчик Джон Марк Белл тогда заявил: «По сути, люди, обладающие необходимой квалификацией для поддержки порта RISC OS, по уши загружены другими делами». Впоследствии Стив Фрайатт вызвался стать сопровождающим. В январе 2011 года было объявлено о порте для Mac OS X. Также в январе 2011 года была начата работа над портом для 16-битных и 32-битных компьютеров Atari.

визурф

visurf — это форк NetSurf, разрабатываемый Дрю ДеВолтом. В нём используются клавишные сочетания, вдохновлённые vi, и графический интерфейс, работающий только с Wayland.