Skip to content

Overview of web runtimes

Almar Klein edited this page Jun 22, 2015 · 3 revisions

Browser (any of'm)

A browser is a web runtime. So any browser could run our apps.

XUL (Mozilla)

Definitely the nicest solution IMO. Basically you create a XUL app that consists only of a <browser> component. It's open source, and very well developed/maintained. It's Firefox! It is also available where ever Firefox is installed. It can be installed as a portable app via XULrunner.

Further it is relatively lightweight: ~100 MB on disk, and runs a single process of about 46 MB.

MSHTML (Microsoft)

Based on the Trident engine, this is basically Internet Explorer running as an app. Have not looked at it properly yet.

Could be nice, since it is available on almost any Windows machine. What's the status of WebGL in IE these days?

Chrome app (Google)

Chrome, and the open source variant Chromium can run in "app mode". Not sure how native this can be made to look. The Chrome engine is one of the best, but rather memory hungry: It takes 4 processes plus 3 per app, consuming 100 MB + 74 MB per app.

Electron (by github)

A spin-off from the Atom editor, Electron is a framework that lets you write cross-platform desktop applications using JavaScript, HTML and CSS. It is based on io.js and Chromium.

nw.js (node-webkit)

Based on Chromium, so having the same benefits and downsides as Chrome. Further it runs on node.js. People might like that. We could see if we can hook into node from our UI.

QtWebKit (e.g. via PyQt4)

You can run a simple Python program that creates a window with a QWebView. Qt's browser is based on webkit, but WebGL does not seem to work. It's relatively lightweight at about 48 MB. It should be possible to run the runtime in the same process as the server, although for consistency and concurrency, we better not.

Gtk webkit

Gtk also has a webkit widget. But GTK is much less platform independent as most of the above.