Comparison of lightweight web browsers
A lightweight web browser is a web browser that sacrifices some of the features of a mainstream web browser in order to reduce the consumption of system resources, and especially to minimize the memory footprint.[1][2][3]
The tables below compare notable lightweight web browsers. Several of them use a common layout engine, but each has a unique combination of features and a potential niche. The minimal user interface in surf, for example, does not have tabs,[4] whereas xombrero can be driven with vi-like keyboard commands.[5]
Four of the browsers compared—Lynx, w3m, Links, and ELinks—are designed for text mode, and can function in a terminal emulator. Eww is limited to working within Emacs. Links 2 has both a text-based user interface and a graphical user interface. w3m is, in addition to being a web browser, also a terminal pager.[6]
Overview
[edit | edit source]| Browser | Developers | Status | Engine | Programming languages | License | Latest release | |
|---|---|---|---|---|---|---|---|
| Version | Date | ||||||
| Arora | Benjamin C. Meyer et al.[7] | Discontinued | QtWebKit[8] | C++ | GPL-2.0-or-later | ||
| Dillo | Jorge Arellano Cid et al. | Active | Dillo | C, C++ | GPL-3.0-or-later | ||
| ELinks | Petr Baudiš, Jonas Fonseca, et al. | Active | Links | C, C++ | GPL-2.0-only | ||
| Eww | Lars Magne Ingebrigtsen | Active | GNU Emacs libraries | Emacs Lisp | GPL-3.0-or-later | ||
| Falkon (QupZilla) | David Rosca | Active | QtWebKit / Qt WebEngine | C++ | GPL-3.0-or-later | ||
| hv3 | Dan Kennedy & team | Discontinued | Tkhtml | Tcl | GPL | ||
| K-Meleon | Christophe Thibault et al. | Active | Gecko / Goanna (fork) | C++ | GPL | ||
| Links | Mikuláš Patočka, Twibright Labs, et al. | Active | Links | C | GPL-2.0-or-later | ||
| Lynx | Lou Montulli, Thomas Dickey, et al. | Active | libwww derivative | C (ISO C) | GPL-2.0-only | ||
| NetSurf | John-Mark Bell, Michael Drake, et al.[9] | Active | NetSurf | C (ANSI C) | GPL-2.0-only | ||
| Otter Browser | Michał Dutkiewicz[10] | Active | QtWebKit / Qt WebEngine | C++ | GPL-3.0-or-later | ||
| QtWeb | LogicWare; LSoft Technologies[11] | Unmaintained | QtWebKit | C++ | GPL-2.0-or-later | ||
| qutebrowser | Florian Bruhin et al. | Active [12] | QtWebKit / Qt WebEngine[13] | Python3 | GPL-3.0-or-later | ||
| rekonq | Andrea Diamantini et al. | Discontinued | QtWebKit[8] | C++ | GPLv3 | ||
| surf | Christoph Lohmann et al. | Active | WebKitGTK | C | MIT | ||
| uzbl | Dieter Plaetinck et al. | Discontinued | WebKitGTK | C, Python | GPL-3.0-only | ||
| w3m | Akinori Ito et al. | Unmaintained | w3m | C | MIT | ||
| WebPositive | Andrea Anzani, Ryan Leavengood, et al. | Active | HaikuWebkit | C++ | MIT | ||
| xombrero | Marco Peerboom et al. | Discontinued | WebKitGTK | C, JavaScript | ISC | ||
Operating system support
[edit | edit source]| Browser | BSD | Haiku | Linux | macOS | OpenIndiana | OS/2 | QNX | RISC OS | Windows | Android |
|---|---|---|---|---|---|---|---|---|---|---|
| Arora | Yes | Yes | Yes | Yes | Yes[14] | Yes | No | No | Yes | |
| Dillo | Yes | Yes[15] | Yes | Yes | Yes[16] | No | No | Yes[16] | Cygwin[16][17] | |
| ELinks | Yes[18] | ? | Yes[18] | Yes[18] | Yes[18] | Yes[18] | No[18] | Dropped[18] | ? | |
| Falkon (QupZilla) | Dropped[19][20] | Yes[19][20] | Yes[19][20] | Dropped[21] | No | Dropped[19][20] | No | No | Dropped[20] | |
| K-Meleon | Wine | No | Wine[22] | Wine | No | No | No | No | Yes | |
| Links | Unofficial | No | Yes | Unofficial | ? | Yes | No | No | Yes | |
| Lynx | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[23][24] | Yes | |
| NetSurf | Yes[25] | Yes[26] | Yes[25] | Yes[25] | Yes[25] | No | ? | Yes[27] | Yes[28] | |
| Otter Browser | Yes[29] | Unofficial[30] | Yes[29] | Yes[29] | No | No | No | No | Yes | |
| QtWeb | Yes | Unofficial[31] | Yes | Yes | Unofficial[i] | No | No | No | Yes | |
| qutebrowser | Yes | ? | Yes | Yes | ? | ? | ? | ? | Yes | |
| rekonq | Yes | No | Yes | No | Unofficial[i] | No | No | No | Inactive[ii] | |
| surf | Yes | No | Yes | ? | ? | ? | ? | No | No | |
| uzbl | ? | ? | Yes | Yes | ? | ? | ? | ? | ? | |
| w3m | Unofficial | Unofficial | Yes | Unofficial | Unofficial | Inactive | No | No | Cygwin | |
| WebPositive | No | Yes | No | No | No | No | No | No | No | |
| xombrero | Yes | No | Yes | Yes | Yes | No | No | No | Yes |
- Notes
Features
[edit | edit source]Test scores reflect the version of the browser engine in use. Generally, a lower score indicates an older version of the browser engine.
| Image formats | Advanced | Test scores | Plug-in APIs | |||||
|---|---|---|---|---|---|---|---|---|
| Browser | GIF, JPEG, PNG | WebP | JavaScript | Frames | Acid3 | HTML5test | Netscape | Pepper |
| Arora | Yes | No | Yes | Yes | 100/100[i] | 359/550[33] | No[ii] | No |
| Dillo | Yes | Yes[34] | No | Partial | N/A[iii] | N/A[iii] | No | No |
| ELinks | No | No | Partial[iv] | Partial | N/A[iii] | N/A[iii] | No | No |
| Falkon (QupZilla) | Yes | Yes | Yes | Yes | 100/100[i] | 497/550[36] | Partial | Partial |
| K-Meleon | Yes | No | Yes | Yes | 100/100[i] | 416/555[37] | Partial[38] | No |
| Links | Yes[v] | Yes | No[vi] | Partial | N/A[iii] | N/A[iii] | No | No |
| Lynx | No | No | No | Partial | N/A[iii] | N/A[iii] | No | No |
| NetSurf | Yes[40] | Yes | Partial[41] | Yes | N/A[iii] | N/A[iii] | No[42] | No |
| Otter Browser | Yes | Yes | Yes | Yes | 100/100 | 370/550[43] | Yes | No |
| QtWeb | Yes | No | Yes | Yes | 100/100[i][vii] | 234/550[44] | No[ii] | No |
| qutebrowser | Yes | Yes | Yes | Yes | 99/100[citation needed] | 521/550 | No | No |
| rekonq | Yes | No | Yes | Yes | 100/100[i] | 385/555[45] | No[ii] | Partial[46] |
| surf | Yes | Yes[viii] | Yes | Yes | 100/100[i] | 385/500[48] | Yes | ? |
| uzbl | Yes | Yes | Yes | Yes | 98/100 | 461/500 | Yes | ? |
| w3m | Yes[49] | No | No[50] | Yes | N/A[iii] | N/A[iii] | No | No |
| WebPositive | Yes | No | Yes | Yes | 98/100[i] | 358/500[51] | No | No |
| xombrero | Yes | Yes[viii] | Yes | Yes | 100/100 | 385/500[52] | Yes | ? |
- Notes
- ^ a b c d e f g Some tests take too much time to complete.
- ^ a b c NPAPI is ported to QtWebKit, but is not implemented in this browser.
- ^ a b c d e f g h i j k l The test requires JavaScript, which is not sufficiently supported by this browser.
- ^ ELinks implements Mozilla's SpiderMonkey JavaScript engine.[35]
- ^ Only Links 2 supports graphics.
- ^ JavaScript support was removed in 2007 (in release 2.1pre29).[39]
- ^ The final state does not match the reference rendering.
- ^ a b WebP is supported via the WebKitGTK browser engine.[47]
See also
[edit | edit source]References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ https://depot.haiku-os.org/__multipage/pkg/dillo_plus/haikuports/haikuports_x86_64/3/2/1/-/2/x86_64?locale=zh [bare URL]
- ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b c d e f g Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b c d Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b c d e Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ https://bugs.kde.org/show_bug.cgi?id=395926 [bare URL]
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b c d Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ https://dillo-browser.github.io/release/3.2.0 [bare URL]
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
Further reading
[edit | edit source]- Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).