Skip to content

readium/kotlin-toolkit

Repository files navigation

Readium Kotlin Toolkit

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.

Features

✅ Implemented      🚧 Partially implemented      📆 Planned      👀 Want to do      ❓ Not planned

Formats

Format Status
EPUB 2
EPUB 3
Readium Web Publication 🚧
PDF
Readium Audiobook
Zipped Audiobook
Standalone audio files (MP3, AAC, etc.)
Readium Divina 🚧
CBZ (Comic Book ZIP) 🚧
CBR (Comic Book RAR)
DAISY 👀

Features

A number of features are implemented only for some publication formats.

Feature EPUB (reflow) EPUB (FXL) PDF
Pagination
Scrolling 👀
Right-to-left (RTL)
Search in textual content 👀
Highlighting (Decoration API) 👀
Text-to-speech (TTS) 👀
Media overlays 📆 📆

OPDS Support

Feature Status
OPDS Catalog 1.2
OPDS Catalog 2.0
Authentication for OPDS 📆
Readium LCP Automatic Key Retrieval 📆

DRM Support

Feature Status
Readium LCP
Adobe ACS

User Guides

Guides are available to help you make the most of the toolkit.

Publication

Navigator

DRM

Setting up the Readium Kotlin toolkit

Minimum Requirements

Readium Android min SDK Android compile SDK Kotlin compiler (✻) Gradle (✻)
develop 21 35 2.1.20 8.13
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.

Dependencies

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.0'
}

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"
}

⚠️ If you target Android devices running below API 26, you must enable core library desugaring in your application module.

Using a local Git clone

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'

⚠️ When importing Readium locally, you will need to use the same version of the Android Gradle Plugin in your project.

Building with Readium LCP

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.