FOSS web browsers by engine

We've originally tried to enumerate lightweight web browsers for outdated computers. They are grouped by engine as resource consumption usually correlates well. One supporting multiple engines is listed under the lightest engine.

AgregoreWeb

Chromium

apt install chromium-browser

Dooble

Falkon

apt install falkon

morph-browser

apt install morph-browser

New Edge

privacybrowser

apt install privacybrowser

SRWare Iron

WebKit engine

GNOME Web

apt install epiphany-browser

Konqueror

apt install konqueror

Luakit

apt install luakit

Nyxt

Oku

Oku lets you create replicas, virtual drives that you can share online. A read-only ticket can be used to view, but not edit, your replica. Is this ready to be my default browser? No. Oku is still actively in development.

Otter Browser

Qutebrowser

apt install qutebrowser

sugar-browse-activity

apt install sugar-browse-activity

Surf

apt install surf

vimb

KHTML engine

Gecko engine

Firefox

apt install firefox
apt install firefox-esr

GNU IceCat

SeaMonkey

Waterfox

Goanna engine

A fork of older Firefox/Gecko for security and to keep older extensions working.

Basilisk

Conkeror

Pale Moon

gngr

More of a tech demo than a product for end users, but it is a unique independent engine with theoretically good coverage of standards.

Based on The Lobo Project. jStyleParser: for parsing and analysing CSS, okhttp: support for cookies, SPDY.

Ladybird

SerenityOS LibWeb

It first started as the document rendering component LibWeb built into SerenityOS in 2019:

It was then split to create a separate cross-platform browser:

It received $1M funding on 2024-07-01 to help release a public beta by 2026.

LoboEvolution

NetSurf

visurf

Web-K

More of a tech demo than a product for end users, but it is a unique independent engine with theoretically good coverage of standards.

Web-K is FlyingSaucer-based pure Java browser and Swing browser component. Nashorn JavaScript runtime, Canvas, es6-shim polyfill. Modified JSoup library provides support of HTML5 at parsing level.

Graphical browsers with compromises

Arachne

Dillo

HV3

KolibriOS WebView

Text-only

Terminal

edbrowse

apt install edbrowse

Emacs Eww

Links2

apt install links2
links2 -g

lynx

apt install lynx

netrik

apt install netrik

w3m

apt install w3m

Experimental

Chawan

Cocktail

With Cocktail, write HTML/CSS applications in Haxe and build them for OpenFL and flash/Air. As Cocktail uses the standard DOM API
NME (another Haxe library)

Cog

It provides no user interface and is suitable to be used as a web application container for embedded devices in kiosk mode.

HighWire

kosmonaut

Kosmonaut is built with Rust using OpenGL bindings via gl-rs, Glutin for window management and OpenGL context creation, Servo's html5ever and cssparser for HTML and CSS parsing, and various other auxiliary libraries.
Only a very limited subset of CSS is currently supported, so most web pages will not work.

kristall

Graphical small-internet client for windows, linux, MacOS X and BSDs. Supports gemini, http, https, gopher, finger.
text/gemini, text/html (reduced feature set), text/markdown
Qt5

mbrowser

mBrowser is a toy browser developed from scratch for learning purpose.

moon

This is a web browser developed from scratch using Rust. To fit with the "make from scratch" spirit, the development of the browser avoids the use of external libraries as much as possible.

naglfar

A toy web browser implemented in Rust from scratch

Odyssey Web Browser

QEmacs html-mode

WYSIWYG HTML/XML/CSS2 mode graphical editing. Also supports lynx like rendering on VT100 terminals. Quite complete CSS2 support (including generated content and counters). Full Bidirectionnal Unicode support. Table support with both 'fixed' and 'auto' layout algorithms.

Satori

Simple-San-Simon-Functional-Web-Browser

support for a small sub-set of HTML, XHTML and XML grammar
small sub-set of CSS. We implemented 48 CSS properties that let us modify Box features, apply styles to texts, use list and generate content.

thdwb

This is the hotdog web browser project. It's a web browser with its own layout and rendering engine, parsers, and UI toolkit!
It's made from scratch entirely in golang. External dependencies are only OpenGL and GLFW, even go dependencies are kept to a minimum.

WebWhir

WebWhir uses Boost sparingly and SFML for graphics.
designed to be very easy to link into any application
HTML tokenizer only handles the few of these that were necessary to parse simple and well-formatted strings

wowser

An (un)impressive browser being written from scratch in Rust

Planned

Projects listed here have not produced a browser a user could test yet or are only components that others may build a web browser from in the future.

CSSBox

The input of the rendering engine is the document DOM tree and a set of style sheets referenced from the document. The output is an object-oriented model of the page layout. This model can be directly displayed but mainly, it is suitable for further processing by the layout analysis algorithms as for example the page segmentation or information extraction algorithms.
The core CSSBox library may be also used for obtaining a bitmap or vector (SVG) image of the rendered document. Using the SwingBox package, CSSBox may be used as an interactive web browser component in a Java Swing application.
CSSBox relies on the jStyleParser open source CSS parser
the NekoHTML parser is used for creating the DOM tree. As an alternative, the The Validator.nu HTML Parser has been tested with CSSBox too.
The Xerces library may be replaced by any other DOM implementation.

gemiweb0

gosub-browser

GoSub: Gateway to Optimized Searching and Unlimited Browsing
A feeble attempt on writing a browser and learning rust.
Note: code in the main branch is currently not stable and might not even compile.
In the future, this component (html5 parser) will receive through an API a stream of bytes and will output a stream of events. The events will be consumed by the next component and so on, until we can display something in a window/user agent. This could very well be a text-mode browser, but the idea is to have a graphical browser.

Haphaestus

Lexbor

LibreOffice Writer Web

litehtml

litehtml is the lightweight HTML rendering engine with CSS2/CSS3 support. Note that litehtml itself does not draw any text, pictures
litehtml just parses HTML/CSS and places the HTML elements into the correct positions (renders HTML). To draw the HTML elements you have to implement the simple callback interface document_container.
litehtml uses the gumbo-parser to parse HTML

LURE

LURE does not intend to implement a fully standards compliant web browser.
LURE is currently under development and cannot yet produce rendered content. Much of the DOM and associated subsystems are still under heavy design and development

Robinson

SumatraPDF Reader

Verso

WeasyPrint

visual rendering engine for HTML and CSS that can export to PDF.
It is based on various libraries but not on a full rendering engine like WebKit or Gecko. The CSS layout engine is written in Python, designed for pagination, and meant to be easy to hack on.
flit_core, pydyf, cffi, html5lib, tinycss2, cssselect2, Pyphen, Pillow, fonttools[woff]

Unmaintained

Abaco

https://en.wikipedia.org/wiki/Abaco_(web_browser)

Amaya

Arena

AWeb

BrowseX

Charon

contiki-os webbrowser

Emacs w3

Erwise

kweb

Line Mode Browser

Midori

apt install midori

Mothra

Mycel

Still experimental and a lot of features are missing. Rudimentary HTML5 and CSS support, large parts like float/flex layout are just stub implementations. Since the implementation is very limited anyway, DOM changes are only computed initially and during click events. A handful of jQuery UI widgets work

NCSA-mosaic

Nexus WorldWideWeb

Odysseus

retawq

tkWWW

Uzbl

https://en.wikipedia.org/wiki/Uzbl

Voyager

HTML rich text support by desktop widget toolkits

FOSS JavaScript interpreters, runtimes

./javascript-interpreter-runtimes.md

References

Navigation