Thorium Reader is the EPUB reader of choice for Windows 10, MacOS and Linux.
This is the only “reader” developed by EDRLab, and there is no mobile version of this application.
EDRLab also leads the development of the Readium project. And Thorium Reader is an application based on Readium Desktop: see below.
The Readium project
The main goal of this project is to create a modular open-source codebase, with a clean software architecture and documentation, which allows the easy development of reading applications on three types of platforms: mobile, desktop and Web. Different implementations can therefore share the same architecture, model, interfaces; a developer should therefore be able to switch from one implementation to another without feeling lost.
These toolkits enable the processing and display of multiple kinds of publication, including EPUB 2 and EPUB 3, PDF, audiobooks and Divina visual narratives (comics / manga / bandes dessinées).
The different software modules composing these toolkits are intended to be, insofar as possible, independent of each other and can be used outside of the overall architecture. At the same time, these modules are designed so that they CAN be easily and seamlessly combined to produce complete reading systems.
For rendering content, these toolkits leverage the capabilities of modern browser engines and supplement those capabilities with modules (polyfills, if you will) that provide additional functionalities.
A specific aspect of the mobile toolkits is that instead of a “platform-neutral” C++ core, the codebase is implemented in native code, i.e. Swift for the iOS target and Kotlin for the Android target. This enables the use of the most powerful aspects of each native environment and ends up with a small and efficient codebase. The Swift and Kotlin toolkits can nevertheless be integrated in applications based on cross-platform frameworks like Flutter and ReactNative.
On the other side, desktop applications (on Windows, OSX and Linux) are approached using cross-platform technologies, i.e. Electron.js, node.js, Typescript.
The Readium project is therefore split in different parts:
Readium Architecture, a software architecture common to the different implementations.
Readium Mobile, a toolkit for iOS and Android reading apps, with Readium LCP support.
Readium Desktop, a toolkit for Windows, MacOS and Linux reading apps, with Readium LCP support.
Readium Web, a toolkit for Web apps.
Readium CSS, a reading system stylesheet common to Readium Mobile, Desktop and Web.
Readium LCP, a modern protection technology for ebooks.
Origin of the Readium project
Open-source projects need to be funded, it was therefore decided to create the Readium Foundation as “an Open Source Foundation collaboratively developing technology to accelerate the adoption of EPUB 3 and the Open Web Platform by the Digital Publishing Industry”. For some time, contributions and membership fees provided the necessary funding for the Readium SDK to evolve.
Thanks to Readium member efforts, the Readium C++ SDK and the Readium JS toolkit became solid open-source projects, a reference implementation for EPUB 3 processing, one of the rare software supporting EPUB 3 media overlays, MathML, right to left reading progression etc.
Transition to the new Readium toolkits
However, this C++ code was not as platform-neutral as it was aimed to be, as it was interspersed with directives targeting specific implementations. The rapid evolution of the mobile platform was creating headaches for the developers. Also, given the organic nature of an open-source development with constant turnover of developers, this hybrid codebase had become large and complex, with nobody having complete knowledge of its nitty-gritty details.
At the same time, W3C members from the publishing industry (including EDRLab) had started creating new specifications for Web Publications, which would support digital publications in many forms, i.e. traditional ebooks, audiobooks and visual narratives. Supporting these new formats would soon be needed on the Readium SDK, which would be a new pain knowing the complexity of the codebase.
This is the time when the Readium community decided to start the work on a brand new codebase, a.k.a Readium “2”. This work started under the leadership of EDRLab and the developments are still very active today.
The Readium SDK was at the time associated with a dual license, GNU and free for open-source projects, Apache and subject to yearly fees for commercial projects. This dual license was very useful for the maintenance of the codebase by senior developers, but was not evenly understood by implementers … was Readium really open-source?
From February 2018, the licensing model of the Readium SDK was changed for a unique BSD-3 type license, free for any type of project, but with a strong suggestion to participate financially to the maintenance of the different projects by paid developers.
This made the situation unambiguous: yes, Readium is fully open-source.
In 2019, it was acknowledged that the original Readium SDK would not be actively maintained anymore and that the Readium project would focus on the new codebase, i.e. Readium Mobile, Readium Desktop and Readium Web.