{"id":13668268,"url":"https://github.com/readium/kotlin-toolkit","last_synced_at":"2025-06-27T08:38:20.137Z","repository":{"id":38364065,"uuid":"409576806","full_name":"readium/kotlin-toolkit","owner":"readium","description":"A toolkit for ebooks, audiobooks and comics written in Kotlin","archived":false,"fork":false,"pushed_at":"2024-04-09T18:50:23.000Z","size":61737,"stargazers_count":144,"open_issues_count":43,"forks_count":70,"subscribers_count":9,"default_branch":"develop","last_synced_at":"2024-04-10T00:48:02.892Z","etag":null,"topics":["android","audiobook","cbz","epub","kotlin","pdf","reader"],"latest_commit_sha":null,"homepage":"https://readium.org/kotlin-toolkit","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/readium.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-09-23T12:12:08.000Z","updated_at":"2024-04-15T12:56:48.386Z","dependencies_parsed_at":"2023-09-26T19:44:24.664Z","dependency_job_id":"31698de5-e5f6-4e4a-819b-a8ffe50784e1","html_url":"https://github.com/readium/kotlin-toolkit","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/readium%2Fkotlin-toolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/readium%2Fkotlin-toolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/readium%2Fkotlin-toolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/readium%2Fkotlin-toolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/readium","download_url":"https://codeload.github.com/readium/kotlin-toolkit/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224048647,"owners_count":17247059,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","audiobook","cbz","epub","kotlin","pdf","reader"],"created_at":"2024-08-02T08:00:28.518Z","updated_at":"2025-06-27T08:38:20.123Z","avatar_url":"https://github.com/readium.png","language":"Kotlin","funding_links":[],"categories":["Android","Kotlin","Parsers \u0026 Toolkits","Toolkits"],"sub_categories":["Android libraries","Kotlin"],"readme":"# Readium Kotlin Toolkit\n\n[Readium Mobile](https://github.com/readium/mobile) is a toolkit for ebooks, audiobooks and comics written in Swift \u0026 Kotlin.\n\n:point_up: **Take a look at the [guide to quickly get started](docs/guides/getting-started.md).** A [Test App](test-app) demonstrates how to integrate the Readium Kotlin toolkit in your own reading app.\n\n:question: **Find documentation and API reference at [readium.org/kotlin-toolkit](https://readium.org/kotlin-toolkit)**.\n\n## Features\n\n✅ Implemented \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; 🚧 Partially implemented  \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; 📆 Planned \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; 👀 Want to do \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; ❓ Not planned\n\n### Formats\n\n| Format | Status |\n|---|:---:|\n| EPUB 2 | ✅ |\n| EPUB 3 | ✅ |\n| Readium Web Publication | 🚧 |\n| PDF | ✅ |\n| Readium Audiobook | ✅ |\n| Zipped Audiobook | ✅ |\n| Standalone audio files (MP3, AAC, etc.) | ✅ |\n| Readium Divina | 🚧 |\n| CBZ (Comic Book ZIP) | 🚧 |\n| CBR (Comic Book RAR) | ❓ |\n| [DAISY](https://daisy.org/activities/standards/daisy/) | 👀 |\n\n### Features\n\nA number of features are implemented only for some publication formats.\n\n| Feature | EPUB (reflow) | EPUB (FXL) | PDF |\n|---|:---:|:---:|:---:|\n| Pagination | ✅ | ✅ | ✅ |\n| Scrolling | ✅ | 👀 | ✅ |\n| Right-to-left (RTL) | ✅ | ✅ |  ✅ |\n| Search in textual content | ✅ | ✅ | 👀 |\n| Highlighting (Decoration API) | ✅ | ✅ | 👀 |\n| Text-to-speech (TTS) | ✅ | ✅ | 👀 |\n| Media overlays | 📆 | 📆 | |\n\n### OPDS Support\n\n| Feature | Status |\n|---|:---:|\n| [OPDS Catalog 1.2](https://specs.opds.io/opds-1.2) | ✅ | \n| [OPDS Catalog 2.0](https://drafts.opds.io/opds-2.0) | ✅ | \n| [Authentication for OPDS](https://drafts.opds.io/authentication-for-opds-1.0.html) | 📆 |\n| [Readium LCP Automatic Key Retrieval](https://readium.org/lcp-specs/notes/lcp-key-retrieval.html) | 📆 |\n\n### DRM Support\n\n| Feature | Status |\n|---|:---:|\n| [Readium LCP](https://www.edrlab.org/projects/readium-lcp/) | ✅ |\n| [Adobe ACS](https://www.adobe.com/fr/solutions/ebook/content-server.html) | ❓ |\n\n## User Guides\n\nGuides are available to help you make the most of the toolkit.\n\n### Publication\n\n* [Opening a publication](docs/guides/open-publication.md) – parse a publication package (EPUB, PDF, etc.) or manifest (RWPM) into Readium `Publication` models\n* [Extracting the content of a publication](docs/guides/content.md) – API to extract the text content of a publication for searching or indexing it\n* [Supporting PDF documents](docs/guides/pdf.md) – setup the PDF support in the toolkit\n* [Text-to-speech](docs/guides/tts.md) – read aloud the content of a textual publication using speech synthesis\n* [Accessibility](docs/guides/accessibility.md) – inspect and present accessibility metadata to users\n\n### Navigator\n\n* [Navigator](docs/guides/navigator/navigator.md) - an overview of the Navigator to render a `Publication`'s content to the user\n* [Configuring the Navigator](docs/guides/navigator/preferences.md) – setup and render Navigator user preferences (font size, colors, etc.)\n* [Font families in the EPUB navigator](docs/guides/navigator/epub-fonts.md) – support custom font families with reflowable EPUB publications\n* [Media Navigator](docs/guides/navigator/media-navigator.md) – use the Media Navigator to read aloud a publication (audiobook, TTS, etc.)\n\n### DRM\n\n* [Supporting Readium LCP](docs/guides/lcp.md) – open and render LCP DRM protected publications\n\n## Setting up the Readium Kotlin toolkit\n\n### Minimum Requirements\n\n| Readium   | Android min SDK | Android compile SDK | Kotlin compiler (✻) | Gradle (✻) |\n|-----------|-----------------|---------------------|---------------------|------------|\n| `develop` | 21              | 36                  | 2.1.21              | 8.14.1     |\n| 3.1.0     | 21              | 35                  | 2.1.20              | 8.13       |\n| 3.0.0     | 21              | 34                  | 1.9.24              | 8.6.0      |\n| 2.3.0     | 21              | 33                  | 1.7.10              | 6.9.3      |\n\n✻ Only required if you integrate Readium as a submodule instead of using Maven Central.\n\n### Dependencies\n\nReadium modules are distributed with [Maven Central](https://search.maven.org/search?q=g:org.readium.kotlin-toolkit). Make sure that you have the `$readium_version` property set in your root `build.gradle`, then add the Maven Central repository.\n\n```groovy\nbuildscript {\n    ext.readium_version = '3.1.1'\n}\n\nallprojects {\n    repositories {\n        mavenCentral()\n    }\n}\n```\n\nThen, add the dependencies to the Readium modules you need in your app's `build.gradle`.\n\n```groovy\ndependencies {\n    implementation \"org.readium.kotlin-toolkit:readium-shared:$readium_version\"\n    implementation \"org.readium.kotlin-toolkit:readium-streamer:$readium_version\"\n    implementation \"org.readium.kotlin-toolkit:readium-navigator:$readium_version\"\n    implementation \"org.readium.kotlin-toolkit:readium-opds:$readium_version\"\n    implementation \"org.readium.kotlin-toolkit:readium-lcp:$readium_version\"\n}\n```\n\n:warning: If you target Android devices running below API 26, you must enable [core library desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring) in your application module.\n\n#### Using a local Git clone\n\nYou may prefer to use a local Git clone if you want to contribute to Readium, or if you are using your own fork.\n\nFirst, add the repository as a Git submodule of your app repository, then checkout the desired branch or tag:\n\n```sh\ngit submodule add https://github.com/readium/kotlin-toolkit.git\n```\n\nThen, include the Readium build to your project's `settings.gradle` file. The Readium dependencies will automatically build against the local sources.\n\n```groovy\n// Provide the path to the Git submodule.\nincludeBuild 'kotlin-toolkit'\n```\n\n:warning: When importing Readium locally, you will need to use the same version of the Android Gradle Plugin in your project.\n\n### Building with Readium LCP\n\nUsing the toolkit with Readium LCP requires additional dependencies, including the binary `liblcp` provided by EDRLab. [Contact EDRLab](mailto:contact@edrlab.org) to request your private `liblcp` and the setup instructions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freadium%2Fkotlin-toolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freadium%2Fkotlin-toolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freadium%2Fkotlin-toolkit/lists"}