Convert Figma logo to code with AI

koodo-reader logokoodo-reader

A modern ebook manager and reader with sync and backup capacities for Windows, macOS, Linux, Android, iOS and Web

22,829
1,748
22,829
549

Top Related Projects

:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database

A modern ebook manager and reader with sync and backup capacities for Windows, macOS, Linux, Android, iOS and Web

22,600

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

A cross platform desktop reading app, based on the Readium Desktop toolkit

Quick Overview

Koodo Reader is an open-source, cross-platform eBook reader with a clean and modern interface. It supports multiple eBook formats, including EPUB, PDF, MOBI, and more, and offers features like bookmarking, highlighting, and note-taking.

Pros

  • Cross-platform compatibility (Windows, macOS, Linux, and Web)
  • Supports a wide range of eBook formats
  • Clean and intuitive user interface
  • Customizable reading experience (fonts, themes, layouts)

Cons

  • Limited advanced features compared to some commercial eBook readers
  • Occasional performance issues with large PDF files
  • Lacks integration with popular eBook stores or cloud services
  • Some users report syncing issues between devices

Getting Started

To get started with Koodo Reader:

  1. Visit the Koodo Reader releases page on GitHub.
  2. Download the appropriate version for your operating system.
  3. Install the application following the standard installation process for your OS.
  4. Launch Koodo Reader and start importing your eBooks by clicking the "Import" button or dragging and dropping files into the application.

For web users:

  1. Visit https://reader.960960.xyz/ to access the web version of Koodo Reader.
  2. Click "Add Books" to start importing your eBooks.

Note: The web version may have limited functionality compared to the desktop applications.

Competitor Comparisons

:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database

Pros of Calibre-web

  • Integrates with Calibre library, providing access to a wide range of e-book management features
  • Supports multiple users with customizable permissions
  • Offers a responsive web interface accessible from various devices

Cons of Calibre-web

  • Requires Calibre to be installed and configured separately
  • Less focus on the reading experience compared to Koodo Reader
  • May have a steeper learning curve for users unfamiliar with Calibre

Code Comparison

Calibre-web (Python):

@app.route("/book/<int:book_id>")
@login_required_if_no_ano
def show_book(book_id):
    entries = db.session.query(db.Books).filter(db.Books.id == book_id).first()
    if entries:
        return render_title_template('book.html', entry=entries, title=entries.title, page="book")
    else:
        flash(_(u"Error opening eBook. File does not exist or file is not accessible:"), category="error")
        return redirect(url_for("index"))

Koodo Reader (JavaScript):

const handleReadingBook = (book: BookModel) => {
  if (!book.key) return;
  const bookPath = book.path || "";
  const ref = storage.getItem("ref");
  navigate(`/reader?key=${book.key}&file=${bookPath}&ref=${ref}`);
};

Both projects serve different purposes: Calibre-web focuses on managing and accessing a Calibre library through a web interface, while Koodo Reader is primarily an e-book reader application. The code snippets reflect these differences, with Calibre-web handling book display in a web context and Koodo Reader managing the navigation to a reading interface.

A modern ebook manager and reader with sync and backup capacities for Windows, macOS, Linux, Android, iOS and Web

Pros of koodo-reader

  • No unique pros identified as both repositories are identical
  • Both offer the same features and functionality

Cons of koodo-reader

  • No unique cons identified as both repositories are identical
  • Both have the same limitations or drawbacks

Code comparison

As both repositories are identical, there is no meaningful code comparison to be made. The codebase, structure, and contents are the same for both koodo-reader repositories.

Summary

The comparison between koodo-reader/koodo-reader and koodo-reader/koodo-reader reveals that they are identical repositories. This situation could occur if:

  1. The repository was accidentally duplicated
  2. There's a naming convention or organizational structure reason for the duplication
  3. It's a temporary situation during a migration or restructuring process

Given the identical nature of the repositories, users would have the same experience, features, and limitations regardless of which one they choose to use or contribute to. It's recommended to clarify with the repository owners about the purpose of having two identical repositories and which one should be considered the primary or official version.

22,600

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

Pros of KOReader

  • More extensive device support, including e-ink readers and Android devices
  • Advanced features like text reflow, hyphenation, and custom CSS styling
  • Highly customizable and extensible through Lua plugins

Cons of KOReader

  • Steeper learning curve due to more complex interface and features
  • Less modern and polished user interface compared to Koodo Reader
  • Limited support for DRM-protected ebooks

Code Comparison

KOReader (Lua):

local ReaderUI = require("apps/reader/readerui")
local ReaderView = ReaderUI:extend{
    -- Reader view implementation
}

Koodo Reader (JavaScript/React):

import React from 'react';
import { ReaderView } from './components/ReaderView';

const Reader = () => {
  return <ReaderView />;
};

KOReader uses Lua for its core functionality, while Koodo Reader is built with JavaScript and React. KOReader's codebase is more complex and allows for deeper customization, whereas Koodo Reader's approach is more modern and web-oriented.

A cross platform desktop reading app, based on the Readium Desktop toolkit

Pros of Thorium Reader

  • Built with Electron, offering cross-platform compatibility
  • Supports a wider range of e-book formats, including EPUB, PDF, and DAISY
  • Focuses on accessibility features for visually impaired users

