Home

Awesome

<div align="center"> <a href="https://readest.com?utm_source=github&utm_medium=referral&utm_campaign=readme" target="_blank"> <img src="https://github.com/chrox/readest/blob/main/apps/readest-app/src-tauri/icons/icon.png?raw=true" alt="Readest Logo" width="20%" /> </a> <h1>Readest</h1> <br>

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 15 and Tauri v2 to offer a seamless cross-platform experience on macOS, Windows, Linux and Web, with support for mobile platforms coming soon.

Website Web App OS <br> AGPL Licence Latest release Last commit Commits

</div> <p align="center"> <a href="#features">Features</a> • <a href="#planned-features">Planned Features</a> • <a href="#screenshots">Screenshots</a> • <a href="#downloads">Downloads</a> • <a href="#getting-started">Getting Started</a> • <a href="#contributors">Contributors</a> • <a href="#license">License</a> </p> <div align="center"> <a href="https://readest.com" target="_blank"> <img src="./data/screenshots/landing_preview.png" alt="Readest Banner" width="100%" /> </a> </div>

Features

<div align="left">✅ Implemented</div>
FeatureDescriptionStatus
Multi-Format SupportSupport EPUB, MOBI, KF8 (AZW3), FB2, CBZ, PDF (experimental)
Scroll/Page View ModesSwitch between scrolling or paginated reading modes.
Full-Text SearchSearch across the entire book to find relevant sections.
Annotations and HighlightingAdd highlights, bookmarks, and notes to enhance your reading experience.
Excerpt Text for Note-TakingEasily excerpt text from books for detailed notes and analysis.
Dictionary/Wikipedia LookupInstantly look up words and terms when reading.
Translate with DeepLTranslate selected text instantly using DeepL for accurate translations.
Parallel ReadRead two books or documents simultaneously in a split-screen view.
Customize Font and LayoutAdjust font, layout, theme mode, and theme colors for a personalized experience.
File Association and Open WithQuickly open files in Readest in your file browser with one-click.

Planned Features

<div align="left">🛠 Building</div> <div align="left">🔄 Planned</div>
FeatureDescriptionPriority
Support iOS and AndroidExpand the APP to work on iOS and Android devices.🛠
Sync Across PlatformsSynchronize reading progress, notes, and bookmarks across all supported platforms.🛠
Sync with KoreaderSynchronize reading progress, notes, and bookmarks with Koreader devices.🔄
Keyboard NavigationImplement vimium-style keybindings for book navigation.🔄
Library ManagementOrganize, sort, and manage your entire ebook library.🔄
Support OPDS/CalibreIntegrate OPDS/Calibre to access online libraries and catalogs.🔄
Text-to-Speech (TTS) SupportEnable text-to-speech functionality for a more accessible reading experience.🔄
Audiobook SupportExtend functionality to play and manage audiobooks.🔄
Handwriting AnnotationsAdd support for handwriting annotations using a pen on compatible devices.🔄
Advanced Reading StatsTrack reading time, pages read, and more for detailed insights.🔄
In-Library Full-Text SearchSearch across your entire ebook library to find topics and quotes.🔄
AI-Powered SummarizationGenerate summaries of books or chapters using AI for quick insights.🔄

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

Screenshots

Annotations

DeepL

Footnote

Wikipedia

Dark Mode


Downloads

The Readest app is available for download! 🥳 🚀

Requirements

For the best experience to build Readest for yourself, use a recent version of Node.js and Rust. Refer to the Tauri documentation for details on setting up the development environment prerequisites on different platforms.

nvm install v22
nvm use v22
npm install -g pnpm
rustup update

Getting Started

To get started with Readest, follow these steps to clone and build the project.

1. Clone the Repository

git clone https://github.com/chrox/readest.git
cd readest
git submodule update --init --recursive

2. Install Dependencies

# might need to rerun this when code is updated
pnpm install
# copy pdfjs-dist to Next.js public directory
pnpm --filter @readest/readest-app setup-pdfjs

3. Verify Dependencies Installation

To confirm that all dependencies are correctly installed, run the following command:

pnpm tauri info

This command will display information about the installed Tauri dependencies and configuration on your platform. Note that the output may vary depending on the operating system and environment setup. Please review the output specific to your platform for any potential issues.

For Windows targets, “Build Tools for Visual Studio 2022” (or a higher edition of Visual Studio) and the “Desktop development with C++” workflow must be installed. For Windows ARM64 targets, the “VS 2022 C++ ARM64 build tools” and "C++ Clang Compiler for Windows" components must be installed. And make sure clang can be found in the path by adding C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\Llvm\x64\bin for example in the environment variable Path.

4. Build for Development

pnpm tauri dev

5. Build for Production

pnpm tauri build

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 href="https://github.com/chrox/readest/graphs/contributors"> <p align="left"> <img width="50" src="https://contrib.rocks/image?repo=chrox/readest" alt="A table of avatars from the project's contributors" /> </p> </a>

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 JavaScript libraries are bundled in this software:


<div align="center" style="color: gray;">Happy reading with Readest!</div>