Latest commit

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
Read∞ icon

Read∞

A private, offline-first ebook reader for Android and desktop platforms.

Open books and dictionaries directly from folders you choose. Your source files stay where you put them.

Latest release · Issues · Pull requests

Overview

Read∞ is a privacy-first, offline ebook reader for Android and desktop. It is designed for readers who want their books, dictionaries, annotations, and reading progress to remain on their own devices. The Android package is com.infinity.readz, and the current public release is v1.0.0.

The native application opens supported files directly from user-selected device folders. It does not require an account, cloud library, online synchronization, telemetry, or a server connection for its core reading features. Local metadata, covers, notes, annotations, and reading progress remain on the device; original book and dictionary files stay in their selected folders.

Features

FeatureWhat Read∞ provides
Multi-format readingEPUB, PDF, MOBI, KF8/AZW3, FB2, CBZ, TXT, and Markdown reading support
Direct device-folder readingOpens books from their original device locations without importing or duplicating book bytes into app-managed storage
Multiple book foldersChoose multiple folders, recursively include subfolders, add or remove locations later, and scan only when requested
Controlled book discoverySelect supported formats and a minimum file size; an explicit full-device scan remains available as an optional fallback
Local dictionariesRecursively discover supported StarDict, MDict, dictd, Slob, and Babylon dictionaries from a selected folder and its subfolders without importing the dictionary files
Search and navigationSearch books and navigate chapters, pages, footnotes, references, and table-of-contents entries
Notes and annotationsHighlights, bookmarks, notes, selection actions, reading progress, and local metadata
Themes and layoutAMOLED black, dark, light, fonts, spacing, margins, page layouts, and scrolling layouts; AMOLED is the Android startup default
Offline text-to-speechDevice-local text-to-speech with local playback state and caching where supported by the platform
Local sharingNative/system sharing of local book content without requiring an online account
Read-along mediaCompatible local EPUB 3 media overlays and DRM-free narration files
AccessibilityKeyboard navigation and support for platform screen readers
Android navigationBack first dismisses or navigates the active folder, settings, reader, or dialog level; the library root requires a second press to exit
Private offline operationNo login, cloud library, remote synchronization, telemetry, or backend gate for core local reading
Release distributionSigned Android APKs for arm64-v8a, armeabi-v7a, x86, and x86_64, published through GitHub Releases

Android download

Download the signed APK matching the device architecture from the public Read∞ v1.0.0 release:

ABIAPK
arm64-v8aReadInfinity_1.0.0_arm64-v8a.apk
armeabi-v7aReadInfinity_1.0.0_armeabi-v7a.apk
x86ReadInfinity_1.0.0_x86.apk
x86_64ReadInfinity_1.0.0_x86_64.apk

GitHub displays each asset’s digest in the release metadata. This release intentionally does not publish separate .apk.sha256 files.

How direct folder reading works

On Android, select a books folder when prompted or from the library controls. Read∞ recursively discovers supported book files and records their original paths. A scan runs only when requested; returning to the application does not repeatedly scan the device. You can add or remove selected folders and choose supported formats or minimum file sizes.

Dictionary folders work in the same way. Choose a dictionary folder, including any parent folder containing subfolders, and Read∞ registers supported dictionaries from their original locations. The application stores only the local dictionary index and folder access information. User-owned book and dictionary bytes are not copied into an app import directory.

Privacy and offline behavior

Read∞ does not require login or cloud synchronization for local reading. Online account, transfer, catalog, feed, and remote-integration surfaces are not part of the offline library workflow. Core reading, annotations, dictionaries, themes, search, backups, local sharing, and local text-to-speech remain available without a backend service.

For implementation details, see OFFLINE_BUILD.md. For attribution and third-party notices, see NOTICE.md.

Project status and upstream attribution

Read∞ is an independent, community-maintained fork of the Readest open-source project, distributed under the GNU Affero General Public License version 3 or later. The upstream project and its contributors retain the copyright and attribution applicable to their original work. The upstream name is referenced here only to identify the source project; Read∞ is not the upstream project’s official distribution.

This fork adds the offline Android product behavior, direct device-folder reading, local dictionary discovery, Read∞ branding, the com.infinity.readz Android identity, AMOLED startup defaults, Android navigation handling, and signed public Android release automation. See NOTICE.md for the attribution summary and LICENSE for the complete license text.

Building from source

Install the workspace dependencies and run the application-specific checks:

pnpm install --frozen-lockfile
cd apps/readest-app
pnpm exec tsc --noEmit -p tsconfig.json

Android builds require the Android SDK, Java 17, Rust, the Android Rust targets, and the Tauri CLI. The signed public release workflow is .github/workflows/android-stable-release.yml.

Credits

Read∞ is maintained by ZHINFINITY, with product credits shown in the application About section for InfinityZ-Lab. The project depends on and incorporates work from the open-source projects below.

Project or resourceContributionLicense or reference
Readest and its contributorsUpstream application code and reader foundation from which this independent fork is derivedAGPL-3.0-or-later; retain applicable upstream notices
TauriNative desktop and Android application shellMIT
Next.jsApplication framework and build toolingMIT
ReactUser-interface frameworkMIT
Foliate JavaScript librariesBook parsing and reading componentsMIT
PDF.jsPDF renderingApache License 2.0
zip.jsArchive accessBSD-3-Clause
fflateCompression utilitiesMIT
daisyUIInterface componentsMIT
MarkedMarkdown renderingMIT
React IconsInterface icon setOpen-source licenses
Google Fonts and bundled font projectsReading typography and multilingual supportRespective licenses

Please retain the repository license, copyright notices, dependency licenses, attribution files, and applicable source-offer obligations when redistributing source or binaries. Third-party projects remain subject to their respective licenses.

Contributing

Bug reports, feature requests, documentation improvements, translations, accessibility improvements, and pull requests are welcome. Please read CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md before participating.

License

Read∞ is distributed under the GNU Affero General Public License version 3 or later. See LICENSE for the complete license text and NOTICE.md for the attribution summary.

Read privately. Read directly. Read∞.

About

Read∞ — a private, offline ebook reader for Android and desktop that opens books and dictionaries directly from device folders.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
Read∞ icon

