8 releases

new 0.1.8 Nov 5, 2024
0.1.7 Nov 4, 2024
0.1.6 Oct 19, 2024
0.1.3 Sep 22, 2024
0.1.1 Jun 14, 2024

#210 in Parser implementations

Download history 95/week @ 2024-07-17 23/week @ 2024-07-24 14/week @ 2024-07-31 11/week @ 2024-09-11 153/week @ 2024-09-18 44/week @ 2024-09-25 124/week @ 2024-10-02 168/week @ 2024-10-09 327/week @ 2024-10-16 21/week @ 2024-10-23 39/week @ 2024-10-30

653 downloads per month

AGPL-3.0

60KB
633 lines

RusticReader

A minimalistic ebook reader

Overview

The goal of this project is to build an ebook reader that has a minimal set of features, that make ebook reading enjoyable on a desktop computer. Furthermore we are building a seamless experience for reading ebooks, both on a desktop computer and a tablet or ereader with a browser.

Features

  • CLI client
    • Converts regular or scanned PDF or EPUB to plain text
    • Justifies the plain text to specified column width
    • Horizontally centers the text
    • Minimalistic less like interactive reader with vim like bindings
    • Saves progress
    • Written in pure Rust
    • Cross platform
    • Each component in the CLI client is exposed as a UNIX style utility

Quick start guide

Install the CLI client

cargo install --locked rustic-reader
rustic-reader document.pdf

for scanned document support

sudo apt install ocrmypdf tesseract-ocr-eng

then use the --ocr=true flag

rustic-reader --ocr=true document.pdf

For further install instructions read the Getting started page

Documentation

Visit the Documentation

Roadmap

  • Plain text format support
  • PDF format support
  • EPUB format support
  • Convert scanned documents and images to plain text with ocrmypdf
  • Auto saving progress
  • Offline PWA web client
  • Server to sync progress
  • Integrated command line
  • Text highlighting
  • Extend server to sync books and highlights
  • Support more ebook and document formats
  • CLI client image to ascii art converter
  • Natural sounding ai voice model for text to speech narration

Dependencies

~27–43MB
~601K SLoC