Skip to content

An organizer for you books (hopefully audio too) written in Rust Lang.

License

Notifications You must be signed in to change notification settings

oqurum/TheReader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Book Reader

An organizer for your books that allows you to read them in your browser. With a focus on simplicity and ease of use. Currently only supports epub (cbz is almost impl. too) files.

My intention will be to make it Plex for Books.

TODO:

  • Better Separation of books' Sections
  • Utilize sqlite transactions for multi table changes.
  • Implement database migrations
  • Cache & Clear external searches for each task ran

Running/Building

To run and build the application you need to do the following:

  1. Install Rust. It's used for coding this whole application.

  2. Install Trunk. It's used for building the frontend.

    • Ensure a C Linker is installed - Lazy? sudo apt install build-essential will install all essentials including the linker
  3. Add Wasm32 Target to Rust: rustup target add wasm32-unknown-unknown - Used for frontend

Git

Import the submodules

git submodule update --init

Backend:

Inside root folder execute these commands:

cargo run --bin books-backend

The server will now be hosted on 127.0.0.1:8084

Known Errors:

Error: could not find system library 'openssl' required by the 'openssl-sys' crate

Frontend:

Execute one of these commands

To build:

cd crates/frontend
trunk build --public-url "/dist" -d "../../app/public/dist"

To build and watch:

cd crates/frontend
trunk watch --public-url "/dist" -d "../../app/public/dist"

Packaging

Packaging will store the frontend in to the reader executable and extract files when ran.

Frontend:

Execute this first

To build:

cd crates/frontend
trunk build --release --public-url "/dist" -d "../../app/public/dist"

Backend:

Inside root folder execute these commands:

cargo build --bin backend-bundled --release --features=bundled

The packaged executable will now be inside target/release

Gallery

Mobile View

Overview Library Book View Book Reader

Desktop View

Overview

Overview

Basic library viewer.

Home

Basic book viewer.

Book View

Basic book reader.

Book Reader

It can even go fullscreen!

Book Reader Fullscreen