Read∞

A private, offline-first ebook reader for Android and desktop platforms.

Open books and dictionaries directly from folders you choose. Your source files stay where you put them.

Latest release · Issues · Pull requests

Overview

Read∞ is a privacy-first, offline ebook reader for Android and desktop. It is designed for readers who want their books, dictionaries, annotations, and reading progress to remain on their own devices. The Android package is com.infinity.readz, and the current public release is v1.0.0.

The native application opens supported files directly from user-selected device folders. It does not require an account, cloud library, online synchronization, telemetry, or a server connection for its core reading features. Local metadata, covers, notes, annotations, and reading progress remain on the device; original book and dictionary files stay in their selected folders.

Features

FeatureWhat Read∞ provides
Multi-format readingEPUB, PDF, MOBI, KF8/AZW3, FB2, CBZ, TXT, and Markdown reading support
Direct device-folder readingOpens books from their original device locations without importing or duplicating book bytes into app-managed storage
Multiple book foldersChoose multiple folders, recursively include subfolders, add or remove locations later, and scan only when requested
Controlled book discoverySelect supported formats and a minimum file size; an explicit full-device scan remains available as an optional fallback
Local dictionariesRecursively discover supported StarDict, MDict, dictd, Slob, and Babylon dictionaries from a selected folder and its subfolders without importing the dictionary files
Search and navigationSearch books and navigate chapters, pages, footnotes, references, and table-of-contents entries
Notes and annotationsHighlights, bookmarks, notes, selection actions, reading progress, and local metadata
Themes and layoutAMOLED black, dark, light, fonts, spacing, margins, page layouts, and scrolling layouts; AMOLED is the Android startup default
Offline text-to-speechDevice-local text-to-speech with local playback state and caching where supported by the platform
Local sharingNative/system sharing of local book content without requiring an online account
Read-along mediaCompatible local EPUB 3 media overlays and DRM-free narration files
AccessibilityKeyboard navigation and support for platform screen readers
Android navigationBack first dismisses or navigates the active folder, settings, reader, or dialog level; the library root requires a second press to exit
Private offline operationNo login, cloud library, remote synchronization, telemetry, or backend gate for core local reading
Release distributionSigned Android APKs for arm64-v8a, armeabi-v7a, x86, and x86_64, published through GitHub Releases

Android download

Download the signed APK matching the device architecture from the public Read∞ v1.0.0 release:

ABIAPK
arm64-v8aReadInfinity_1.0.0_arm64-v8a.apk
armeabi-v7aReadInfinity_1.0.0_armeabi-v7a.apk
x86ReadInfinity_1.0.0_x86.apk
x86_64ReadInfinity_1.0.0_x86_64.apk

GitHub displays each asset’s digest in the release metadata. This release intentionally does not publish separate .apk.sha256 files.

How direct folder reading works

On Android, select a books folder when prompted or from the library controls. Read∞ recursively discovers supported book files and records their original paths. A scan runs only when requested; returning to the application does not repeatedly scan the device. You can add or remove selected folders and choose supported formats or minimum file sizes.

Dictionary folders work in the same way. Choose a dictionary folder, including any parent folder containing subfolders, and Read∞ registers supported dictionaries from their original locations. The application stores only the local dictionary index and folder access information. User-owned book and dictionary bytes are not copied into an app import directory.

Privacy and offline behavior

Read∞ does not require login or cloud synchronization for local reading. Online account, transfer, catalog, feed, and remote-integration surfaces are not part of the offline library workflow. Core reading, annotations, dictionaries, themes, search, backups, local sharing, and local text-to-speech remain available without a backend service.

For implementation details, see OFFLINE_BUILD.md. For attribution and third-party notices, see NOTICE.md.

Project status and upstream attribution

Read∞ is an independent, community-maintained fork of the Readest open-source project, distributed under the GNU Affero General Public License version 3 or later. The upstream project and its contributors retain the copyright and attribution applicable to their original work. The upstream name is referenced here only to identify the source project; Read∞ is not the upstream project’s official distribution.

This fork adds the offline Android product behavior, direct device-folder reading, local dictionary discovery, Read∞ branding, the com.infinity.readz Android identity, AMOLED startup defaults, Android navigation handling, and signed public Android release automation. See NOTICE.md for the attribution summary and LICENSE for the complete license text.

Building from source

Install the workspace dependencies and run the application-specific checks:

pnpm install --frozen-lockfile
cd apps/readest-app
pnpm exec tsc --noEmit -p tsconfig.json

Android builds require the Android SDK, Java 17, Rust, the Android Rust targets, and the Tauri CLI. The signed public release workflow is .github/workflows/android-stable-release.yml.

Credits

Read∞ is maintained by ZHINFINITY, with product credits shown in the application About section for InfinityZ-Lab. The project depends on and incorporates work from the open-source projects below.

Project or resourceContributionLicense or reference
Readest and its contributorsUpstream application code and reader foundation from which this independent fork is derivedAGPL-3.0-or-later; retain applicable upstream notices
TauriNative desktop and Android application shellMIT
Next.jsApplication framework and build toolingMIT
ReactUser-interface frameworkMIT
Foliate JavaScript librariesBook parsing and reading componentsMIT
PDF.jsPDF renderingApache License 2.0
zip.jsArchive accessBSD-3-Clause
fflateCompression utilitiesMIT
daisyUIInterface componentsMIT
MarkedMarkdown renderingMIT
React IconsInterface icon setOpen-source licenses
Google Fonts and bundled font projectsReading typography and multilingual supportRespective licenses

Please retain the repository license, copyright notices, dependency licenses, attribution files, and applicable source-offer obligations when redistributing source or binaries. Third-party projects remain subject to their respective licenses.

Contributing

Bug reports, feature requests, documentation improvements, translations, accessibility improvements, and pull requests are welcome. Please read CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md before participating.

License

Read∞ is distributed under the GNU Affero General Public License version 3 or later. See LICENSE for the complete license text and NOTICE.md for the attribution summary.

Read privately. Read directly. Read∞.

About

Read∞ — a private, offline ebook reader for Android and desktop that opens books and dictionaries directly from device folders.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
Read∞ icon

