An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          


RBook Logo

# RBook - Modern EPUB eBook Reader


High Performance · Cross-Platform · Modern Design




Screenshots
Features
Tech Stack
Core Functionality
Getting Started




中文 |
English


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


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


Sorting Demo



  • 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



[![Contributors](http://contrib.nn.ci/api?repo=xudong7/tauri-rbook)](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



License: MIT

Copyright © 2025 RBook