Comparison of browser engines

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Template:SHORTDESC:

This article compares browser engines.

Some of these engines have shared origins. For example, the WebKit engine was created by forking the KHTML engine in 2001.[1] Then, in 2013, a modified version of WebKit was officially forked as the Blink engine.[2]

General information

[edit | edit source]
Engine Status Creators License Used in
WebKit Stable Apple, initially forked from KHTML GNU LGPL, BSD-style Safari browser, GNOME Web, Konqueror, Orion and all browsers for iOS[3]
Blink Stable Google, initially forked from WebKit GNU LGPL, BSD-style All Chromium-based browsers
Gecko Stable Mozilla Mozilla Public Firefox browser and its forks; SeaMonkey browser, Thunderbird email client
Goanna Stable M. C. Straver,[4] initially forked from Gecko Mozilla Public Pale Moon, Basilisk, K-Meleon browsers
NetSurf Stable NetSurf developers[5] GNU GPLv2 NetSurf browser
Servo Experimental[6][7] Linux Foundation Mozilla Public Experimental browsers[8][9]
LibWeb Experimental; in pre-alpha[10] Ladybird Browser Initiative[11] 2-clause BSD Ladybird browser[12]
KHTML[13] Discontinued KDE GNU LGPL Formerly in the Konqueror browser[14]
Tkhtml Discontinued Liem Bahneman[15] BSD Formerly in Html Viewer 3 browser
Mariner Discontinued Netscape Communications NPL Netscape Communicator 5.0
Trident Stable Microsoft Proprietary Internet Explorer browser; Microsoft Edge IE mode
Flow[16] Experimental; in beta[16] Ekioh[17] Proprietary Flow browser[18]
EdgeHTML Discontinued Microsoft Proprietary Some UWP apps;[19] formerly Microsoft Edge browser[20]
Presto Discontinued Opera Proprietary Opera Mini browser in Extreme/Mini mode, where contents arrive pre-rendered using this engine server-side[21]
NetFront Discontinued Access Co., Ltd. Proprietary Formerly in the NetFront browser, Palm Blazer 3 and up, the Dreamcast web browser, the PSP web browser, and PS3 web browser versions prior to system software 4.10.
Tasman Discontinued Microsoft Proprietary Internet Explorer 5 Macintosh Edition

Support

[edit | edit source]

These tables summarize what stable engines support.

Operating systems

[edit | edit source]

The operating systems that engines can run on without emulation.

Engine Windows macOS Linux BSD Haiku Android iOS[3]
WebKit Yes[note 1] Yes Yes Yes Yes Yes Yes
Blink Yes Yes Yes Yes Yes[note 2] Yes No
Gecko Yes Yes Yes Yes Yes Yes No
Goanna Yes Yes[22] Yes Yes No No[23] No
NetSurf[24] Yes No Yes Yes Yes No No
Trident Yes No No No No No No

Image formats

[edit | edit source]
Engine JPEG JPEG 2000 JPEG XL JPEG XL HDR JPEG HDR GIF BMP PNG APNG SVG WebP AVIF AVIF HDR HEIC HEIC HDR
WebKit Yes Yes Yes Yes[25][26] Yes [25][26] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes [25][26]
Blink Yes No No[27][28] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No
Gecko Yes No No No No Yes Yes Yes Yes Yes Yes Yes No No No
Goanna Yes No Yes No No Yes Yes Yes Yes Yes Yes No No No No
NetSurf[29] Yes No Yes No No Yes Yes Yes No Yes Yes No No No No
Trident Yes No No[30] No ? Yes Yes Yes No Partial No No[31] No No[32] No

Media formats

[edit | edit source]
Engine VP9 AV1 HEVC H264 Opus FLAC
WebKit Yes Yes Yes Yes ? Yes
Blink Yes Yes Yes Yes Yes Yes
Gecko Yes Yes No Yes Yes Yes
Goanna Yes Yes No Yes Yes Yes
NetSurf No No No ? No ?
Trident No[33] No[34] Partial[33] Yes[33] No[35] No[36]

Typography

[edit | edit source]
Engine TTF OTF WOFF WOFF2 @font-face CSS rule Ligatures (font-variant-ligatures CSS property)
WebKit Yes Yes Yes Yes Yes Yes
Blink Yes Yes Yes Yes Yes Yes
Gecko Yes Yes Yes Yes Yes Yes
Goanna Yes Yes Yes Yes Yes Yes
NetSurf ? ? No No Partial[37] No
Trident Partial[38] Partial[38] Yes[39] No[40] Yes[41] No[42]

Other items

[edit | edit source]
Engine Web Components WebGL WebGPU[43] XHTML
WebKit Partial[44] Yes Yes Yes
Blink Yes Yes Yes Yes
Gecko Yes Yes Yes Yes
Goanna Yes[45] Yes No Yes
NetSurf No No No ?
Trident No[44] Yes[46] No[47] Yes[48]

See also

[edit | edit source]

Notes

[edit | edit source]
  1. ^ Must be built from source code.
  2. ^ Only available via QtWebEngine.

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  16. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  19. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  20. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  21. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  22. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  23. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  24. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  25. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  26. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  27. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  28. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  29. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  30. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  31. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  32. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  33. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  34. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  35. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  36. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  37. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  38. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  39. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  40. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  41. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  42. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  43. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  44. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  45. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  46. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  47. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  48. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).