Cons of Thorium Reader

  • Less customizable user interface compared to Koodo Reader
  • Larger application size due to Electron framework
  • May have slower performance on low-end devices

Code Comparison

Thorium Reader (TypeScript):

export function createWindow(): BrowserWindow {
  const window = new BrowserWindow({
    width: 1200,
    height: 800,
    webPreferences: {
      nodeIntegration: true,
    },
  });
  window.loadFile('index.html');
  return window;
}

Koodo Reader (JavaScript):

const createWindow = () => {
  const win = new BrowserWindow({
    width: 960,
    height: 600,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false,
    },
  });
  win.loadURL(isDev ? 'http://localhost:3000' : `file://${path.join(__dirname, '../build/index.html')}`);
  return win;
};

Both projects use Electron for creating desktop applications, but Thorium Reader is written in TypeScript, while Koodo Reader uses JavaScript. Thorium Reader's window creation is simpler, while Koodo Reader includes additional configuration for development and production environments.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Koodo Reader

A cross-platform ebook reader

Preview







Feature

  • Format support:
    • EPUB (.epub)
    • PDF (.pdf)
    • DRM-free Mobipocket (.mobi) and Kindle (.azw3, .azw)
    • Plain text (.txt)
    • FictionBook (.fb2)
    • Comic book archive (.cbr, .cbz, .cbt, .cb7)
    • Rich text (.md, .docx)
    • Hyper Text (.html, .xml, .xhtml, .mhtml, .htm)
  • Platform support: Windows, macOS, Linux, Android, iOS and Web
  • Utilize OneDrive, Google Drive, Dropbox, MEGA, pCloud, Aliyun Drive, Box, FTP, SFTP, WebDAV, Object Storage to sync and backup your data.
  • Easily import books from OneDrive, Google Drive, MEGA, Aliyun Drive, Box, FTP, SFTP, WebDAV, Object Storage
  • AI Translation, AI Dictionary, AI Summarization
  • Single-column, two-column, or continuous scrolling layouts
  • Text-to-speech, translation, dictionary, touch screen support, batch import
  • Add bookmarks, notes, highlights to your books
  • Adjust font size, font family, line-spacing, paragraph spacing, background color, text color, margins, and brightness
  • Night mode and theme color
  • Text highlight, underline, boldness, italics and shadow

Installation

Desktop Version:

  • Stable Version (Recommended): Download
  • Developer version: Download ( With new feature and bug fix, but may induce some unknown bugs)

Web Version:Visit

Android Version (works with developer version):Download

iOS Version (works with developer version):Download

Install with Scoop:

scoop bucket add extras
scoop install extras/koodo-reader

Install with Homebrew:

brew install --cask koodo-reader

Install with Docker:

If you only need to deploy the web version, simply use the command below.

docker run -d \
  --name koodo-reader \
  -p 80:80 \
  -p 8080:8080 \
  -e ENABLE_HTTP_SERVER=false \
  -e SERVER_USERNAME=admin \
  -e SERVER_PASSWORD=securePass123 \
  -v /path/to/host/uploads:/app/uploads \
  ghcr.io/koodo-reader/koodo-reader:master

If you also want to enable the data source feature, please:

  1. Set ENABLE_HTTP_SERVER to true
  2. Change SERVER_USERNAME and SERVER_PASSWORD to a secure username and password
  3. Replace /path/to/host/uploads with the folder where you want to store reading data

Then, select Docker as the data source in Koodo Reader.

Data source functionality use port 8080, and web version use port 80 by default. If you want to switch to port 8090, just change -p 8080:8080 to -p 8090:8080.

If you want to use Docker Secrets to set SERVER_PASSWORD, please refer to docker-compose-secret.yml

Screenshot

Book list



Book display



List mode



Cover mode



Reader menu



Dark mode


Develop

Make sure that you have installed yarn and git

  1. Download the repo

    git clone https://github.com/koodo-reader/koodo-reader.git
    
  2. Enter desktop mode

    yarn
    yarn dev
    
  3. Enter web mode

    yarn
    yarn start
    

Translation

Edit current language

  1. Select your target language from the following list.

  2. Click the view button to examine the source file. The untranslated terms are listed at the bottom of each file.

  3. Translate the terms to your target language based on the given English reference

  4. Sumbit the translation file or just translation snippets based on the amount of your translation to this link. Pull request is also welcomed.

Language(A-Z)CodeView
AmharicamView
ArabicarView
ArmenianhyView
BengalibnView
BulgarianbgView
Chinese (CN)zh-CNView
Chinese (MO)zh-MOView
Chinese (TW)zh-TWView
CzechcsView
DanishdaView
DutchnlView
EnglishenView
EsperantoeoView
FinnishfiView
FrenchfrView
GermandeView
GreekelView
HindihiView
HungarianhuView
IndonesianidView
InterlingueieView
IrishgaView
ItalianitView
JapanesejaView
KoreankoView
PersianfaView
PolishplView
PortugueseptView
Portuguese (BR)pt-BRView
RomanianroView
RussianruView
SlovenianslView
SpanishesView
SwedishsvView
TamiltaView
ThaithView
TagalogtlView
TibetanboView
TurkishtrView
UkrainianukView
VietnameseviView

Add new language

  1. If you can't find your target language from the above list, Download the Engish source file from this link

  2. When you finish translation, submit the source file to this link. Pull request is also welcomed.