Read∞

A private, offline-first ebook reader for Android and desktop platforms.

Open books and dictionaries directly from folders you choose. Your source files stay where you put them.

Latest release · Issues · Pull requests

Overview

Read∞ is a privacy-first, offline ebook reader for Android and desktop. It is designed for readers who want their books, dictionaries, annotations, and reading progress to remain on their own devices. The Android package is com.infinity.readz, and the current public release is v1.0.0.

The native application opens supported files directly from user-selected device folders. It does not require an account, cloud library, online synchronization, telemetry, or a server connection for its core reading features. Local metadata, covers, notes, annotations, and reading progress remain on the device; original book and dictionary files stay in their selected folders.

Features

FeatureWhat Read∞ provides
Multi-format readingEPUB, PDF, MOBI, KF8/AZW3, FB2, CBZ, TXT, and Markdown reading support
Direct device-folder readingOpens books from their original device locations without importing or duplicating book bytes into app-managed storage
Multiple book foldersChoose multiple folders, recursively include subfolders, add or remove locations later, and scan only when requested
Controlled book discoverySelect supported formats and a minimum file size; an explicit full-device scan remains available as an optional fallback
Local dictionariesRecursively discover supported StarDict, MDict, dictd, Slob, and Babylon dictionaries from a selected folder and its subfolders without importing the dictionary files
Search and navigationSearch books and navigate chapters, pages, footnotes, references, and table-of-contents entries
Notes and annotationsHighlights, bookmarks, notes, selection actions, reading progress, and local metadata
Themes and layoutAMOLED black, dark, light, fonts, spacing, margins, page layouts, and scrolling layouts; AMOLED is the Android startup default
Offline text-to-speechDevice-local text-to-speech with local playback state and caching where supported by the platform
Local sharingNative/system sharing of local book content without requiring an online account
Read-along mediaCompatible local EPUB 3 media overlays and DRM-free narration files
AccessibilityKeyboard navigation and support for platform screen readers
Android navigationBack first dismisses or navigates the active folder, settings, reader, or dialog level; the library root requires a second press to exit
Private offline operationNo login, cloud library, remote synchronization, telemetry, or backend gate for core local reading
Release distributionSigned Android APKs for arm64-v8a, armeabi-v7a, x86, and x86_64, published through GitHub Releases

Android download

Download the signed APK matching the device architecture from the public Read∞ v1.0.0 release:

ABIAPK
arm64-v8aReadInfinity_1.0.0_arm64-v8a.apk
armeabi-v7aReadInfinity_1.0.0_armeabi-v7a.apk
x86ReadInfinity_1.0.0_x86.apk
x86_64ReadInfinity_1.0.0_x86_64.apk

GitHub displays each asset’s digest in the release metadata. This release intentionally does not publish separate .apk.sha256 files.

How direct folder reading works

On Android, select a books folder when prompted or from the library controls. Read∞ recursively discovers supported book files and records their original paths. A scan runs only when requested; returning to the application does not repeatedly scan the device. You can add or remove selected folders and choose supported formats or minimum file sizes.

Dictionary folders work in the same way. Choose a dictionary folder, including any parent folder containing subfolders, and Read∞ registers supported dictionaries from their original locations. The application stores only the local dictionary index and folder access information. User-owned book and dictionary bytes are not copied into an app import directory.

Privacy and offline behavior

Read∞ does not require login or cloud synchronization for local reading. Online account, transfer, catalog, feed, and remote-integration surfaces are not part of the offline library workflow. Core reading, annotations, dictionaries, themes, search, backups, local sharing, and local text-to-speech remain available without a backend service.

For implementation details, see OFFLINE_BUILD.md. For attribution and third-party notices, see NOTICE.md.

Project status and upstream attribution

Read∞ is an independent, community-maintained fork of the Readest open-source project, distributed under the GNU Affero General Public License version 3 or later. The upstream project and its contributors retain the copyright and attribution applicable to their original work. The upstream name is referenced here only to identify the source project; Read∞ is not the upstream project’s official distribution.

This fork adds the offline Android product behavior, direct device-folder reading, local dictionary discovery, Read∞ branding, the com.infinity.readz Android identity, AMOLED startup defaults, Android navigation handling, and signed public Android release automation. See NOTICE.md for the attribution summary and LICENSE for the complete license text.

Building from source

Install the workspace dependencies and run the application-specific checks:

pnpm install --frozen-lockfile
cd apps/readest-app
pnpm exec tsc --noEmit -p tsconfig.json

Android builds require the Android SDK, Java 17, Rust, the Android Rust targets, and the Tauri CLI. The signed public release workflow is .github/workflows/android-stable-release.yml.

Credits

Read∞ is maintained by ZHINFINITY, with product credits shown in the application About section for InfinityZ-Lab. The project depends on and incorporates work from the open-source projects below.

Project or resourceContributionLicense or reference
Readest and its contributorsUpstream application code and reader foundation from which this independent fork is derivedAGPL-3.0-or-later; retain applicable upstream notices
TauriNative desktop and Android application shellMIT
Next.jsApplication framework and build toolingMIT
ReactUser-interface frameworkMIT
Foliate JavaScript librariesBook parsing and reading componentsMIT
PDF.jsPDF renderingApache License 2.0
zip.jsArchive accessBSD-3-Clause
fflateCompression utilitiesMIT
daisyUIInterface componentsMIT
MarkedMarkdown renderingMIT
React IconsInterface icon setOpen-source licenses
Google Fonts and bundled font projectsReading typography and multilingual supportRespective licenses

Please retain the repository license, copyright notices, dependency licenses, attribution files, and applicable source-offer obligations when redistributing source or binaries. Third-party projects remain subject to their respective licenses.

Contributing

Bug reports, feature requests, documentation improvements, translations, accessibility improvements, and pull requests are welcome. Please read CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md before participating.

License

Read∞ is distributed under the GNU Affero General Public License version 3 or later. See LICENSE for the complete license text and NOTICE.md for the attribution summary.

Read privately. Read directly. Read∞.

About

Read∞ — a private, offline ebook reader for Android and desktop that opens books and dictionaries directly from device folders.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
Read∞ icon

