https://github.com/xudong7/tauri-rbook
A cross-platform desktop EPUB eBook reader built with Tauri、Rust and Vue.js.
https://github.com/xudong7/tauri-rbook
epub epub-reader epubjs rust rust-lang tauri-app tauri2 typescript vue vue3
Last synced: 3 months ago
JSON representation
A cross-platform desktop EPUB eBook reader built with Tauri、Rust and Vue.js.
- Host: GitHub
- URL: https://github.com/xudong7/tauri-rbook
- Owner: xudong7
- License: mit
- Created: 2025-05-11T06:33:13.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-05T11:34:41.000Z (about 1 year ago)
- Last Synced: 2025-12-10T01:56:40.770Z (6 months ago)
- Topics: epub, epub-reader, epubjs, rust, rust-lang, tauri-app, tauri2, typescript, vue, vue3
- Language: Vue
- Homepage:
- Size: 25.8 MB
- Stars: 4
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# RBook - Modern EPUB eBook Reader
High Performance · Cross-Platform · Modern Design
Screenshots •
Features •
Tech Stack •
Core Functionality •
Getting Started
RBook is a modern EPUB eBook reader built with the Tauri framework, combining the frontend advantages of Vue3 with the high-performance backend of Rust to provide a smooth, efficient, and cross-platform reading experience.
## Screenshots
RBook Library Interface | RBook Reader Interface
## Features
- 📚 Local EPUB file management and rendering
- 🔖 Smart bookmark management with navigation
- 📋 Complete table of contents navigation
- 🔄 Sort by recently opened or filename
- 🎨 Modern UI with smooth transition animations
- 🚀 High-performance EPUB rendering engine
- 💻 Cross-platform support (Windows, macOS, Linux)
## Tech Stack
### Frontend
- **Vue 3**: Modern reactive framework
- **TypeScript**: Type-safe programming
- **Element Plus**: UI component library
- **EPubJS**: EPUB rendering engine
- **Vue Router**: Page routing management
- **Vite**: Fast build tool
### Backend
- **Rust**: High-performance systems programming language
- **Tauri**: Lightweight, secure desktop application framework
- **Serde**: Efficient serialization/deserialization library
- **Tokio**: Asynchronous runtime
## Core Functionality
### 1. Local EPUB File Processing
Direct EPUB file parsing through the Rust backend without relying on external APIs, ensuring loading speed and offline availability. Compared to the `br-beta` branch that uses external APIs to convert to HTML, this approach significantly improves performance and stability.
### 2. Smart Sorting System
-
Time-based Sorting: Tracks and records the last read time for each book
-
Alphabetical Sorting: Sorts by filename
-
One-click Toggle: Easily switch between sorting methods via toolbar button
Implementation Highlights:
- Rust backend stores timestamp information
- Tauri command API for frontend-backend communication
- Vue computed properties for dynamic sorting
### 3. Bookmarks and Table of Contents System
- **Bookmark Functionality**: Add, edit, delete, and navigate to bookmarks
- **TOC Navigation**: Support for multi-level table of contents
- **Smooth Animations**: Using Vue's `` component for smooth panel transitions
Technical Highlights:
- Vue Transition components for animation handling
- CSS transition effects to enhance user experience
- Smart CFI (Content Fragment Identifier) positioning for precise navigation
### 4. Advanced Navigation Strategies
To address navigation challenges in EPUB files, a multi-layered navigation strategy was implemented:
1. Direct navigation attempt
2. Filename-based matching
3. Path correction strategy
4. Anchor handling mechanism
5. Smart fallback approach
### 5. User Interface Optimization
- Modern design language
- Responsive layout that adapts to different screen sizes
- Smooth transition animations for enhanced user experience
- Custom scrollbar styling
## Performance Improvements
Compared to earlier versions, this project achieves the following performance improvements:
🚀 Parsing Speed
EPUB parsing speed increased by 300%+
🔌 Offline Availability
No external API dependency ensures offline usability
💾 Storage Optimization
Reduced local storage usage
⚡ Resource Efficiency
Optimized memory usage with lower resource consumption
## Getting Started
### Branch Information
- **Stable Version**: `br-gamma` branch - Recommended for production use
- **Development Version**: `dev` branch - Latest features and experimental changes
### Requirements
1. Node.js & pnpm
2. Rust environment
3. Tauri CLI
### Installation and Running
```bash
# Install dependencies
pnpm install
# Run in development mode
pnpm run tauri dev
# Build production version
pnpm run tauri build
```
## Feature Completion Status
### Frontend Features
- [x] Layout improvements
- [x] Header beautification
- [x] Added control buttons
- [x] Multi-file upload
- [x] Home library page
- [x] TOC page navigation function
- [x] Settings window
- [x] Home page sorting by read time/alphabet
- [x] Bookmark style beautification and animation
- [x] TOC panel animation effects
### Backend Features
- [x] Load EPUB files from default folder
- [x] Save EPUB files
- [x] Upload multiple files simultaneously
- [x] Position marking (bookmarks)
- [x] Save last read time
- [ ] Integrate online eBook search functionality from [Site 1](https://digilibraries.com/) and [Site 2](https://www.gutenberg.org/)
## Developers
[](https://github.com/xudong7/tauri-rbook/graphs/contributors)
This project was developed by sophomore students from the School of Software Engineering at Sun Yat-sen University, dedicated to providing an efficient, modern EPUB reading experience.
## License