TheReader
TheReader copied to clipboard
An organizer for you books (hopefully audio too) written in Rust Lang.
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:
-
Install Rust. It's used for coding this whole application.
-
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
- Ensure a C Linker is installed - Lazy?
-
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
- https://github.com/sfackler/rust-openssl/issues/855#issuecomment-450057552
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