NetSurfは、独自のレイアウトエンジンを使用するオープンソースのWebブラウザである。NetSurfは軽量で可搬性が高いことを重視して設計されており、タブ、ブックマーク、ページサムネイルなどの機能を持っている。

NetSurfプロジェクトは2002年4月に既存のRISC OS対応Webブラウザの欠陥に関する議論をうけて開始された。プロジェクトの開始当初から自動ビルドされたRISC OS用バイナリが提供されていた。 NetSurfは、2004年から2008年の間にDrobe LaunchpadのRISC OSアワードで4回「Best non-commercial software」に選出された。

NetSurfはmacOSやUnix系OSなどの主流システムだけでなく、一般的でないプラットフォームや古いシステム(例: AmigaOS, Haiku, Atari TOS, RISC OS)での動作をサポートしている。

このブラウザは2011年にTechRepublicとZDNetが公開したLinux用ブラウザのランキングで8位となった。 2010年にはw3mよりも優れたCLIブラウザとして取り上げられている。

NetSurfのコア部分はANSI Cで書かれており、ほとんどのHTML 4とCSS 2.1の仕様に対応する独自のレイアウトエンジンを用いている。 バージョン2.0以降のNetSurfはHTML5仕様に対応したHTMLパーサーのHubbubを搭載している。GIF, JPEG, PNG, BMPというような一般的なメディア形式に加え、Sprite, Draw, ArtWorksといったRISC OS固有の形式のファイルのレンダリングが可能である。

2007年には開発者のJohn-MarkBellによってJavaScriptサポートの追加が提案され、2012年12月にはプレビュー版において初歩的なJavaScriptサポートが追加され、 その後も対応が続き、 2016年2月17日にリリースされたバージョン3.4からリリース版でもDuktapeエンジンを用いたJavaScriptサポートが使用可能になっている 。

## 歴史

NetSurfは2002年4月にRISC OS用のウェブブラウザとして開発された。その後2004年6月に開発とデバッグ工程の改善のためにGTKへの移植が行われた以降もRISC OSバージョンに存在していたUI機能を維持している。現在はUbuntuやNetBSD、OpenBSDなどのシステムにパッケージが存在する。

以降も開発が続き、最初の安定バージョンがリリースされたのは開発開始から5年後の2007年5月19日、Wakefield RISC OS showに合わせてのことで、イベントではWebサイトでの配信と並行してCDでの販売も行われた。NetSurf 1.0のリリース後はバグフィックス中心のアップデートが行われ、2007年8月にバージョン1.1が、2008年3月にバージョン1.2がリリースされた。

NetSurfは2008年のGoogle Summer of Codeに参加し、 4つのプロジェクトを実行した。これにはGTKフロントエンドの改善、ページ付けされたPDF出力の追加、HTML5準拠のパースライブラリHubbubの開発が含まれている。 2008年8月11日以降にHTMLの解析に用いられているHubbubはモジュール化され、MITライセンスで他のプロジェクトで使用できるようになっている。

NetSurfはGoogle Summer of Code 2009にも採択され、DOM管理を司るLibDOMの開発やUIの改善を行った。UI改善作業においてはRISC OS版にのみ存在していたブックマーク、履歴、Cookie管理、ページ検索機能などの機能の他プラットフォームへの移植がなされた。 Windowsへの移植が開始されたのもこのときである。 NetSurfは2010年のGSoCには参加していない。

マルチプラットフォーム対応を行ったバージョン2.0以降は次のようなバージョンアップがなされている:

- 2009年4月にリリースされたバージョン2.0ではRISC OSの他にLinuxを始めとするUnix系システム、BeOS、Haiku、AmigaOS4に対応した。このバージョン以降はHTML5解析ライブラリであるHubbubを使用している。
- 2009年5月にリリースされたバージョン2.1はバグ修正とページレイアウトの改善を行った。
- 2010年4月にリリースされたバージョン2.5はCSS解析ライブラリのLibCSSを組み込んだ他、キャッシュ機構を刷新した。
- 2010年9月にリリースされたバージョン2.6はバグ修正や改善を中心としていた。
- 2011年4月にリリースされたバージョン2.7はホットリストマネージャーと呼ばれるブックマーク機能、履歴、 Cookie管理画面におけるツリー表示機能が追加された。 このバージョンからCocoaをサポートし、Mac OS Xでのコンパイルに対応していた。
- 2011年9月にリリースされたバージョン2.8ではframeとiframeのサポートが追加された。このリリースではMIME Sniffingに対応したほか、Webページで使用される画像の読み込みのパフォーマンス向上も行われた。
- 2012年4月にリリースされたバージョン2.9ではマルチタスク動作の変更の他、URL処理・取得・キャッシュの最適化とCSSセレクタの高速化がなされた。
- 2013年4月にリリースされたバージョン3.0では新しいDOMライブラリとしてLibDOMが採用された。この新しいライブラリは将来的に動的なレイアウトエンジンを実装するための手がかりであった。その他の改善点として、完全新規実装のtextareaサポート、CSSの取得および解析の並行処理対応や小規模な修正が含まれているだけでなく、リファクタリングも行われた。
- 2014年4月にリリースされたバージョン3.1では多くの変更が行われた。主だったものはCSSセレクタの性能の大幅向上、起動時間の短縮、ツリー表示(ホットリスト(ブックマーク)、履歴、Cookie管理画面)の外見の刷新、オプション処理の改善、エディタ領域のアンドゥ/リドゥ対応、フォームの全般的な改善である。
- 2019年7月にリリースされたバージョン3.9ではCSSメディアクエリ(level 4)がサポートされ、JavaScript処理が改善された。

## 移植版

BeOS/Haikuに対応している。GTKを利用するビルドがAmigaOSに対応する以前は、AmigaOS上のCygnixによるX11環境にも個別対応していた。2009年1月にはAmigaOSとAPIレベルでの互換性を持つMorphOSで利用できるようになっている。Windows版も存在する。

2008年9月からフレームバッファへの直接描画に対応しておりGUIツールキットを使用せずに独自のマウスポインターやスクロールバーなどのウィジェットをレンダリングすることもできる。フレームバッファフロントエンドは組み込みシステムでWebキオスクを作成するために使用できる。

2010年1月には次期リリースでRISC OS向けのリリースが打ち切りとなる旨がアナウンスされた。中心的な開発者であるJohn-Mark Bellは当時、「現実的には、RISC OS対応を維持する能力のある人々が他のことに掛り切りになっている」と語っていた。その後、Steve Fryattがメンテナーとして志願したこともあり2021年1月現在までRISC OS対応は続いている。

2011年1月から2017年5月まではMac OS X上のCocoaフレームワークにも移植されていた。2011年1月からはAtariの16bitおよび32bitシステム向けのビルドも提供されている。