正文
https://eylenburg.github.io/browser_engines.htm
Many tried, few remain...
Last updated: January 2023
The loss of browser diversity since the rise of Chromium has been greatly lamented. Below you can find a graph that shows the historical and present browser engines (not browsers, but the HTML rendering engines), as well as from when to when they were developed. For the bigger engines, the market share is indicated by a coloured shape (see legend).
We're now well into the "fourth era of dominance". NCSA Mosaic dominated at the beginning (first dominance), but it was dethroned by Netscape which briefly held the majority of the market share (second dominance), both of which then were overtaken by Internet Explorer (originally using the engine from Spyglass Mosaic, and later Trident) (third dominance), which then was weakened first by Firefox (Gecko engine) but finally dethroned by Chromium (Blink engine) (fourth dominance). In terms of active and relevant engines there's now only Blink (Chrome, Edge, Opera, Vivaldi, Brave, Samsung Internet, UC Browser and many more), WebKit (Safari and all iOS browsers), and Gecko (Firefox and its forks).
But see for yourself:
Click here to open the picture in a new tab
Today's surviving engines can be divided into three groups:
1. Active engines, including experimental ones
- Gecko (Firefox). Down to 4% market share, mismanaged by Mozilla which prioritizes pushing its politics over improving the browser. Open source
- Goanna (Pale Moon), a fork of an old version of Gecko. At 0% market share and always at risk of not catching up with the newest web standards that Google invents. Open source
- WebKit (Safari), a fork of KHTML. Around 15-20% market share thanks to Apple's policy of only allowing WebKit-based browsers on iOS. Open source
- Blink, a fork of WebKit. It's the dominant engine nowadays, and it underpins Chromium, which is the basis for Chrome, Edge, Opera, Brave, Vivaldi, Samsung Internet and most other browsers; QtWebengine, which is the basis for Falkon and Otter Browser; Android WebView; Windows WebView 2; and Electron, where Blink is used to render the UI of apps. Close to 80% market share. Open source
- Hubbub, used only in NetSurf, a rather basic browser with no support for advanced web standards such as HTML 5. 0% market share. Open source
- The engine of iBrowse, which is available for Amiga OS and seems to be a basic browser too without full web standards supports. 0% market share. Closed source
- Servo. This promising engine was developed by Mozilla, and parts of the Servo engine have been incorporated into Gecko. In 2020, Mozilla fired a quarter of their developers, which apparently included the whole Servo team. There have still been some commits to the code since then (presumably by hobbyists) but it is questionable if Servo will have a future. Update: Servo is now hosted by the Linux Foundation. Open source
- Flow, which focuses on TVs, but seems to be a promising newcomer. Unfortunately it's not open source so it's likely that the company will concentrate on their TV niche and that Flow won't ever become a real competitor to Blink. Closed source
- LibWeb, the engine powering Ladybird and the SerenityOS Browser. SerenityOS is a Unix-like operating system that has been developed from scratch by Andreas Kling since 2018. The browser is still quite experimental, but it's still great to see another contender. Open source
- KolibiOS WebView, which started as a text browser but has over time added some basic formatting and image support.Open source
2. Zombie engines
- Trident (Internet Explorer), while technically Trident will still get security updates until the end of Windows 10 (no date announced), there haven't been any new features or development of standards support since Edge came out in 2015. Microsoft announced that they will stop supporting Internet Explorer on most versions of Windows in 2022, but engine itself will remain accessible in Edge's "IE Mode" and hence will still receive security updates if necessary. Closed source
- EdgeHTML, mostly known from its use in Legacy Edge, which was replaced by a newer Chromium-based Edge in 2020. Legacy Edge was forcefully removed via Windows Update in April 2021, but Microsoft confirmed that the EdgeHTML engine will still be supported with security updates, as it also been used for the built-in WebView in Windows UWP apps (superseded but not automatically replaced by Blink-based WebView 2). Closed source
- KHTML (Konqueror), the ancestor of WebKit and Blink. Konqueror itself never got more than 0% market share, and developed has de facto stopped since about 2016, although there are still (trivial) commits to the code until today. Open source
- Presto (Opera Mini). This engine was used in Opera until version 12 (2013). The company gave up developing their own engine and created a new browser based on Blink, which Google and Opera forked from WebKit in the same year. Opera Mini, one of the mobile browsers, still uses server-side Presto rendering on basic phones (e.g. Java-based phones), however the app hasn't been updated since 2014 but it still available for download. On Android, Opera Mini uses server-side Presto rendering when the "Extreme" data savings mode is chosen. The last known update to the Presto engine was in 2015 according to a blog post, but given that it's still used in Opera Mini to some degree it is likely that the code is still somewhat maintained. Closed source (but source code has leaked)
- U2 (UC Browser). This engine was used in older versions of UC Browser. It is not quite clear to which extent it is used today; it appears to still be used in the app for basic phones, which like Opera Mini hasn't been updated since 2014 but is still available to download. Furthermore, past version of Android seemed to have included an optional "Speed Mode" that would revert to U2 rendering instead of Blink rendering, however this feature seems to be absent from Android nowadays. Closed source
- Arachne. This basic browser supports only the most basic of HTML and CSS. It's not really in active development but happens to get a minor update every couple of years. Open source
- Dillo. Basic browser for simple websites only. While the last stable release was in 2015, there have been more commits since and the project is not officially dead yet. There's also Dillo forks in development. Open source
- Cobra. This engine is used in the Lobo Browser, written in Java. The website is online but there are no downloads available as the website is under construction. It is unclear to me what's the state of this engine and browser and whether it's alive or dead. Hence the zombie status. Open source
3. Text browsers
- Lynx Open source
- Links Open source
- w3m Open source
4. Embedded rendering
- Sciter. Used for rendering the UI of apps. There's no browser using Sciter to display websites, and the engine is Closed source.
- Ultralight. Soft fork of WebKit that aims to be a light-weight alternative to Electron (Chromium) for apps. Open source
- MS Word. This is the engine used in Microsoft Office, including Outlook which uses it render HTML emails. There's no browser using the Word engine to display websites. Closed source
- Prince. This is a HTML/CSS engine used in a commercial product that converts HTML into PDFs. There's no browser using this engine to display websites. Closed source
- Satori. This is a HTML/CSS engine used used to converts HTML into SVGs. There's no browser using this engine to display websites. Open source
- Chinese Blink variants. There is little information out there. There seems to be X5 by Tencent, used in WeChat and some versions of QQ Browser, as well as T7 used by Baidu's "baiduboxapp" (a search app for phones?), both Closed source. Other Chinese engines include UC's U3 and Baidu's T5, both of which seem to be dead now. All of these are based on Blink and it is unclear how much they actually differ or if they are just a rebranding of Blink, or a kind of CCP-approved Blink bastardization, or a real fork with useful features added.
Question Marks
Some questions remain and if anyone can help with information this will be greatly appreciated.
- Was Netscape based on NCSA Mosaic's engine?
- No, according to: Clark, Jim; Owen Edwards (1999). Netscape Time: The Making of the Billion-Dollar Start-Up That Took on Microsoft. St. Martin's Press. ISBN 978-0312199340. "The Mosaic Netscape web browser did not use any NCSA Mosaic code", quoted via Wikipedia. https://archive.org/details/netscapetimemaki00clar
- Was Spyglass Mosaic's engine (used also in IE 1-3) based on NCSA Mosaic's engine?
- No, according to: https://ericsink.com/Browser_Wars.html. "Yes, we licensed the technology and trademarks from NCSA (at the University of Illinois), but we never used any of the code. We wrote our browser implementations completely from scratch, on Windows, MacOS, and Unix."
- Was Trident (IE 4-11) based on Spyglass Mosaic's engine (IE 1-3)?
- I have never found any information, so I will assume that IE 4's Trident engine was completely developed from scratch.
- Was Presto (Opera 7-12) based on Elektra (Opera 3.5-6), and was Elektra based on the original Opera's engine?
- I have assumed yes, but evidence is spurious: in http://www.blooberry.com/indexdot/history/opera.htm it uses the wording "rendering engine re-write (now referred to as "Presto")" for Opera 7. This makes it seems like Presto was just a re-write, not a new engine written completely from scratch. The same might be true for Elektra years before.
- Was iBrowse's engine based on Mosaic?
- Wikipedia says iBrowse was a "rewritten follow-on" to the Amiga version of NCSA Mosaic, via Bettinson, Mat (November 1996). "Battle of the Browsers, IBrowse 1.0". CU Amiga. No. 81. EMAP. pp. 54-56. Like with Presto above, I assume that "rewritten" means "not started from scratch", but it is not very clear.
- Are the Zombie engines (see above) still maintained?
- For EdgeHTML there is the issue of Windows WebView, for which (unlike Legacy Edge) no end of life has been announced. For Presto it is unclear because it's still kind of available in Opera Mini but only through server-side rendering so the code might be untouched for years now.
- For U2, it's the same, just for UC Browser instead of Opera
- For KHTML, there are still some very minor commits to the code (such as changing KDE versions), but for all other intents and purposes Konqueror is dead
- Line Mode Browser (last update in 2006, but used in libwww)
- What are those obscure Chinese engines? There's U2, U3, X5, T5, and T7 at least, but besides U2, which seems to be its own thing, the rest all appear to be soft forks or mere rebrandings of WebKit/Blink. Are they really their own engines?
- The starting and end dates of obscure and historic browsers are often speculative
- Market shares are obviously hard to be determined, especially because there's not one single website which has kept track since the beginning of the web. The newest numbers I have used are from StatCounter, by the way.
For reference (e.g. if the picture doesn't display), the engines included above are:
- WorldWideWeb/Nexus
- Line Mode Browser (text-based)
- ViolaWWW
- Erwise
- Lynx (text-based) STILL ALIVE
- MacWWW
- MidasWWW
- tkWWW
- Arena
- Cello
- NCSA Mosaic
- Fork: mMosaic
- Fork: VMS-Mosaic
- Fork: Mosaic-CK
- Fork (???): iBrowse STILL ALIVE
- Ariadna
- Fresco
- HotJava/Webrunner
- IBM WebExplorer
- InternetWorks
- MacWeb
- Netscape (v1-5, engine later called Mariner)
- Netmanage Chameleon
- Pocketweb
- Prodigy
- SlipKnot
- Tkhtml
- Grail
- Mothra
- NetCruiser
- Netfront
- OmniWeb
- Spyglass Mosaic (engine most famously used in Internet Explorer 1-3)
- UdiWWW
- WebTV/MSN TV
- w3m engine (text-based) STILL ALIVE
- Amaya
- Arachne UNDEAD, not officially dead but development has mostly ceased
- AWeb
- Charon
- Cyberdog
- Espial/Escape
- Lotus Notes (email rendering)
- NetHopper
- NetPositive
- Opera (original engine in v1-3.21)
- Fork (???): Elektra (used in Opera v3.5-6)
- Fork (???): Presto (used in Opera v7-12) UNDEAD, still used in Opera Mini in 'extreme data savings' mode and on basic phones
- Oracle PowerBrowser
- PlanetWeb
- Pocket Internet Explorer
- UP.Browser/Openwave
- AOL IWENG
- ICEBrowser
- Gecko (used in Netscape v6-9/Mozilla/Firefox/Seamonkey) STILL ALIVE
- Fork: Clecko (used in Classilla)
- Fork: Goanna (used in Pale Moon and Basilisk) STILL ALIVE
- Gzilla
- Fork: Dillo UNDEAD, not officially dead but development has mostly ceased
- Microsoft Word (used in Office & Outlook for email rendering as well as exporting and importing HTML to/from Word/Excel/Powerpoint) STILL ALIVE but not used in any browser
- Robin (used in The Bat! for email rendering, until 2020)
- STNC HitchHiker/MS Mobile Explorer
- Trident (used in Internet Explorer 4-11) UNDEAD, will still get security updates until the end of life of Windows 10
- EdgeHTML (used in Legacy Edge) MORIBUND, end of life for Legacy Edge was April 2021, and it is quite likely Windows WebView (based on EdgeHTML) will also stop being supported at some point (it has already been superseded with WebView 2 based on Blink)
- KHTML (used in Konqueror) UNDEAD, only minor code commits for the last few years
- Fork: wxHTML
- Fork: GtkHTML
- Fork: WebKit (used in Safari, GNOME Web, and Midori) STILL ALIVE
- Fork: U3 (used in UC Browser)
- Fork: T5 (used in Baidu Browser)
- Fork: Ultralight (for use in apps and games)
- Fork: Blink (used in Chromium, Chrome, Edge, Opera, Brave, Vivaldi, Samsung Internet, UC Browser, and many more) STILL ALIVE
- Chinese Blink variant: X5 (used in WeChat and QQ Browser, both by Tencent)
- Chinese Blink variant: T7 (used in Baiduboxapp)
- Clipper (used in Palm browser)
- iCab
- jB5
- Links (text-based) STILL ALIVE
- Mango (used in BlackBerry browser in OS 1-5)
- Obigo
- WinWAP
- Blazer
- Interactor (used in Oregan Browser)
- Tasman (used in Internet Explorer 5 for Mac and later in Entourage for email rendering)
- Voyager
- Netgem
- Netrik (text-based)
- Off by One
- retawq (text-based)
- Thunderhawk
- HomePageReader
- Lumi (used in Polaris Browser 1-6)
- Vision Mobile
- Contiki Browser
- iPanel Microbrowser
- Skweezer
- Galio
- Prince (HTML to PDF conversion) STILL ALIVE but not used in any browser
- U2 (used in UC Browser) UNDEAD, still used in UC Browser for basic phones
- Sciter (app UI rendering) STILL ALIVE but not used in any browser
- Hubbub (used in NetSurf) STILL ALIVE
- Teashark
- Cobra (used in Lobo Browser) UNCLEAR if this browser is still developed
- KolibriOS WebView STILL ALIVE but very basic
- Fugu (used in Myriad Browser 6)
- Magellan (used in Myriad Browser 7)
- Skyfire
- Servo STILL ALIVE
- Ekioh Flow STILL ALIVE
- LibWeb (used in Ladybird and the SerenityOS Browser) STILL ALIVE
- Satori (HTML to SVG conversion) STILL ALIVE but not used in any browser