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
Publication
models - 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 | 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.0.3'
}
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.git
Then, 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.