{"id":28801412,"url":"https://github.com/xudong7/tauri-rbook","last_synced_at":"2026-03-07T02:02:04.282Z","repository":{"id":294668341,"uuid":"981457493","full_name":"xudong7/tauri-rbook","owner":"xudong7","description":"A cross-platform desktop EPUB eBook reader built with Tauri、Rust and Vue.js.","archived":false,"fork":false,"pushed_at":"2025-06-05T11:34:41.000Z","size":27001,"stargazers_count":4,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-12-10T01:56:40.770Z","etag":null,"topics":["epub","epub-reader","epubjs","rust","rust-lang","tauri-app","tauri2","typescript","vue","vue3"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xudong7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-11T06:33:13.000Z","updated_at":"2025-12-10T01:46:34.000Z","dependencies_parsed_at":"2025-05-21T14:48:52.632Z","dependency_job_id":null,"html_url":"https://github.com/xudong7/tauri-rbook","commit_stats":null,"previous_names":["xudong7/tauri-rbook"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/xudong7/tauri-rbook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xudong7%2Ftauri-rbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xudong7%2Ftauri-rbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xudong7%2Ftauri-rbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xudong7%2Ftauri-rbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xudong7","download_url":"https://codeload.github.com/xudong7/tauri-rbook/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xudong7%2Ftauri-rbook/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30205893,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"online","status_checked_at":"2026-03-07T02:00:06.765Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["epub","epub-reader","epubjs","rust","rust-lang","tauri-app","tauri2","typescript","vue","vue3"],"created_at":"2025-06-18T07:09:32.198Z","updated_at":"2026-03-07T02:02:04.270Z","avatar_url":"https://github.com/xudong7.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\r\n  \u003cimg src=\"screenshots/icon.png\" alt=\"RBook Logo\" width=\"240\" height=\"240\"\u003e\r\n  \r\n# RBook - Modern EPUB eBook Reader\r\n\r\n  \u003cp\u003e\r\n    \u003cstrong\u003eHigh Performance · Cross-Platform · Modern Design\u003c/strong\u003e\r\n  \u003c/p\u003e\r\n  \r\n  \u003cp\u003e\r\n    \u003ca href=\"#screenshots\"\u003eScreenshots\u003c/a\u003e •\r\n    \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\r\n    \u003ca href=\"#tech-stack\"\u003eTech Stack\u003c/a\u003e •\r\n    \u003ca href=\"#core-functionality\"\u003eCore Functionality\u003c/a\u003e •\r\n    \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\r\n  \u003c/p\u003e\r\n  \r\n  \u003cp\u003e\r\n    \u003ca href=\"README_zh.md\"\u003e中文\u003c/a\u003e |\r\n    \u003ca href=\"README.md\"\u003eEnglish\u003c/a\u003e\r\n  \u003c/p\u003e\r\n\u003c/div\u003e\r\n\r\nRBook 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.\r\n\r\n## Screenshots\r\n\r\n\u003cdiv align=\"center\"\u003e\r\n  \u003cdiv style=\"justify-content: space-between;\"\u003e\r\n    \u003cimg src=\"/screenshots/image-1.png\" alt=\"RBook Library Interface\" width=\"560px\" /\u003e\r\n    \u003cimg src=\"/screenshots/image-2.png\" alt=\"RBook Reader Interface\" width=\"560px\" /\u003e\r\n  \u003c/div\u003e\r\n  \u003cp style=\"color: #666; font-size: 12px;\"\u003e\r\n    RBook Library Interface | RBook Reader Interface\r\n  \u003c/p\u003e\r\n\u003c/div\u003e\r\n\r\n## Features\r\n\r\n- 📚 Local EPUB file management and rendering\r\n- 🔖 Smart bookmark management with navigation\r\n- 📋 Complete table of contents navigation\r\n- 🔄 Sort by recently opened or filename\r\n- 🎨 Modern UI with smooth transition animations\r\n- 🚀 High-performance EPUB rendering engine\r\n- 💻 Cross-platform support (Windows, macOS, Linux)\r\n\r\n## Tech Stack\r\n\r\n### Frontend\r\n\r\n- **Vue 3**: Modern reactive framework\r\n- **TypeScript**: Type-safe programming\r\n- **Element Plus**: UI component library\r\n- **EPubJS**: EPUB rendering engine\r\n- **Vue Router**: Page routing management\r\n- **Vite**: Fast build tool\r\n\r\n### Backend\r\n\r\n- **Rust**: High-performance systems programming language\r\n- **Tauri**: Lightweight, secure desktop application framework\r\n- **Serde**: Efficient serialization/deserialization library\r\n- **Tokio**: Asynchronous runtime\r\n\r\n## Core Functionality\r\n\r\n### 1. Local EPUB File Processing\r\n\r\nDirect 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.\r\n\r\n### 2. Smart Sorting System\r\n\r\n\u003cdiv\u003e\r\n  \u003cimg align=\"right\" src=\"screenshots/sort.gif\" alt=\"Sorting Demo\" width=\"560\" style=\"margin-left: 20px; border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);\"\u003e\r\n  \r\n  \u003cul\u003e\r\n    \u003cli\u003e\u003cb\u003eTime-based Sorting\u003c/b\u003e: Tracks and records the last read time for each book\u003c/li\u003e\r\n    \u003cli\u003e\u003cb\u003eAlphabetical Sorting\u003c/b\u003e: Sorts by filename\u003c/li\u003e\r\n    \u003cli\u003e\u003cb\u003eOne-click Toggle\u003c/b\u003e: Easily switch between sorting methods via toolbar button\u003c/li\u003e\r\n  \u003c/ul\u003e\r\n  \r\n  \u003cp\u003e\u003cb\u003eImplementation Highlights:\u003c/b\u003e\u003c/p\u003e\r\n  \u003cul\u003e\r\n    \u003cli\u003eRust backend stores timestamp information\u003c/li\u003e\r\n    \u003cli\u003eTauri command API for frontend-backend communication\u003c/li\u003e\r\n    \u003cli\u003eVue computed properties for dynamic sorting\u003c/li\u003e\r\n  \u003c/ul\u003e\r\n\u003c/div\u003e\r\n\r\n### 3. Bookmarks and Table of Contents System\r\n\r\n- **Bookmark Functionality**: Add, edit, delete, and navigate to bookmarks\r\n- **TOC Navigation**: Support for multi-level table of contents\r\n- **Smooth Animations**: Using Vue's `\u003cTransition\u003e` component for smooth panel transitions\r\n\r\nTechnical Highlights:\r\n\r\n- Vue Transition components for animation handling\r\n- CSS transition effects to enhance user experience\r\n- Smart CFI (Content Fragment Identifier) positioning for precise navigation\r\n\r\n### 4. Advanced Navigation Strategies\r\n\r\nTo address navigation challenges in EPUB files, a multi-layered navigation strategy was implemented:\r\n\r\n1. Direct navigation attempt\r\n2. Filename-based matching\r\n3. Path correction strategy\r\n4. Anchor handling mechanism\r\n5. Smart fallback approach\r\n\r\n### 5. User Interface Optimization\r\n\r\n- Modern design language\r\n- Responsive layout that adapts to different screen sizes\r\n- Smooth transition animations for enhanced user experience\r\n- Custom scrollbar styling\r\n\r\n## Performance Improvements\r\n\r\nCompared to earlier versions, this project achieves the following performance improvements:\r\n\r\n\u003ctable\u003e\r\n  \u003ctr\u003e\r\n    \u003ctd\u003e\u003cb\u003e🚀 Parsing Speed\u003c/b\u003e\u003c/td\u003e\r\n    \u003ctd\u003eEPUB parsing speed increased by 300%+\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr\u003e\r\n    \u003ctd\u003e\u003cb\u003e🔌 Offline Availability\u003c/b\u003e\u003c/td\u003e\r\n    \u003ctd\u003eNo external API dependency ensures offline usability\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr\u003e\r\n    \u003ctd\u003e\u003cb\u003e💾 Storage Optimization\u003c/b\u003e\u003c/td\u003e\r\n    \u003ctd\u003eReduced local storage usage\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n  \u003ctr\u003e\r\n    \u003ctd\u003e\u003cb\u003e⚡ Resource Efficiency\u003c/b\u003e\u003c/td\u003e\r\n    \u003ctd\u003eOptimized memory usage with lower resource consumption\u003c/td\u003e\r\n  \u003c/tr\u003e\r\n\u003c/table\u003e\r\n\r\n## Getting Started\r\n\r\n### Branch Information\r\n\r\n- **Stable Version**: `br-gamma` branch - Recommended for production use\r\n- **Development Version**: `dev` branch - Latest features and experimental changes\r\n\r\n### Requirements\r\n\r\n1. Node.js \u0026 pnpm\r\n2. Rust environment\r\n3. Tauri CLI\r\n\r\n### Installation and Running\r\n\r\n```bash\r\n# Install dependencies\r\npnpm install\r\n\r\n# Run in development mode\r\npnpm run tauri dev\r\n\r\n# Build production version\r\npnpm run tauri build\r\n```\r\n\r\n## Feature Completion Status\r\n\r\n### Frontend Features\r\n\r\n- [x] Layout improvements\r\n- [x] Header beautification\r\n- [x] Added control buttons\r\n- [x] Multi-file upload\r\n- [x] Home library page\r\n- [x] TOC page navigation function\r\n- [x] Settings window\r\n- [x] Home page sorting by read time/alphabet\r\n- [x] Bookmark style beautification and animation\r\n- [x] TOC panel animation effects\r\n\r\n### Backend Features\r\n\r\n- [x] Load EPUB files from default folder\r\n- [x] Save EPUB files\r\n- [x] Upload multiple files simultaneously\r\n- [x] Position marking (bookmarks)\r\n- [x] Save last read time\r\n- [ ] Integrate online eBook search functionality from [Site 1](https://digilibraries.com/) and [Site 2](https://www.gutenberg.org/)\r\n\r\n## Developers\r\n\r\n\u003cdiv align=\"center\"\u003e\r\n  \r\n[![Contributors](http://contrib.nn.ci/api?repo=xudong7/tauri-rbook)](https://github.com/xudong7/tauri-rbook/graphs/contributors)\r\n  \r\n  \u003cp\u003eThis 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.\u003c/p\u003e\r\n\u003c/div\u003e\r\n\r\n## License\r\n\r\n\u003cdiv align=\"center\"\u003e\r\n  \u003ca href=\"LICENSE\"\u003e\r\n    \u003cimg src=\"https://img.shields.io/badge/License-MIT-blue.svg\" alt=\"License: MIT\" style=\"max-width: 100%;\"\u003e\r\n  \u003c/a\u003e\r\n  \u003cp\u003eCopyright © 2025 RBook\u003c/p\u003e\r\n\u003c/div\u003e\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxudong7%2Ftauri-rbook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxudong7%2Ftauri-rbook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxudong7%2Ftauri-rbook/lists"}