Readium Mobile is a toolkit for ebooks, audiobooks and comics written in Swift & Kotlin.
βοΈ Take a look at the guide to quickly get started. A Test App demonstrates how to integrate the Readium Kotlin toolkit in your own reading app.
β Find documentation and API reference at readium.org/kotlin-toolkit.
β Implemented Β Β Β Β π§ Partially implemented Β Β Β Β π Planned Β Β Β Β π Want to do Β Β Β Β β Not planned
| Format | Status |
|---|---|
| EPUB 2 | β |
| EPUB 3 | β |
| Readium Web Publication | π§ |
| β | |
| Readium Audiobook | β |
| Zipped Audiobook | β |
| Standalone audio files (MP3, AAC, etc.) | β |
| Readium Divina | π§ |
| CBZ (Comic Book ZIP) | π§ |
| CBR (Comic Book RAR) | β |
| DAISY | π |
A number of features are implemented only for some publication formats.
| Feature | EPUB (reflow) | EPUB (FXL) | |
|---|---|---|---|
| Pagination | β | β | β |
| Scrolling | β | π | β |
| Right-to-left (RTL) | β | β | β |
| Search in textual content | β | β | π |
| Highlighting (Decoration API) | β | β | π |
| Text-to-speech (TTS) | β | β | π |
| Media overlays | π | π |
| Feature | Status |
|---|---|
| OPDS Catalog 1.2 | β |
| OPDS Catalog 2.0 | β |
| Authentication for OPDS | π |
| Readium LCP Automatic Key Retrieval | π |
| Feature | Status |
|---|---|
| Readium LCP | β |
| Adobe ACS | β |
Guides are available to help you make the most of the toolkit.
- Opening a publication β parse a publication package (EPUB, PDF, etc.) or manifest (RWPM) into Readium
Publicationmodels - Extracting the content of a publication β API to extract the text content of a publication for searching or indexing it
- Supporting PDF documents β setup the PDF support in the toolkit
- Text-to-speech β read aloud the content of a textual publication using speech synthesis
- Accessibility β inspect and present accessibility metadata to users
- Navigator - an overview of the Navigator to render a
Publication's content to the user - Configuring the Navigator β setup and render Navigator user preferences (font size, colors, etc.)
- Font families in the EPUB navigator β support custom font families with reflowable EPUB publications
- Media Navigator β use the Media Navigator to read aloud a publication (audiobook, TTS, etc.)
- Supporting Readium LCP β open and render LCP DRM protected publications
| Readium | Android min SDK | Android compile SDK | Kotlin compiler (β») | Gradle (β») |
|---|---|---|---|---|
develop |
21 | 36 | 2.1.21 | 8.14.1 |
| 3.1.0 | 21 | 35 | 2.1.20 | 8.13 |
| 3.0.0 | 21 | 34 | 1.9.24 | 8.6.0 |
| 2.3.0 | 21 | 33 | 1.7.10 | 6.9.3 |
β» Only required if you integrate Readium as a submodule instead of using Maven Central.
Readium modules are distributed with Maven Central. Make sure that you have the $readium_version property set in your root build.gradle, then add the Maven Central repository.
buildscript {
ext.readium_version = '3.1.2'
}
allprojects {
repositories {
mavenCentral()
}
}Then, add the dependencies to the Readium modules you need in your app's build.gradle.
dependencies {
implementation "org.readium.kotlin-toolkit:readium-shared:$readium_version"
implementation "org.readium.kotlin-toolkit:readium-streamer:$readium_version"
implementation "org.readium.kotlin-toolkit:readium-navigator:$readium_version"
implementation "org.readium.kotlin-toolkit:readium-opds:$readium_version"
implementation "org.readium.kotlin-toolkit:readium-lcp:$readium_version"
}You may prefer to use a local Git clone if you want to contribute to Readium, or if you are using your own fork.
First, add the repository as a Git submodule of your app repository, then checkout the desired branch or tag:
git submodule add https://github.com/readium/kotlin-toolkit.gitThen, include the Readium build to your project's settings.gradle file. The Readium dependencies will automatically build against the local sources.
// Provide the path to the Git submodule.
includeBuild 'kotlin-toolkit'Using the toolkit with Readium LCP requires additional dependencies, including the binary liblcp provided by EDRLab. Contact EDRLab to request your private liblcp and the setup instructions.