Apple Books-inspired open-source reader for iOS.
Featured in iOS Dev Weekly #751 — From WebView to CoreText: Building a Native EPUB Reader for iOS.
Yuedu is an open-source reading application focused on a high-quality local and open reading experience. One app for EPUB3, comics, audiobooks, RSS, and open catalogs — rendered natively with CoreText, no WebView.
| Formats | EPUB3 · TXT · CBZ Comics · Audiobook · PDF (WIP) |
| Content | Local Library · WebDAV · OPDS · RSS · Content Sources |
| Reading | Vertical Writing · Themes · Annotation · Bookmarks |
| More | Reading Statistics · iCloud Sync |
Most readers wrap content in a WebView. Yuedu renders every page with CoreText, which gives precise pagination, true CJK vertical writing, frame-accurate text-to-speech sync, and native text selection — at native performance. The full story is in From WebView to CoreText.
UI (SwiftUI)
↓
Reader (CoreText)
↓
Parser (EPUB / TXT / CBZ / RSS / Audio)
↓
Storage (Local-first)
↓
Sync (WebDAV / iCloud / OPDS)
Requirements: Xcode 16+ · iOS 18.0+ · Swift 6.0
git clone https://github.com/CHANG-JUI-LIN/Yuedu-reader.git
cd Yuedu-reader
open Yuedu-Reader.xcodeprojThen select a simulator (or your device) and run. Self-built versions need their own signing configuration and bundle identifier. Publicly redistributed forks must use distinct app names, icons, and branding and must not imply official endorsement.
The source code is open source. The App Store version is the official build maintained, signed, reviewed, distributed, and supported by the project owner. Its purchase price supports ongoing development and release maintenance.
- Battery SVG templates: English · 简体中文 · 繁體中文 — template format, dynamic markers, supported SVG subset, and import troubleshooting.
- CoreText documentation — reader architecture, rendering pipeline, interaction, and vertical writing.
- EPUB compatibility checklist — implementation and regression checklist.
- Project architecture — modules, data flow, and technical boundaries.
Contributions are welcome — see CONTRIBUTING.md for conventions and the PR process.
Source code is licensed under the Mozilla Public License 2.0. The Yuedu name, app icon, logo, screenshots, and other brand assets are not licensed under the MPL; see TRADEMARKS.md. Versions released before the license transition remain available under the license that applied when they were published; see LICENSING.md.