How cnwxi/epub_tool_rust works
Epub Tool Rust is a desktop and Android EPUB batch-processing app. Users select or import EPUBs, choose a task and its options, run processing, then review results and export or open outputs. The frontend communicates with a Tauri Rust shell through task and file commands; the shell adapts requests to a shared, in-process Rust core. The README documents the core’s EPUB, font/OCR, image, cover, and Chinese-conversion capabilities. The shared core is an external dependency, and unsampled command/runtime details are represented only where the README or sampled code supports them.
Main entry points: useTaskBridge.ts Task bridge · tasks.rs Task commands · app.rs Tauri app · App.vue Task interface
Components 23
Frontend
- Task interface
frontend/src/App.vue - Task bridge
frontend/src/composables/useTaskBridge.ts - Persistent settings
frontend/src/composables/usePersistentState.ts
Tauri Shell
- IPC contract
proto/epub_tool/v1/engine.proto - Tauri app
src-tauri/src/app.rs - Task commands
src-tauri/src/commands/tasks.rs - File commands
src-tauri/src/commands/files.rs - State commands
src-tauri/src/commands/state.rs - Engine status
src-tauri/src/commands/engine.rs
Rust Runtime
- Protocol adapter
src-tauri/src/engine_adapter.rs - In-process engine
src-tauri/src/runtime/engine.rs - Platform file access
src-tauri/src/runtime/files.rs - Resource setup
src-tauri/src/runtime/resources.rs
EPUB Processing
- EPUB task core
- Font and OCR
- EPUB transformations
- Image and covers
- Chinese conversion
- EPUB outputs
Bundled Resources
- ONNX OCR models
src-tauri/bundle-resources/ocr-models - OpenCC data
src-tauri/bundle-resources/opencc - OpenCC
Other components
- App user
Connections 32
- App user → Task interface: configures tasks
- Task interface → Task bridge: requests operations
- Task interface → Persistent settings: persists settings
- Task bridge → Task commands: invokes tasks
- Task bridge → File commands: invokes file actions
- Task bridge → State commands: loads and saves
- Task bridge → Engine status: reads status
- Task bridge → IPC contract: uses contract
- Tauri app → Task commands: registers commands
- Tauri app → File commands: registers commands
- Tauri app → State commands: registers commands
- Tauri app → Engine status: registers commands
- Task commands → IPC contract: validates wire types
- Task commands → Protocol adapter: converts request and events
- Task commands → In-process engine: executes task
- Task commands → Task bridge: streams task events
- Engine status → In-process engine: reads status
- File commands → Platform file access: uses file access
- State commands → Tauri app: uses managed store
- In-process engine → EPUB task core: runs task
- EPUB task core → Font and OCR: performs font tasks
- EPUB task core → EPUB transformations: performs EPUB tasks
- EPUB task core → Image and covers: performs image tasks
- EPUB task core → Chinese conversion: converts text
- Resource setup → In-process engine: configures resources
- Resource setup → ONNX OCR models: locates models
- Resource setup → OpenCC data: locates dictionaries
- Font and OCR → ONNX OCR models: uses OCR models
- Chinese conversion → OpenCC: uses conversion
- OpenCC → OpenCC data: reads dictionaries
- EPUB task core → EPUB outputs: writes results
- Task interface → EPUB outputs: reviews results