Read∞

A private, offline-first ebook reader for Android and desktop platforms.

Open books and dictionaries directly from folders you choose. Your source files stay where you put them.

Latest release · Issues · Pull requests

Overview

Read∞ is a privacy-first, offline ebook reader for Android and desktop. It is designed for readers who want their books, dictionaries, annotations, and reading progress to remain on their own devices. The Android package is com.infinity.readz, and the current public release is v1.0.0.

The native application opens supported files directly from user-selected device folders. It does not require an account, cloud library, online synchronization, telemetry, or a server connection for its core reading features. Local metadata, covers, notes, annotations, and reading progress remain on the device; original book and dictionary files stay in their selected folders.

Features

FeatureWhat Read∞ provides
Multi-format readingEPUB, PDF, MOBI, KF8/AZW3, FB2, CBZ, TXT, and Markdown reading support
Direct device-folder readingOpens books from their original device locations without importing or duplicating book bytes into app-managed storage
Multiple book foldersChoose multiple folders, recursively include subfolders, add or remove locations later, and scan only when requested
Controlled book discoverySelect supported formats and a minimum file size; an explicit full-device scan remains available as an optional fallback
Local dictionariesRecursively discover supported StarDict, MDict, dictd, Slob, and Babylon dictionaries from a selected folder and its subfolders without importing the dictionary files
Search and navigationSearch books and navigate chapters, pages, footnotes, references, and table-of-contents entries
Notes and annotationsHighlights, bookmarks, notes, selection actions, reading progress, and local metadata
Themes and layoutAMOLED black, dark, light, fonts, spacing, margins, page layouts, and scrolling layouts; AMOLED is the Android startup default
Offline text-to-speechDevice-local text-to-speech with local playback state and caching where supported by the platform
Local sharingNative/system sharing of local book content without requiring an online account
Read-along mediaCompatible local EPUB 3 media overlays and DRM-free narration files
AccessibilityKeyboard navigation and support for platform screen readers
Android navigationBack first dismisses or navigates the active folder, settings, reader, or dialog level; the library root requires a second press to exit
Private offline operationNo login, cloud library, remote synchronization, telemetry, or backend gate for core local reading
Release distributionSigned Android APKs for arm64-v8a, armeabi-v7a, x86, and x86_64, published through GitHub Releases

Android download

Download the signed APK matching the device architecture from the public Read∞ v1.0.0 release:

ABIAPK
arm64-v8aReadInfinity_1.0.0_arm64-v8a.apk
armeabi-v7aReadInfinity_1.0.0_armeabi-v7a.apk
x86ReadInfinity_1.0.0_x86.apk
x86_64ReadInfinity_1.0.0_x86_64.apk

GitHub displays each asset’s digest in the release metadata. This release intentionally does not publish separate .apk.sha256 files.

How direct folder reading works

On Android, select a books folder when prompted or from the library controls. Read∞ recursively discovers supported book files and records their original paths. A scan runs only when requested; returning to the application does not repeatedly scan the device. You can add or remove selected folders and choose supported formats or minimum file sizes.

Dictionary folders work in the same way. Choose a dictionary folder, including any parent folder containing subfolders, and Read∞ registers supported dictionaries from their original locations. The application stores only the local dictionary index and folder access information. User-owned book and dictionary bytes are not copied into an app import directory.

Privacy and offline behavior

Read∞ does not require login or cloud synchronization for local reading. Online account, transfer, catalog, feed, and remote-integration surfaces are not part of the offline library workflow. Core reading, annotations, dictionaries, themes, search, backups, local sharing, and local text-to-speech remain available without a backend service.

For implementation details, see OFFLINE_BUILD.md. For attribution and third-party notices, see NOTICE.md.

Project status and upstream attribution

Read∞ is an independent, community-maintained fork of the Readest open-source project, distributed under the GNU Affero General Public License version 3 or later. The upstream project and its contributors retain the copyright and attribution applicable to their original work. The upstream name is referenced here only to identify the source project; Read∞ is not the upstream project’s official distribution.

This fork adds the offline Android product behavior, direct device-folder reading, local dictionary discovery, Read∞ branding, the com.infinity.readz Android identity, AMOLED startup defaults, Android navigation handling, and signed public Android release automation. See NOTICE.md for the attribution summary and LICENSE for the complete license text.

Building from source

Install the workspace dependencies and run the application-specific checks:

pnpm install --frozen-lockfile
cd apps/readest-app
pnpm exec tsc --noEmit -p tsconfig.json

Android builds require the Android SDK, Java 17, Rust, the Android Rust targets, and the Tauri CLI. The signed public release workflow is .github/workflows/android-stable-release.yml.

Credits

Read∞ is maintained by ZHINFINITY, with product credits shown in the application About section for InfinityZ-Lab. The project depends on and incorporates work from the open-source projects below.

Project or resourceContributionLicense or reference
Readest and its contributorsUpstream application code and reader foundation from which this independent fork is derivedAGPL-3.0-or-later; retain applicable upstream notices
TauriNative desktop and Android application shellMIT
Next.jsApplication framework and build toolingMIT
ReactUser-interface frameworkMIT
Foliate JavaScript librariesBook parsing and reading componentsMIT
PDF.jsPDF renderingApache License 2.0
zip.jsArchive accessBSD-3-Clause
fflateCompression utilitiesMIT
daisyUIInterface componentsMIT
MarkedMarkdown renderingMIT
React IconsInterface icon setOpen-source licenses
Google Fonts and bundled font projectsReading typography and multilingual supportRespective licenses

Please retain the repository license, copyright notices, dependency licenses, attribution files, and applicable source-offer obligations when redistributing source or binaries. Third-party projects remain subject to their respective licenses.

Contributing

Bug reports, feature requests, documentation improvements, translations, accessibility improvements, and pull requests are welcome. Please read CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md before participating.

License

Read∞ is distributed under the GNU Affero General Public License version 3 or later. See LICENSE for the complete license text and NOTICE.md for the attribution summary.

Read privately. Read directly. Read∞.

About

Read∞ — a private, offline ebook reader for Android and desktop that opens books and dictionaries directly from device folders.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
Read∞ icon

