EaaSi vs Emularity

Hi - we are having some questions here about the relative merits of Internet Archive (archive.org) tool The Emularity, which displays media in the browser, versus EaaS/EaaSi, which also is a browser-based solution.

Are there any resources comparing the two solutions? What is the feeling about the two ways of going about emulating software resources?

Cynde

Hi @cyn0matic! I’ve been a bit hesitant to respond to this question myself considering the potential for any (real or perceived :hugs: ) bias here. So I’m going to abstain on a full analysis of relative merits for now (but would be really happy/interested to see any resources or impressions from other folks as well!)

But I can at least refine the technical distinction a bit for everyone: though both browser-based frameworks, one of the main differences in approach between EaaS/EaaSI and Emularity is using remote vs. JavaScript-based emulators. With EaaS/EaaSI, emulators are spun up and run on demand (in containers) on a remote server and the spun-up machine’s monitor/audiovisual output is streamed back the user’s browser for interaction. All software and associated digital objects you run/mount in the emulator thus remain entirely on the server as well. Emularity uses emulators ported or written in JavaScript (Em-DOSBOX, JSMESS, VICE.js, etc) which actually run within the user’s browser (that is, using the local computing power on your laptop/desktop/phone). All software and associated digital objects you run/mount in the emulator must be somehow accessible to that local emulator, by downloading/caching/streaming the object in some manner to browser-accessible storage.

(That last bit is the piece that I myself don’t completely understand - many of the titles IA emulates are “stream-only”, where the title’s source disk images are not actually downloadable to the user, so there is obviously some measure of technical protection in place that allows the software/objects to be temporarily downloaded or cached but accessible only to the JavaScript emulator; I am not familiar with exactly how this part of the setup is implemented or could be replicated. This might be a feature of BrowserFS, the piece of Emularity that provides an in-browser filesystem and actually stores/retrieves files?)

It is not a 1:1 comparison of the frameworks (and includes a lot of other various considerations for emulation in general, and since it was written both pre-EaaSI and early in the days of Emularity is at least somewhat out of date) but David Rosenthal’s 2015 Mellon report includes some more details, often comparing or using features of both platforms for illustrative purposes: