一款用 Rust 编写的跨平台 EPUB 阅读器,支持 桌面端(Windows / Linux / macOS) 和 Android。
- 书库管理 — 自动记录已打开的书籍、阅读进度与章节位置
- 阅读模式 — 支持滚动模式与翻页模式,翻页动画可选(滑动 / 覆盖 / 仿真 / 无)
- 目录导航 — 侧边栏目录(TOC),可随时展开/折叠
- 外观自定义 — 亮色 / 暗色主题,自定义背景色、字体颜色、背景图片及透明度
- 字体设置 — 自动发现系统字体,可按需切换字体与字号
- 多语言 — 内置中文(简体)与 English 界面
- 局域网共享 — 通过点对点协议在设备间传输书籍(PIN 配对)
- Android 支持 — 通过 JNI 桥接核心逻辑,Jetpack Compose 构建 Android UI
RustEpubReader/
├── core/ # 核心库:EPUB 解析、书库、i18n、局域网共享协议
├── desktop/ # 桌面端(egui/eframe)
├── android-bridge/ # Android JNI 桥接层(cdylib)
└── android/ # Android 工程(Kotlin + Jetpack Compose)
cargo build --release -p rust_epub_readerWindows 下会自动嵌入应用图标(需要 rc.exe)。
- 配置 Android NDK,并在
android/local.properties中设置sdk.dir。 - 使用
cargo-ndk编译android-bridge:cargo ndk -t arm64-v8a build --release -p android-bridge
- 将产物
.so文件放入android/app/src/main/jniLibs/对应 ABI 目录。 - 在
android/目录下运行:./gradlew assembleRelease
| 用途 | 库 |
|---|---|
| EPUB 解析 | rbook |
| HTML 提取 | scraper |
| 桌面 UI | eframe / egui |
| 文件对话框 | rfd |
| 图像处理 | image |
| Android JNI | jni |
| 序列化 | serde / serde_json |
本项目采用 Apache License 2.0。