Read∞

A private, offline-first ebook reader for Android and desktop platforms.

Open books and dictionaries directly from folders you choose. Your source files stay where you put them.

Latest release · Issues · Pull requests

Overview

Read∞ is a privacy-first, offline ebook reader for Android and desktop. It is designed for readers who want their books, dictionaries, annotations, and reading progress to remain on their own devices. The Android package is com.infinity.readz, and the current public release is v1.0.0.

The native application opens supported files directly from user-selected device folders. It does not require an account, cloud library, online synchronization, telemetry, or a server connection for its core reading features. Local metadata, covers, notes, annotations, and reading progress remain on the device; original book and dictionary files stay in their selected folders.

Features

FeatureWhat Read∞ provides
Multi-format readingEPUB, PDF, MOBI, KF8/AZW3, FB2, CBZ, TXT, and Markdown reading support
Direct device-folder readingOpens books from their original device locations without importing or duplicating book bytes into app-managed storage
Multiple book foldersChoose multiple folders, recursively include subfolders, add or remove locations later, and scan only when requested
Controlled book discoverySelect supported formats and a minimum file size; an explicit full-device scan remains available as an optional fallback
Local dictionariesRecursively discover supported StarDict, MDict, dictd, Slob, and Babylon dictionaries from a selected folder and its subfolders without importing the dictionary files
Search and navigationSearch books and navigate chapters, pages, footnotes, references, and table-of-contents entries
Notes and annotationsHighlights, bookmarks, notes, selection actions, reading progress, and local metadata
Themes and layoutAMOLED black, dark, light, fonts, spacing, margins, page layouts, and scrolling layouts; AMOLED is the Android startup default
Offline text-to-speechDevice-local text-to-speech with local playback state and caching where supported by the platform
Local sharingNative/system sharing of local book content without requiring an online account
Read-along mediaCompatible local EPUB 3 media overlays and DRM-free narration files
AccessibilityKeyboard navigation and support for platform screen readers
Android navigationBack first dismisses or navigates the active folder, settings, reader, or dialog level; the library root requires a second press to exit
Private offline operationNo login, cloud library, remote synchronization, telemetry, or backend gate for core local reading
Release distributionSigned Android APKs for arm64-v8a, armeabi-v7a, x86, and x86_64, published through GitHub Releases

Android download

Download the signed APK matching the device architecture from the public Read∞ v1.0.0 release:

ABIAPK
arm64-v8aReadInfinity_1.0.0_arm64-v8a.apk
armeabi-v7aReadInfinity_1.0.0_armeabi-v7a.apk
x86ReadInfinity_1.0.0_x86.apk
x86_64ReadInfinity_1.0.0_x86_64.apk

GitHub displays each asset’s digest in the release metadata. This release intentionally does not publish separate .apk.sha256 files.

How direct folder reading works

On Android, select a books folder when prompted or from the library controls. Read∞ recursively discovers supported book files and records their original paths. A scan runs only when requested; returning to the application does not repeatedly scan the device. You can add or remove selected folders and choose supported formats or minimum file sizes.

Dictionary folders work in the same way. Choose a dictionary folder, including any parent folder containing subfolders, and Read∞ registers supported dictionaries from their original locations. The application stores only the local dictionary index and folder access information. User-owned book and dictionary bytes are not copied into an app import directory.

Privacy and offline behavior

Read∞ does not require login or cloud synchronization for local reading. Online account, transfer, catalog, feed, and remote-integration surfaces are not part of the offline library workflow. Core reading, annotations, dictionaries, themes, search, backups, local sharing, and local text-to-speech remain available without a backend service.

For implementation details, see OFFLINE_BUILD.md. For attribution and third-party notices, see NOTICE.md.

Project status and upstream attribution

Read∞ is an independent, community-maintained fork of the Readest open-source project, distributed under the GNU Affero General Public License version 3 or later. The upstream project and its contributors retain the copyright and attribution applicable to their original work. The upstream name is referenced here only to identify the source project; Read∞ is not the upstream project’s official distribution.

This fork adds the offline Android product behavior, direct device-folder reading, local dictionary discovery, Read∞ branding, the com.infinity.readz Android identity, AMOLED startup defaults, Android navigation handling, and signed public Android release automation. See NOTICE.md for the attribution summary and LICENSE for the complete license text.

Building from source

Install the workspace dependencies and run the application-specific checks:

pnpm install --frozen-lockfile
cd apps/readest-app
pnpm exec tsc --noEmit -p tsconfig.json

Android builds require the Android SDK, Java 17, Rust, the Android Rust targets, and the Tauri CLI. The signed public release workflow is .github/workflows/android-stable-release.yml.

Credits

Read∞ is maintained by ZHINFINITY, with product credits shown in the application About section for InfinityZ-Lab. The project depends on and incorporates work from the open-source projects below.

Project or resourceContributionLicense or reference
Readest and its contributorsUpstream application code and reader foundation from which this independent fork is derivedAGPL-3.0-or-later; retain applicable upstream notices
TauriNative desktop and Android application shellMIT
Next.jsApplication framework and build toolingMIT
ReactUser-interface frameworkMIT
Foliate JavaScript librariesBook parsing and reading componentsMIT
PDF.jsPDF renderingApache License 2.0
zip.jsArchive accessBSD-3-Clause
fflateCompression utilitiesMIT
daisyUIInterface componentsMIT
MarkedMarkdown renderingMIT
React IconsInterface icon setOpen-source licenses
Google Fonts and bundled font projectsReading typography and multilingual supportRespective licenses

Please retain the repository license, copyright notices, dependency licenses, attribution files, and applicable source-offer obligations when redistributing source or binaries. Third-party projects remain subject to their respective licenses.

Contributing

Bug reports, feature requests, documentation improvements, translations, accessibility improvements, and pull requests are welcome. Please read CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md before participating.

License

Read∞ is distributed under the GNU Affero General Public License version 3 or later. See LICENSE for the complete license text and NOTICE.md for the attribution summary.

Read privately. Read directly. Read∞.

About

Read∞ — a private, offline ebook reader for Android and desktop that opens books and dictionaries directly from device folders.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
Read∞ icon

