Original Readium Development Kit

This is the original project of the Readium Foundation, a community in which EDRLab plays a large part since its creation in 2015. It is split is two parts, ReadiumJS and Readium SDK.

Origin of the Readium project

The Readium project was initiated by the IDPF in 2012 in order to create an open-source implementation of an EPUB 3 parser and reading toolkit. Initially written in Javascript as a Google Chrome extension, it soon evolved with the addition of a C++based native SDK, for use in iOS, Android and desktop applications. A more complete description of the Readium project goals is found on the Readium website.

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.

More about the original Readium C++ SDK and JS toolkit

Transition to the new Readium toolkits

As of 2016, the Readium SDK was mature and the Readium Chrome Extension – initially a test application – had become popular among EPUB users. Several iOS, Android and OSX reading applications had been built using the C++ core, the large Javascript library (“shared JS”) and native wrappers in Objective-C and Java.

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.

Meanwhile, the web had continued to mature with JavaScript engines becoming much more full featured (indie and outside browsers), with extensive support for parsing markup, crypto, SVG, WebGL support and more. On the mobile side, new and modern languages had taken the sunlights, Swift on iOS, Kotlin on Android. On the desktop side, it was now possible to develop efficient multi-platform applications using the Electron.js platform and the Typescript language.

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.

What is ReadiumJS?

ReadiumJS is a JavaScript library (readium-js) and viewer (readium-js-viewer, also known as CloudReader) for EPUB 3 rendering, optimized for use on websites in browser-based “cloud” readers. ReadiumJS shares common JS modules (readium-shared-js) with the Readium SDK which targets native apps. Using ReadiumJS does not require any server-side infrastructure or browser plug-ins.

Readium JS will be replaced by the end of 2021 by Readium Web.

A Readium Chrome Application has also been built from ReadiumJS. It is one of the most full-featured EPUB 3 Reading Systems available, but Google has decided to deprecate all Chrome Applications, therefore it will stop running on Chrome someday (as of April 2021, it is still available on the Chrome Web Store). It is now replaced by Thorium Reader.

The source code for both the Chrome Application and the CloudReader is available under a BSD-type open source license. It can be downloaded from the Readium Github and modified to suit specific needs.

More information about ReadiumJS can be found on the Readium documentation website.

What is Readium SDK?

Readium SDK is a compact, performant EPUB 3 rendering engine optimized for use in native apps for tablets and other devices. The project is written in cross-platform C++ and JavaScript code, and is designed to be combined with platform-specific glue code and a modern browser rendering engine to instantiate an ePub3-compliant rendering engine within a platform-native Reading System application

It comes along with iOS and Android testing wrappers, called “launchers”.

Since 2018 and version 0.30, the project is released with a BSD-type license, which allows the use of the SDK in both open and closed-source for free.

The SDK has been included in several reading applications on iOS and Android; a partial listing is found here.

What is the development status of Readium SDK & JS?

The release history is maintained on the Readium documentation website.

Since March 2018, the stable version of Readium (both SDK and JS) is 0.30.

The project is now mature and stable, it is not maintained anymore by the Readium community which concentrates on Readium Mobile, Readium Desktop and Readium Web instead. 

Other Readium projects

Readium Mobile

The reference iOS and an Android open-source reading toolkit.

More on Readium Mobile

Readium LCP

The vendor-neutral and interoperableDigital Rights Management technology, embeddable in any reading application based on the Readium SDK.

Discover Readium LCP

Copyright © 2023 EDRLab. Legal informations

Log in with your credentials

Forgot your details?