Find a file
Huang Xin e82fb9170f
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
CodeQL Advanced / Analyze (rust) (push) Waiting to run
Publish Docker image / merge (push) Blocked by required conditions
Publish Docker image / build (linux/amd64, ubuntu-latest) (push) Waiting to run
Publish Docker image / build (linux/arm64, ubuntu-24.04-arm) (push) Waiting to run
PR checks / test_extensions (push) Waiting to run
PR checks / build_tauri_app (push) Waiting to run
PR checks / rust_lint (push) Waiting to run
PR checks / build_web_app (push) Waiting to run
PR checks / test_web_app (1) (push) Waiting to run
PR checks / test_web_app (2) (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Waiting to run
Deploy to vercel on merge / build_and_deploy (push) Waiting to run
feat(reader): subscribe to RSS/Atom/JSON feeds as periodical feed books (#5039)
* feat(rss): add feed parser for RSS 2.0, Atom, and JSON Feed

* feat(rss): add platform-aware feed fetch client and feed discovery

* feat(rss): add feed store with refresh/merge and unread tracking

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(rss): ingest feed articles into the library via the clip pipeline

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(rss): add handleOpenArticle orchestration helper

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(rss): add Feeds workspace UI and library entry point

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(rss): encapsulate feed persistence in AppService and guard hydration race

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(rss): tag imported articles into the per-feed group

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(rss): use full <description> as article content and strip summary previews

Feeds that ship the full article body in <description> (no content:encoded)
left contentHtml empty, so opening an article fell through to fetching the
page via clip_url. On Android an http:// article link is then blocked
(ERR_CLEARTEXT_NOT_PERMITTED). Treat a substantial <description> as the
article content so the reader opens straight from the feed, and strip HTML
from the list-row summary preview.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(rss): add feed:// feed-book descriptor

* feat(rss): add feed manifest with append-only slot assignment

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(rss): guarded fetch + feed-content-first article extraction + cache

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(rss): build in-memory feed BookDoc with stable slot CFIs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(rss): include image and table styles in feed book sections

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(rss): create feed books from the import menu

Add feedBookHash + createFeedBook factory (TDD), extend BookMetadata with feedUrl,
and repoint the import-menu Feeds entry to an AddFeedModal-driven subscribe flow
that creates a virtual EPUB Book on the shelf via useLibraryStore.updateBooks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(rss): open feed books in the reader with refresh-on-open

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(rss): rehydrate feed book url from metadata for cross-device sync

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(rss): resolve relative article urls and guard malformed feed XHTML

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(rss): derive stable article slots from content hash for cross-device CFIs

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* feat(rss): shelf badge for feed books and fault-tolerant refresh

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(rss): drop shadow from feed badge for e-ink compliance

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* feat(rss): generated feed book covers with the classic feed icon

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* perf(rss): open feed books instantly and refresh in the background

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(rss): rasterize feed cover svg to png for shelf rendering

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* revert(rss): drop the shelf corner badge now that feed covers carry the icon

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* feat(reader): show spinner while navigating to an unloaded section

Wrap FoliateView.goTo to dispatch navigate-start/navigate-end custom
events so FoliateViewer can show its existing Spinner overlay during
cross-section TOC jumps that block on remote image loads (5-6 s).
A 200 ms delay suppresses the flash for instant same-section jumps.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(reader): clear nav spinner timer on unmount

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* ui(rss): polish import menu entries and Add Feed subscribe button

From Feed URL (feed icon) now sits between From Web URL and Online
Library, which gets the LuLibrary icon; the Subscribe CTA uses the
btn-contrast chassis.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* i18n: translate RSS feed strings across all locales

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 19:44:04 +02:00
.devcontainer fix(docker): fix Docker image latest tag and production runtime errors; add dev compose file, Codespace support, and semver release tagging (#7) (#4277) 2026-05-23 10:39:15 +08:00
.github feat(sentry): upload browser source maps for symbolicated JS crashes (#5027) 2026-07-09 09:18:48 +02:00
.husky feat(send): Send to Readest — multi-channel capture into your library (#4230) 2026-05-19 20:06:52 +02:00
.vscode chore: switch code formatter from Prettier to Biome (#4223) 2026-05-19 08:13:36 +02:00
.zed chore: add zed-editor support (#5026) 2026-07-09 09:07:53 +09:00
apps feat(reader): subscribe to RSS/Atom/JSON feeds as periodical feed books (#5039) 2026-07-09 19:44:04 +02:00
data release: version 0.11.18 (#5003) 2026-07-07 20:17:35 +02:00
docker fix(sync): sync updated book covers across devices (#4544) (#4731) 2026-06-22 17:31:03 +02:00
fastlane fix(widget): avoid recycling aliased source bitmap for 2:3 covers (#4850) 2026-06-29 04:13:17 +02:00
ops fix: change formatter to nixpkgs-fmt (#4932) 2026-07-05 08:52:48 +09:00
packages fix(reader): guard foliate paginator null-document crashes (#5020) 2026-07-09 09:00:46 +02:00
patches chore(deps): bump Next.js to version 16.2.6 (#4143) 2026-05-13 10:57:06 +02:00
.dockerignore ci: optimize build time for Docker and CI workflows (#4263) 2026-05-22 18:43:33 +02:00
.editorconfig dev: add editorconfig (#206) 2025-01-21 07:18:00 +01:00
.gitignore fix(library): fixed the All button in groups breadcrumbs navigation bar, closes #3782 (#3832) 2026-04-11 19:55:08 +02:00
.gitmodules feat(android): upgrade in-process WebView on devices stuck on old system WebView (#4142) 2026-05-13 09:01:13 +02:00
biome.json fix(nix): get nix devshell working (#4883) 2026-07-04 12:56:21 +02:00
Cargo.lock feat(reader): slide and page curl turn animations (#555) (#4940) 2026-07-05 20:49:57 +02:00
Cargo.toml feat(reader): slide and page curl turn animations (#555) (#4940) 2026-07-05 20:49:57 +02:00
CONTRIBUTING.md chore: add zed-editor support (#5026) 2026-07-09 09:07:53 +09:00
Dockerfile build(web): standalone Docker image + drop Turbopack build cache (#4619) 2026-06-16 21:21:24 +02:00
LICENSE Add AGPLv3 license 2024-11-11 21:25:22 +01:00
package.json fix(reader): scroll oversized blocks in-place instead of turning the page (#4400) (#4415) 2026-06-02 14:45:18 +02:00
pnpm-lock.yaml feat(sentry): upload browser source maps for symbolicated JS crashes (#5027) 2026-07-09 09:18:48 +02:00
pnpm-workspace.yaml feat(sentry): upload browser source maps for symbolicated JS crashes (#5027) 2026-07-09 09:18:48 +02:00
README.md docs: move source build instructions to CONTRIBUTING.md (#5017) 2026-07-08 18:25:56 +02:00
SECURITY.md docs: add threat model and incident response plan to SECURITY.md (#3788) 2026-04-07 19:17:56 +02:00
tsconfig.json chore: enforce prettier, ignore submodules and vendor files (#3018) 2026-01-21 14:53:02 +01:00

Readest Logo

Readest


Readest is an open-source ebook reader designed for immersive and deep reading experiences. Built as a modern rewrite of Foliate, it leverages Next.js 16 and Tauri v2 to deliver a smooth, cross-platform experience across macOS, Windows, Linux, Android, iOS, and the Web.

Website Web App OS
Discord Reddit AGPL Licence Language Coverage Donate Latest release Last commit Commits Ask DeepWiki

FeaturesPlanned FeaturesScreenshotsDownloadsDocumentationGetting StartedTroubleshootingSupportLicense

Features

Implemented
Feature Description Status
Multi-Format Support Support EPUB, MOBI, KF8 (AZW3), FB2, CBZ, TXT, PDF
Scroll/Page View Modes Switch between scrolling or paginated reading modes.
Full-Text Search Search across the entire book to find relevant sections.
Annotations and Highlighting Add highlights, bookmarks, and notes to enhance your reading experience and use instant mode for quicker interactions.
Dictionary/Wikipedia Lookup Instantly look up words and terms when reading.
Parallel Read Read two books or documents simultaneously in a split-screen view.
Customize Font and Layout Adjust font, layout, theme mode, and theme colors for a personalized experience.
Code Syntax Highlighting Read software manuals with rich coloring of code examples.
File Association and Open With Quickly open files in Readest in your file browser with one-click.
Library Management Organize, sort, and manage your entire ebook library.
OPDS/Calibre Integration Integrate OPDS/Calibre to access online libraries and catalogs.
Translate with DeepL and Yandex From a single sentence to the entire book—translate instantly.
Text-to-Speech (TTS) Support Enjoy smooth, multilingual narration—even within a single book.
Sync across Platforms Synchronize book files, reading progress, notes, and bookmarks across all supported platforms.
Sync with Koreader Synchronize reading progress, notes, and bookmarks with Koreader devices.
Accessibility Provides full keyboard navigation and supports for screen readers such as VoiceOver, TalkBack, NVDA, and Orca.
Visual & Focus Aids Reading ruler, paragraph-by-paragraph reading mode, and speed reading features.

Planned Features

🛠 Building
🔄 Planned
Feature Description Priority
AI-Powered Summarization Generate summaries of books or chapters using AI for quick insights. 🛠
Advanced Reading Stats Track reading time, pages read, and more for detailed insights. 🛠
Audiobook Support Extend functionality to play and manage audiobooks. 🔄
Handwriting Annotations Add support for handwriting annotations using a pen on compatible devices. 🔄
In-Library Full-Text Search Search across your entire ebook library to find topics and quotes. 🔄

Stay tuned for continuous improvements and updates! Contributions and suggestions are always welcome—let's build the ultimate reading experience together. 😊

Screenshots

Annotations

TTS

DeepL

Footnote

Wikipedia

Theming Dark Mode


Downloads

Mobile Apps

Download on the App Store     Get it on Google Play

Platform-Specific Downloads

Documentation

Guides, tutorials, and FAQs for installing and using Readest live in the official documentation:

📖 https://readest.com/docs

Building from Source

To build Readest from the latest commit, see Getting Started.

Troubleshooting

1. Readest Wont Launch on Windows (Missing Edge WebView2 Runtime)

Symptom

  • When you double-click readest.exe, nothing happens. No window appears, and Task Manager does not show the process.
  • This can affect both the standard installer and the portable version.

Cause

  • Microsoft Edge WebView2 Runtime is either missing, outdated, or improperly installed on your system. Readest depends on WebView2 to render the interface on Windows.

How to Fix

  1. Check if WebView2 is installed
    • Open “Add or Remove Programs” (a.k.a. Apps & features) on Windows. Look for “Microsoft Edge WebView2 Runtime.”
  2. Install or Update WebView2
    • Download the WebView2 Runtime directly from Microsoft: link.
    • If you prefer an offline installer, download the offline package and run it as an Administrator.
  3. Re-run Readest
    • After installing/updating WebView2, launch readest.exe again.
    • If you still encounter problems, reboot your PC and try again.

Additional Tips

  • If reinstalling once doesnt work, uninstall Edge WebView2 completely, then reinstall it with Administrator privileges.
  • Verify your Windows installation has the latest updates from Microsoft.

Still Stuck?

  • See Issue readest/readest#358 for further details, or head over to our Discord server and open a support discussion with detailed logs of your environment and the steps youve taken.

2. AppImage Launches but Only Shows a Taskbar Icon

On some Arch Linux systems—especially those using Wayland—the Readest AppImage may briefly show an icon in the taskbar and then exit without opening a window.

You might see logs such as:

Could not create default EGL display: EGL_BAD_PARAMETER. Aborting...

This behavior is usually caused by compatibility issues between the bundled AppImage libraries and the systems EGL / Wayland environment.

Workaround 1: Launch with LD_PRELOAD (recommended)

You can preload the system Wayland client library before launching the AppImage:

LD_PRELOAD=/usr/lib/libwayland-client.so /path/to/Readest.AppImage

This workaround has been confirmed to resolve the issue on affected systems.

Workaround 2: Use the Flatpak Version

If you prefer a more reliable out-of-the-box experience on Arch Linux, consider using the Flatpak build on Flathub instead. The Flatpak runtime helps avoid system library mismatches and tends to behave more consistently across different Wayland and X11 setups.

Contributors

Readest is open-source, and contributions are welcome! Feel free to open issues, suggest features, or submit pull requests. Please review our contributing guidelines before you start. We also welcome you to join our Discord community for either support or contributing guidance.

A table of avatars from the project's contributors

Support

If Readest has been useful to you, consider supporting its development at donate.readest.com, where you'll find all available donation methods, including GitHub Sponsors, card payments, and crypto. Your contribution helps us fix bugs faster, improve performance, and keep building great features.

License

Readest is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See the LICENSE file for details.

The following libraries and frameworks are used in this software:

  • foliate-js, which is MIT licensed.
  • zip.js, which is licensed under the BSD-3-Clause license.
  • fflate, which is MIT licensed.
  • PDF.js, which is licensed under Apache License 2.0.
  • daisyUI, which is MIT licensed.
  • marked, which is MIT licensed.
  • next.js, which is MIT licensed.
  • react-icons, which has various open-source licenses.
  • react, which is MIT licensed.
  • tauri, which is MIT licensed.

The following fonts are utilized in this software, either bundled within the application or provided through web fonts:

Bitter, Fira Code, Inter, Literata, Merriweather, Noto Sans, Roboto, LXGW WenKai, MiSans, Source Han, WenQuanYi Micro Hei

We would also like to thank the Web Chinese Fonts Plan for offering open-source tools that enable the use of Chinese fonts on the web.


Happy reading with Readest!