Read∞

A private, offline-first ebook reader for Android and desktop platforms.

Open books and dictionaries directly from folders you choose. Your source files stay where you put them.

Latest release · Issues · Pull requests

Overview

Read∞ is a privacy-first, offline ebook reader for Android and desktop. It is designed for readers who want their books, dictionaries, annotations, and reading progress to remain on their own devices. The Android package is com.infinity.readz, and the current public release is v1.0.0.

The native application opens supported files directly from user-selected device folders. It does not require an account, cloud library, online synchronization, telemetry, or a server connection for its core reading features. Local metadata, covers, notes, annotations, and reading progress remain on the device; original book and dictionary files stay in their selected folders.

Features

FeatureWhat Read∞ provides
Multi-format readingEPUB, PDF, MOBI, KF8/AZW3, FB2, CBZ, TXT, and Markdown reading support
Direct device-folder readingOpens books from their original device locations without importing or duplicating book bytes into app-managed storage
Multiple book foldersChoose multiple folders, recursively include subfolders, add or remove locations later, and scan only when requested
Controlled book discoverySelect supported formats and a minimum file size; an explicit full-device scan remains available as an optional fallback
Local dictionariesRecursively discover supported StarDict, MDict, dictd, Slob, and Babylon dictionaries from a selected folder and its subfolders without importing the dictionary files
Search and navigationSearch books and navigate chapters, pages, footnotes, references, and table-of-contents entries
Notes and annotationsHighlights, bookmarks, notes, selection actions, reading progress, and local metadata
Themes and layoutAMOLED black, dark, light, fonts, spacing, margins, page layouts, and scrolling layouts; AMOLED is the Android startup default
Offline text-to-speechDevice-local text-to-speech with local playback state and caching where supported by the platform
Local sharingNative/system sharing of local book content without requiring an online account
Read-along mediaCompatible local EPUB 3 media overlays and DRM-free narration files
AccessibilityKeyboard navigation and support for platform screen readers
Android navigationBack first dismisses or navigates the active folder, settings, reader, or dialog level; the library root requires a second press to exit
Private offline operationNo login, cloud library, remote synchronization, telemetry, or backend gate for core local reading
Release distributionSigned Android APKs for arm64-v8a, armeabi-v7a, x86, and x86_64, published through GitHub Releases

Android download

Download the signed APK matching the device architecture from the public Read∞ v1.0.0 release:

ABIAPK
arm64-v8aReadInfinity_1.0.0_arm64-v8a.apk
armeabi-v7aReadInfinity_1.0.0_armeabi-v7a.apk
x86ReadInfinity_1.0.0_x86.apk
x86_64ReadInfinity_1.0.0_x86_64.apk

GitHub displays each asset’s digest in the release metadata. This release intentionally does not publish separate .apk.sha256 files.

How direct folder reading works

On Android, select a books folder when prompted or from the library controls. Read∞ recursively discovers supported book files and records their original paths. A scan runs only when requested; returning to the application does not repeatedly scan the device. You can add or remove selected folders and choose supported formats or minimum file sizes.

Dictionary folders work in the same way. Choose a dictionary folder, including any parent folder containing subfolders, and Read∞ registers supported dictionaries from their original locations. The application stores only the local dictionary index and folder access information. User-owned book and dictionary bytes are not copied into an app import directory.

Privacy and offline behavior

Read∞ does not require login or cloud synchronization for local reading. Online account, transfer, catalog, feed, and remote-integration surfaces are not part of the offline library workflow. Core reading, annotations, dictionaries, themes, search, backups, local sharing, and local text-to-speech remain available without a backend service.

For implementation details, see OFFLINE_BUILD.md. For attribution and third-party notices, see NOTICE.md.

Project status and upstream attribution

Read∞ is an independent, community-maintained fork of the Readest open-source project, distributed under the GNU Affero General Public License version 3 or later. The upstream project and its contributors retain the copyright and attribution applicable to their original work. The upstream name is referenced here only to identify the source project; Read∞ is not the upstream project’s official distribution.

This fork adds the offline Android product behavior, direct device-folder reading, local dictionary discovery, Read∞ branding, the com.infinity.readz Android identity, AMOLED startup defaults, Android navigation handling, and signed public Android release automation. See NOTICE.md for the attribution summary and LICENSE for the complete license text.

Building from source

Install the workspace dependencies and run the application-specific checks:

pnpm install --frozen-lockfile
cd apps/readest-app
pnpm exec tsc --noEmit -p tsconfig.json

Android builds require the Android SDK, Java 17, Rust, the Android Rust targets, and the Tauri CLI. The signed public release workflow is .github/workflows/android-stable-release.yml.

Credits

Read∞ is maintained by ZHINFINITY, with product credits shown in the application About section for InfinityZ-Lab. The project depends on and incorporates work from the open-source projects below.

Project or resourceContributionLicense or reference
Readest and its contributorsUpstream application code and reader foundation from which this independent fork is derivedAGPL-3.0-or-later; retain applicable upstream notices
TauriNative desktop and Android application shellMIT
Next.jsApplication framework and build toolingMIT
ReactUser-interface frameworkMIT
Foliate JavaScript librariesBook parsing and reading componentsMIT
PDF.jsPDF renderingApache License 2.0
zip.jsArchive accessBSD-3-Clause
fflateCompression utilitiesMIT
daisyUIInterface componentsMIT
MarkedMarkdown renderingMIT
React IconsInterface icon setOpen-source licenses
Google Fonts and bundled font projectsReading typography and multilingual supportRespective licenses

Please retain the repository license, copyright notices, dependency licenses, attribution files, and applicable source-offer obligations when redistributing source or binaries. Third-party projects remain subject to their respective licenses.

Contributing

Bug reports, feature requests, documentation improvements, translations, accessibility improvements, and pull requests are welcome. Please read CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md before participating.

License

Read∞ is distributed under the GNU Affero General Public License version 3 or later. See LICENSE for the complete license text and NOTICE.md for the attribution summary.

Read privately. Read directly. Read∞.

About

Read∞ — a private, offline ebook reader for Android and desktop that opens books and dictionaries directly from device folders.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
Read∞ icon

