Skip to content

Reader Architecture

The frontend uses capabilities in readers/core.js and a shared shell for loading, errors, retry, dock, progress, and cleanup. Engines are loaded on demand.

FormatCurrent transportRendering
PDForiginal content with RangePDF.js + Vite worker
EPUBbinary contentJSZip parser and normalized HTML content
MOBIcontent/pages/resourcesfrontend parser and backend support
CBZindex and pageson-demand images
CBRindex and pagesUnRAR/7z extraction and on-demand images

The reader keeps only the current and nearby pages where possible, revokes Object URLs, and runs cleanup on close. Progress is format-agnostic: position/page, total, percentage, completion, and timestamp.

Details: readers.