Skip to content

readium/kotlin-toolkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c6b8e8e Β· Apr 29, 2025
Apr 23, 2025
Apr 22, 2025
May 24, 2024
Apr 29, 2025
Apr 14, 2025
Apr 22, 2025
Apr 22, 2025
Apr 22, 2025
Nov 19, 2024
Nov 15, 2024
Apr 22, 2025
May 1, 2024
Sep 23, 2021
May 1, 2024
Apr 22, 2025
Apr 29, 2025
Nov 4, 2024
Apr 14, 2025
Sep 24, 2021
Sep 24, 2021
Jan 8, 2024
Nov 15, 2024

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

⚠️ 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.