Read∞

A private, offline-first ebook reader for Android and desktop platforms.

Open books and dictionaries directly from folders you choose. Your source files stay where you put them.

Latest release · Issues · Pull requests

Overview

Read∞ is a privacy-first, offline ebook reader for Android and desktop. It is designed for readers who want their books, dictionaries, annotations, and reading progress to remain on their own devices. The Android package is com.infinity.readz, and the current public release is v1.0.0.

The native application opens supported files directly from user-selected device folders. It does not require an account, cloud library, online synchronization, telemetry, or a server connection for its core reading features. Local metadata, covers, notes, annotations, and reading progress remain on the device; original book and dictionary files stay in their selected folders.

Features

FeatureWhat Read∞ provides
Multi-format readingEPUB, PDF, MOBI, KF8/AZW3, FB2, CBZ, TXT, and Markdown reading support
Direct device-folder readingOpens books from their original device locations without importing or duplicating book bytes into app-managed storage
Multiple book foldersChoose multiple folders, recursively include subfolders, add or remove locations later, and scan only when requested
Controlled book discoverySelect supported formats and a minimum file size; an explicit full-device scan remains available as an optional fallback
Local dictionariesRecursively discover supported StarDict, MDict, dictd, Slob, and Babylon dictionaries from a selected folder and its subfolders without importing the dictionary files
Search and navigationSearch books and navigate chapters, pages, footnotes, references, and table-of-contents entries
Notes and annotationsHighlights, bookmarks, notes, selection actions, reading progress, and local metadata
Themes and layoutAMOLED black, dark, light, fonts, spacing, margins, page layouts, and scrolling layouts; AMOLED is the Android startup default
Offline text-to-speechDevice-local text-to-speech with local playback state and caching where supported by the platform
Local sharingNative/system sharing of local book content without requiring an online account
Read-along mediaCompatible local EPUB 3 media overlays and DRM-free narration files
AccessibilityKeyboard navigation and support for platform screen readers
Android navigationBack first dismisses or navigates the active folder, settings, reader, or dialog level; the library root requires a second press to exit
Private offline operationNo login, cloud library, remote synchronization, telemetry, or backend gate for core local reading
Release distributionSigned Android APKs for arm64-v8a, armeabi-v7a, x86, and x86_64, published through GitHub Releases

Android download

Download the signed APK matching the device architecture from the public Read∞ v1.0.0 release:

ABIAPK
arm64-v8aReadInfinity_1.0.0_arm64-v8a.apk
armeabi-v7aReadInfinity_1.0.0_armeabi-v7a.apk
x86ReadInfinity_1.0.0_x86.apk
x86_64ReadInfinity_1.0.0_x86_64.apk

GitHub displays each asset’s digest in the release metadata. This release intentionally does not publish separate .apk.sha256 files.

How direct folder reading works

On Android, select a books folder when prompted or from the library controls. Read∞ recursively discovers supported book files and records their original paths. A scan runs only when requested; returning to the application does not repeatedly scan the device. You can add or remove selected folders and choose supported formats or minimum file sizes.

Dictionary folders work in the same way. Choose a dictionary folder, including any parent folder containing subfolders, and Read∞ registers supported dictionaries from their original locations. The application stores only the local dictionary index and folder access information. User-owned book and dictionary bytes are not copied into an app import directory.

Privacy and offline behavior

Read∞ does not require login or cloud synchronization for local reading. Online account, transfer, catalog, feed, and remote-integration surfaces are not part of the offline library workflow. Core reading, annotations, dictionaries, themes, search, backups, local sharing, and local text-to-speech remain available without a backend service.

For implementation details, see OFFLINE_BUILD.md. For attribution and third-party notices, see NOTICE.md.

Project status and upstream attribution

Read∞ is an independent, community-maintained fork of the Readest open-source project, distributed under the GNU Affero General Public License version 3 or later. The upstream project and its contributors retain the copyright and attribution applicable to their original work. The upstream name is referenced here only to identify the source project; Read∞ is not the upstream project’s official distribution.

This fork adds the offline Android product behavior, direct device-folder reading, local dictionary discovery, Read∞ branding, the com.infinity.readz Android identity, AMOLED startup defaults, Android navigation handling, and signed public Android release automation. See NOTICE.md for the attribution summary and LICENSE for the complete license text.

Building from source

Install the workspace dependencies and run the application-specific checks:

pnpm install --frozen-lockfile
cd apps/readest-app
pnpm exec tsc --noEmit -p tsconfig.json

Android builds require the Android SDK, Java 17, Rust, the Android Rust targets, and the Tauri CLI. The signed public release workflow is .github/workflows/android-stable-release.yml.

Credits

Read∞ is maintained by ZHINFINITY, with product credits shown in the application About section for InfinityZ-Lab. The project depends on and incorporates work from the open-source projects below.

Project or resourceContributionLicense or reference
Readest and its contributorsUpstream application code and reader foundation from which this independent fork is derivedAGPL-3.0-or-later; retain applicable upstream notices
TauriNative desktop and Android application shellMIT
Next.jsApplication framework and build toolingMIT
ReactUser-interface frameworkMIT
Foliate JavaScript librariesBook parsing and reading componentsMIT
PDF.jsPDF renderingApache License 2.0
zip.jsArchive accessBSD-3-Clause
fflateCompression utilitiesMIT
daisyUIInterface componentsMIT
MarkedMarkdown renderingMIT
React IconsInterface icon setOpen-source licenses
Google Fonts and bundled font projectsReading typography and multilingual supportRespective licenses

Please retain the repository license, copyright notices, dependency licenses, attribution files, and applicable source-offer obligations when redistributing source or binaries. Third-party projects remain subject to their respective licenses.

Contributing

Bug reports, feature requests, documentation improvements, translations, accessibility improvements, and pull requests are welcome. Please read CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md before participating.

License

Read∞ is distributed under the GNU Affero General Public License version 3 or later. See LICENSE for the complete license text and NOTICE.md for the attribution summary.

Read privately. Read directly. Read∞.

About

Read∞ — a private, offline ebook reader for Android and desktop that opens books and dictionaries directly from device folders.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
Read∞ icon

Read∞

A private, offline-first ebook reader for Android and desktop platforms.

Open books and dictionaries directly from folders you choose. Your source files stay where you put them.

Latest release · Issues · Pull requests

Overview

Read∞ is a privacy-first, offline ebook reader for Android and desktop. It is designed for readers who want their books, dictionaries, annotations, and reading progress to remain on their own devices. The Android package is com.infinity.readz, and the current public release is v1.0.0.

The native application opens supported files directly from user-selected device folders. It does not require an account, cloud library, online synchronization, telemetry, or a server connection for its core reading features. Local metadata, covers, notes, annotations, and reading progress remain on the device; original book and dictionary files stay in their selected folders.

Features

FeatureWhat Read∞ provides
Multi-format readingEPUB, PDF, MOBI, KF8/AZW3, FB2, CBZ, TXT, and Markdown reading support
Direct device-folder readingOpens books from their original device locations without importing or duplicating book bytes into app-managed storage
Multiple book foldersChoose multiple folders, recursively include subfolders, add or remove locations later, and scan only when requested
Controlled book discoverySelect supported formats and a minimum file size; an explicit full-device scan remains available as an optional fallback
Local dictionariesRecursively discover supported StarDict, MDict, dictd, Slob, and Babylon dictionaries from a selected folder and its subfolders without importing the dictionary files
Search and navigationSearch books and navigate chapters, pages, footnotes, references, and table-of-contents entries
Notes and annotationsHighlights, bookmarks, notes, selection actions, reading progress, and local metadata
Themes and layoutAMOLED black, dark, light, fonts, spacing, margins, page layouts, and scrolling layouts; AMOLED is the Android startup default
Offline text-to-speechDevice-local text-to-speech with local playback state and caching where supported by the platform
Local sharingNative/system sharing of local book content without requiring an online account
Read-along mediaCompatible local EPUB 3 media overlays and DRM-free narration files
AccessibilityKeyboard navigation and support for platform screen readers
Android navigationBack first dismisses or navigates the active folder, settings, reader, or dialog level; the library root requires a second press to exit
Private offline operationNo login, cloud library, remote synchronization, telemetry, or backend gate for core local reading
Release distributionSigned Android APKs for arm64-v8a, armeabi-v7a, x86, and x86_64, published through GitHub Releases

Android download

Download the signed APK matching the device architecture from the public Read∞ v1.0.0 release:

ABIAPK
arm64-v8aReadInfinity_1.0.0_arm64-v8a.apk
armeabi-v7aReadInfinity_1.0.0_armeabi-v7a.apk
x86ReadInfinity_1.0.0_x86.apk
x86_64ReadInfinity_1.0.0_x86_64.apk

GitHub displays each asset’s digest in the release metadata. This release intentionally does not publish separate .apk.sha256 files.

How direct folder reading works

On Android, select a books folder when prompted or from the library controls. Read∞ recursively discovers supported book files and records their original paths. A scan runs only when requested; returning to the application does not repeatedly scan the device. You can add or remove selected folders and choose supported formats or minimum file sizes.

Dictionary folders work in the same way. Choose a dictionary folder, including any parent folder containing subfolders, and Read∞ registers supported dictionaries from their original locations. The application stores only the local dictionary index and folder access information. User-owned book and dictionary bytes are not copied into an app import directory.

Privacy and offline behavior

Read∞ does not require login or cloud synchronization for local reading. Online account, transfer, catalog, feed, and remote-integration surfaces are not part of the offline library workflow. Core reading, annotations, dictionaries, themes, search, backups, local sharing, and local text-to-speech remain available without a backend service.

For implementation details, see OFFLINE_BUILD.md. For attribution and third-party notices, see NOTICE.md.

Project status and upstream attribution

Read∞ is an independent, community-maintained fork of the Readest open-source project, distributed under the GNU Affero General Public License version 3 or later. The upstream project and its contributors retain the copyright and attribution applicable to their original work. The upstream name is referenced here only to identify the source project; Read∞ is not the upstream project’s official distribution.

This fork adds the offline Android product behavior, direct device-folder reading, local dictionary discovery, Read∞ branding, the com.infinity.readz Android identity, AMOLED startup defaults, Android navigation handling, and signed public Android release automation. See NOTICE.md for the attribution summary and LICENSE for the complete license text.

Building from source

Install the workspace dependencies and run the application-specific checks:

pnpm install --frozen-lockfile
cd apps/readest-app
pnpm exec tsc --noEmit -p tsconfig.json

Android builds require the Android SDK, Java 17, Rust, the Android Rust targets, and the Tauri CLI. The signed public release workflow is .github/workflows/android-stable-release.yml.

Credits

Read∞ is maintained by ZHINFINITY, with product credits shown in the application About section for InfinityZ-Lab. The project depends on and incorporates work from the open-source projects below.

Project or resourceContributionLicense or reference
Readest and its contributorsUpstream application code and reader foundation from which this independent fork is derivedAGPL-3.0-or-later; retain applicable upstream notices
TauriNative desktop and Android application shellMIT
Next.jsApplication framework and build toolingMIT
ReactUser-interface frameworkMIT
Foliate JavaScript librariesBook parsing and reading componentsMIT
PDF.jsPDF renderingApache License 2.0
zip.jsArchive accessBSD-3-Clause
fflateCompression utilitiesMIT
daisyUIInterface componentsMIT
MarkedMarkdown renderingMIT
React IconsInterface icon setOpen-source licenses
Google Fonts and bundled font projectsReading typography and multilingual supportRespective licenses

Please retain the repository license, copyright notices, dependency licenses, attribution files, and applicable source-offer obligations when redistributing source or binaries. Third-party projects remain subject to their respective licenses.

Contributing

Bug reports, feature requests, documentation improvements, translations, accessibility improvements, and pull requests are welcome. Please read CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md before participating.

License

Read∞ is distributed under the GNU Affero General Public License version 3 or later. See LICENSE for the complete license text and NOTICE.md for the attribution summary.

Read privately. Read directly. Read∞.

About

Read∞ — a private, offline ebook reader for Android and desktop that opens books and dictionaries directly from device folders.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages