koreader is a free, open source publishing project written in Lua and released under AGPL-3.0. It has 29,761 GitHub stars, 1,908 forks and 1,345 open issues, and was last pushed 6 hours ago. On this registry it ranks #2 of 46 tracked projects in Publishing, with 5 head-to-head comparisons available. It gained 40 stars over the last 3 tracked days.

What is koreader?

KOReader is a free, AGPL-3.0-licensed document viewer written in Lua that runs on e-ink readers from Cervantes, Kindle, Kobo and PocketBook, on reMarkable, and on Android and desktop Linux, aimed at readers who want broader format support, finer typesetting control and better performance than the reading software shipped with their device.

What it is

KOReader is an ebook and document reader application, distributed as open source under the AGPL-3.0 licence and developed in Lua on LuaJIT. The project describes itself as a document viewer primarily aimed at e-ink readers, but the same codebase runs on embedded devices, on Android and on Linux computers, with an emulator available for developers on Linux and macOS. It handles both fixed-page formats such as PDF, DjVu, CBT and CBZ and reflowable e-book formats such as EPUB, FB2, Mobi, DOC, RTF, HTML, CHM and TXT, and it can read ZIP archives for some of those formats.

The concrete problem it solves is the limited, closed reading software that ships with most e-ink hardware. Vendor firmware tends to support a narrow set of formats and offers few options for margins, line spacing, fonts and styles. KOReader replaces that built-in reader with a custom interface designed for e-ink panels: no animation, paginated menus, adjustable text contrast, zoom-to-fit for paged media, and bundled multilingual hyphenation dictionaries. On some older devices it has been measured to have less than half the page-turn delay of the built-in reading software.

Key capabilities

  • Opens fixed-page formats (PDF, DjVu, CBT, CBZ) and reflowable formats (EPUB, FB2, Mobi, DOC, RTF, HTML, CHM, TXT), plus ZIP archives for some formats.
  • Reflows scanned PDF and DjVu documents through the bundled K2pdfopt library, the feature tracked by the djvu-reflow topic.
  • Integrates with calibre for metadata search, wireless ebook transfer and OPDS library browsing, and with Wallabag, Wikipedia and Google Translate.
  • Reads StarDict dictionaries for word lookup, and supports user-added OPDS catalogs and RSS feeds.
  • Ships an FTP client and an SSH server, and performs over-the-air software updates.
  • Extends through plugins, and offers a multilingual user interface with customizable reader view and typesetting.
  • Supports arbitrary page margins, line-spacing overrides, and external fonts and styles.

Who uses it and how

  • Owners of Kindle, Kobo, PocketBook and Cervantes (BQ) devices who install it alongside or instead of stock firmware, following model-specific installation steps.
  • reMarkable and Android users who want the same reading engine on tablet or notebook hardware.
  • Desktop Linux users running it as a normal application, and developers running the emulator on Linux or macOS to test changes.
  • Readers who keep their library in calibre and want wireless transfer and OPDS browsing from the device.
  • Users who need on-device dictionary lookup, Wikipedia lookups and RSS feeds without leaving the reader.
  • Translators and contributors working through Weblate, the wiki and the contributor forum, since the project is built and supported by volunteers.

Getting started

Installation is per device: the README links model-specific wiki guides for Android, Cervantes (BQ), Kindle, Kobo, PocketBook, reMarkable and desktop Linux, and releases are published on the GitHub releases page. Developers should begin with doc/Building.md and doc/Building_targets.md.

How it compares

No paid products are listed as being replaced by this project, and the facts name no direct rival reader application. On that basis KOReader stands alone in this registry. The only comparison the facts support is against the built-in reading software on the devices it targets, where KOReader has been measured with less than half the page-turn delay on some older hardware.

When to use it — and when not to

A self-hoster or device owner must handle model-specific installation from the wiki rather than a single package or installer, and support comes from volunteers on a forum and Gitter rather than a vendor. Anyone needing a supported commercial product with service guarantees, or unwilling to follow manual per-device steps, should not pick it. The project also carries 1,345 open issues, which signals an active but heavily loaded tracker, and its FTP client and SSH server expose network services that a cautious user may prefer to leave disabled.

project readme (upstream, from github) — read inline

KOReader

KOReader is a document viewer primarily aimed at e-ink readers.

AGPL Licence Latest release Gitter Mobileread Build Status Coverage Status Weblate Status

DownloadUser guideWikiDeveloper docs

Main features

  • portable: runs on embedded devices (Cervantes, Kindle, Kobo, PocketBook, reMarkable), Android and Linux computers. Developers can run a KOReader emulator in Linux and MacOS.

  • multi-format documents: supports fixed page formats (PDF, DjVu, CBT, CBZ) and reflowable e-book formats (EPUB, FB2, Mobi, DOC, RTF, HTML, CHM, TXT). Scanned PDF/DjVu documents can also be reflowed with the built-in K2pdfopt library. ZIP files are also supported for some formats.

  • full-featured reading: multi-lingual user interface with a highly customizable reader view and many typesetting options. You can set arbitrary page margins, override line spacing and choose external fonts and styles. It has multi-lingual hyphenation dictionaries bundled into the application.

  • integrated with calibre (search metadata, receive ebooks wirelessly, browse library via OPDS), Wallabag, Wikipedia, Google Translate and other content providers.

  • optimized for e-ink devices: custom UI without animation, with paginated menus, adjustable text contrast, and easy zoom to fit content or page in paged media.

  • extensible: via plugins

  • fast: on some older devices, it has been measured to have less than half the page-turn delay as the built in reading software.

  • and much more: look up words with StarDict dictionaries / Wikipedia, add your own online OPDS catalogs and RSS feeds, over-the-air software updates, an FTP client, an SSH server, …

Please check the user guide and the wiki to discover more features and to help us document them.

Screenshots

Installation

Please follow the model specific steps for your device:

AndroidCervantesKindleKoboLinuxPocketbookreMarkable

Development

Setting up a build environmentCollaborating with GitBuilding targetsPortingDeveloper docs

Support

KOReader is developed and supported by volunteers all around the world. There are many ways you can help:

Right now we only support liberapay donations.

Contributors

Last commit Commit activity

Frequently asked questions

Is koreader free to use?

koreader is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does koreader do?

An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices

What is koreader written in?

koreader is primarily written in Lua. Its source is publicly available at https://github.com/koreader/koreader, and it has 29,761 GitHub stars.