Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oqurum/TheReader
An organizer for you books (hopefully audio too) written in Rust Lang.
https://github.com/oqurum/TheReader
book books organize organizer rust rust-lang sqlite
Last synced: 3 months ago
JSON representation
An organizer for you books (hopefully audio too) written in Rust Lang.
- Host: GitHub
- URL: https://github.com/oqurum/TheReader
- Owner: oqurum
- License: gpl-3.0
- Created: 2022-03-27T11:13:08.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-01-07T18:53:43.000Z (10 months ago)
- Last Synced: 2024-01-07T19:50:55.185Z (10 months ago)
- Topics: book, books, organize, organizer, rust, rust-lang, sqlite
- Language: Rust
- Homepage:
- Size: 12.4 MB
- Stars: 19
- Watchers: 4
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](https://plex.tv) 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](https://www.rust-lang.org/). It's used for coding this whole application.
2. [Install Trunk](https://trunkrs.dev/#install). 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 linker3. Add Wasm32 Target to Rust: `rustup target add wasm32-unknown-unknown` - Used for frontend
## Git
Import the submodules
```bash
git submodule update --init
```## Backend:
Inside **root folder** execute these commands:
```bash
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 commandsTo build:
```bash
cd crates/frontend
trunk build --public-url "/dist" -d "../../app/public/dist"
```To build and watch:
```bash
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 firstTo build:
```bash
cd crates/frontend
trunk build --release --public-url "/dist" -d "../../app/public/dist"
```## Backend:
Inside **root folder** execute these commands:```bash
cargo build --bin backend-bundled --release --features=bundled
```The packaged executable will now be inside target/release
# Gallery
## Mobile View
![Overview](https://i.thick.at/BustedButterfly562.png)
![Library](https://i.thick.at/AttentRedTornado025.png)
![Book View](https://i.thick.at/MonoculturalYarn453.png)
![Book Reader](https://i.thick.at/MoonishBorsec836.png)## Desktop View
### Overview
![Overview](https://i.thick.at/DishonorableRJD2117.png)
### Basic library viewer.
![Home](https://i.thick.at/AntagonizingFleance243.jpeg)
### Basic book viewer.
![Book View](https://i.thick.at/AntispasmodicCodyJinks427.png)
### Basic book reader.
![Book Reader](https://i.thick.at/SightlyWalkersShots711.png)
### It can even go fullscreen!
![Book Reader Fullscreen](https://i.thick.at/EmeticEverythingEverything016.png)