Skip to content

xudong7/tauri-rbook

Repository files navigation

RBook Logo

RBook - Modern EPUB eBook Reader

High Performance · Cross-Platform · Modern Design

ScreenshotsFeaturesTech StackCore FunctionalityGetting 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 <Transition> 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

# Install dependencies
pnpm install

# Run in development mode
pnpm run tauri dev

# Build production version
pnpm run tauri build

Feature Completion Status

Frontend Features

  • Layout improvements
  • Header beautification
  • Added control buttons
  • Multi-file upload
  • Home library page
  • TOC page navigation function
  • Settings window
  • Home page sorting by read time/alphabet
  • Bookmark style beautification and animation
  • TOC panel animation effects

Backend Features

  • Load EPUB files from default folder
  • Save EPUB files
  • Upload multiple files simultaneously
  • Position marking (bookmarks)
  • Save last read time
  • Integrate online eBook search functionality from Site 1 and Site 2

Developers

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

About

A cross-platform desktop EPUB eBook reader built with Tauri、Rust and Vue.js.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors