Goals of Readium Desktop
Readium Desktop is the software platform behind Thorium Reader. This is and open-source toolkit for reading applications running on Windows 10, MacOS and Linux and mobile apps. Technically speaking, it is a set of (mostly chrome-less) modules developed using Electron.js, node.js and Typescript, which follows the Readium Architecture.
The project is led by EDRLab. This development has been possible thanks to the financial involvement of EDRLab members.
In practice, most developers we know of have decided to build their reading application from the open-source codebase of Thorium Reader instead of starting from Readium Desktop. It is undoubtedly easier to develop an application from a full-blown product, but it comes with ties: EDRLab is driving the evolutions of Thorium Reader from its own requirements, and does not guarantee any backward compatibility from one version of Thorium Reader to the next. This is different for Readium Desktop, as the modules of the toolkit have a clear API with carefully thought evolutions.
Developing a reading application based on Electron.js, node.js and Typescript is complex, to very complex. Your team of developers must be really skilled in these technologies before starting a development based on Readium Desktop (or Thorium Reader by the way).
If you plan to support the LCP DRM in the app : supporting LCP in an Electron.js environment is a complex task. We have developed a procedure which protects the LCP module against hacking, and this procedure must be carefully followed. It takes time and efforts from your dev team, with some (paid) support from the EDRLab team. Please don’t neglect this difficulty.
The toolkit now support the following:
- Handle EPUB 2, EPUB 3, EPUB 3 FXL publications.
- Handle PDF publications.
- Handle DAISY 2.02, DAISY 3 publications.
- Handle W3C and Readium Audiobooks.
- Handle Divina publications.
- Process LCP protected publications.
- Modify user settings, incl. luminosity, font selection & size, letter/word/line spacing, hyphenation, sepia and night mode, number of columns.
- Navigate through OPDS catalogs (OPDS 1 and 2).
- Authenticate on an OPDS catalog.
- Manage bookmarks.
- Manage page lists embedded in EPUB.
- Manage position lists.
- Store the current reading position in the publication.
- Full-text search inside a publication.
- Support Media Overlays.
- Support TTS read aloud.
- Support W3C Audiobooks.
- Support Audiobooks protected by LCP.
- Support for PDF documents protected by LCP.
As of May 2022, planned evolutions are:
- Native support for Apple M1 computers.
- Support for the APIApp lending protocol (specific to the PNB e-lending platform in France).
- Support completed for some neglected EPUB 3 features, in order to pass as many EPUB tests as possible.
- Support for accessibility metadata.
- Support for annotations. Shared when an open standard is there.