Skip to content

Releases: Aprilarius/ApriReader

ApriReader 2.0.0

Choose a tag to compare

@Aprilarius Aprilarius released this 05 Sep 09:56
dd59d0d

Big one this time. New look for the app, and one bug I'm genuinely a bit
embarrassed about.

Pick your own theme. Settings now has 6 different looks for the app —
Default, Classic, Bookish, Glass, Liquid Glass, and Neumorphism — each with
its own light and dark mode, so 12 combos total. This only changes the shell
around your books (library, sidebar, dialogs, settings, stats, the audiobook
player). Your actual reading page keeps its own separate Paper/Sepia/Night
switch, untouched. If Windows high-contrast mode is on, every skin falls
back to the accessible look automatically, no extra setup needed.

Fixed: PDFs were completely broken. Since 1.5.0. A cleanup pass removed
a plugin the PDF reader was quietly still relying on to read file bytes, and
nothing caught it before release, so opening any PDF just threw an error.
If that was you — sorry, that one's on me. Fixed now: PDFs load through the
same safe local-file path the comic reader already used.

Fixed: the ElevenLabs/Google/Azure cloud voice clients were reporting a
stale release-candidate version number in every request instead of the
actual installed version. Harmless, but sloppy.

Fixed a pile of "text disappears in dark mode" bugs. Building 6 real
themes surfaced a bunch of colors that only ever worked because there used
to be exactly one theme and it was always light — the name field in
Settings, a few buttons, the empty-library card, achievement badges, and
footnote links in the reader could end up unreadable depending on the
theme. Checked every theme x mode combination with a real contrast-ratio
calculation this time and locked the results into an automated test so it
can't quietly come back.

Also dropped a now-unused dependency and patched a few dev-tooling security
advisories — none of it ever reached the app you actually install.

Full details in CHANGELOG.md.


The installer below is not code-signed yet (see the code signing policy
doc) — Windows may warn about an unknown publisher. Download only from this
page and check the hash if you want to be extra sure:

SHA-256: 46799a266f7ed23c867191985976850cdfd9598234852975ae05df55f72491a

ApriReader 1.5.0

Choose a tag to compare

@Aprilarius Aprilarius released this 20 Aug 18:08

Desktop-only release. The Android build has been removed; ApriReader is a Windows reader again.

Fixed

  • Blank reader page. Page measurement advanced from inside its own layout effect, so a book with more than roughly fifty chapters exhausted React's nested update limit and tore the reader down. The crash fallback then inherited the reader's four-row grid, which placed its <main> in the three-pixel progress row and clipped the recovered text out of sight.
  • Chapter names showing as "Section 1". Titles are now read from styled title wrappers and from h4–h6, so books converted from FB2 are named correctly. A horizontal rule is no longer mistaken for a heading.
  • Books missing from the file dialog. The picker carried Android-only options on the desktop.
  • A full library could be replaced by an empty one. Recovery restored the most recent intact backup even when it held no books; it now restores the backup that recovers the most.

Added

  • Footnote and cross-reference links. Markers such as [85] are clickable, following one remembers your place, and a single click returns to it. Links are stored beside the block text as ranges rather than inside it, so existing highlights and notes keep addressing the same characters.
  • A watched folder can be forgotten. The books it imported stay in the library.
  • The table of contents is rendered in batches, so a book with very many sections no longer freezes the window.
  • Links that leave the book are reported rather than handed to the system browser, matching the deliberately narrow opener allow-list.

Removed

  • The unfinished Android build: mobile audio, managed document import, the system back button, and the mobile capability flags.
  • tauri-plugin-fs, which no longer had a consumer or a granted permission.

Verification

ApriReader_1.5.0_x64-setup.exe

f2f096966b06bdcf61512fa33ed55aa810e6f319a9ab862e951511b923d6385b

This download is not code-signed. Windows SmartScreen will warn on first
run. As stated in the code signing policy,
ApriReader artifacts stay explicitly labelled as unsigned until the SignPath.io
open-source certificate is approved and a release passes that policy's
verification. Check the SHA-256 above before installing.

Built from 81fd962 on main. Gate: 120 Rust tests, 113 frontend tests, tsc, eslint --max-warnings 0, prettier, cargo fmt, cargo clippy -D warnings, release audit, SBOM, and third-party licence manifests.

ApriReader 1.3.1

Choose a tag to compare

@Aprilarius Aprilarius released this 09 Aug 06:41

ApriReader 1.3.1

This maintenance release makes book import more faithful and the reading view
more predictable. It focuses on the files people already have: no new account,
service, or background connection has been added.

What changed

  • FB2 titles, authors, genres, and declared covers are now recovered reliably
    from a wider range of real-world files, including large books and covers with
    wrapped Base64 data.
  • Rescanning a library can repair metadata and missing cached covers without
    replacing anything you edited by hand.
  • FB2 paragraphs keep inline formatting and character references together.
    Symbols such as &, em dashes, ellipses, and numeric references are rendered
    as readable text across FB2, EPUB, HTML, and DOCX.
  • EPUB books with encoded spaces in chapter or cover paths now open correctly.
  • Import feedback is clearer: ApriReader tells you how many books were added,
    refreshed, already present, or could not be read.
  • Cover validation is stricter. A file is used as an embedded cover only when
    its contents really match a supported image format.

The import and reader changes were checked against the reported Flibusta
folder: all 46 books imported, all 46 exposed a title and author, 16 declared
covers were found, and all 46 opened in the reader.

Что изменилось

  • ApriReader надёжнее читает названия, авторов, жанры и обложки из FB2, в том
    числе из больших файлов и книг с переносами строк внутри Base64-обложки.
  • Повторное сканирование исправляет пропущенные встроенные данные, но не
    перезаписывает название, автора, жанры или обложку, изменённые вручную.
  • Текст с внутренним форматированием больше не распадается на несколько
    абзацев. Амперсанды, тире, многоточия и числовые XML/HTML-ссылки отображаются
    как обычные читаемые символы.
  • EPUB с пробелами, закодированными в путях глав и обложек, открываются
    корректно.
  • Итог импорта теперь честно разделяет добавленные, обновлённые, уже имеющиеся
    и не прочитанные файлы.

Installation and privacy

ApriReader keeps source books unchanged. Metadata, progress, covers, indexes,
and backups stay in application-managed local storage. Online metadata and
optional cloud voices still run only after an explicit user action.

The Windows installer is currently unsigned, so Windows may show an unknown
publisher warning. Download it only from the official ApriReader release page
and compare its SHA-256 checksum with the value published there.

ApriReader 1.3.0

Choose a tag to compare

@Aprilarius Aprilarius released this 08 Aug 15:40

ApriReader 1.3.0

This stable release consolidates audiobook stages A0-A13 and the final player,
light-theme, and narration-queue fixes.

ApriReader 1.3 adds a complete audiobook and read-aloud experience while
keeping the existing Windows book library, readers, annotations, statistics,
and local-first privacy model intact.

Highlights

  • Dedicated audiobook library with single-file and multi-part import, watched
    folders, natural ordering, source reconnection, search, metadata, covers,
    listening statistics, and separate achievements.
  • Full audiobook player with resume, queue, chapters, bookmarks, sleep timer,
    speed and volume controls, output-device selection, automatic part advance,
    background playback, Windows media controls, and configurable tray behavior.
  • Safe local CUE, M3U, and M3U8 support plus Explorer associations for the
    reviewed audiobook and playlist formats.
  • Local Windows read-aloud for reflow books with installed voices, continuous
    section or whole-book narration, background preparation, active-word focus,
    automatic scrolling, pronunciation rules, and reusable voice presets.
  • Optional bring-your-own-key ElevenLabs, Google Cloud Text-to-Speech, and
    Azure AI Speech providers with separate consent, protected Windows
    Credential Manager storage, bounded responses, provider-specific controls,
    and independent caches.
  • Incremental M3U8 audiobook export from generated narration with bounded file,
    fragment, and package limits.
  • Responsive audiobook-player layout, corrected light-theme action contrast,
    and reliable continuation from short chapter titles into the main text.
  • Security and reliability hardening for PDF.js, SQLite recovery, concurrent
    TTS cache writes, export replacement, and native playback polling.
  • Open Library plus Inventaire metadata search in Russian or English, including
    bounded descriptions and fixed-host validated Inventaire covers.

Privacy and installation

Local Windows narration does not send book text to a server. Cloud voices are
strictly optional and require the user's own provider key plus explicit consent
before text is transmitted. Provider keys remain in Windows Credential Manager
and are never returned to the WebView after saving.

ApriReader does not modify source books or audio files. Generated speech,
covers, indexes, progress, bookmarks, and caches stay in application-managed
local storage.

The direct Windows installer is currently unsigned and may show an
unknown-publisher warning. Steam distribution uses the separate unpacked Depot
package. Obtain direct downloads only from the official release and verify the
published SHA-256 checksum.

ApriReader 1.3.0 RC2

ApriReader 1.3.0 RC2 Pre-release
Pre-release

Choose a tag to compare

@Aprilarius Aprilarius released this 08 Aug 12:21

ApriReader 1.3.0 RC2

This release candidate consolidates audiobook stages A0-A13 and the final
player, light-theme, and narration-queue fixes into one reviewable build.

ApriReader 1.3 adds a complete audiobook and read-aloud experience while
keeping the existing Windows book library, readers, annotations, statistics,
and local-first privacy model intact.

Highlights

  • Dedicated audiobook library with single-file and multi-part import, watched
    folders, natural ordering, source reconnection, search, metadata, covers,
    listening statistics, and separate achievements.
  • Full audiobook player with resume, queue, chapters, bookmarks, sleep timer,
    speed and volume controls, output-device selection, automatic part advance,
    background playback, Windows media controls, and configurable tray behavior.
  • Safe local CUE, M3U, and M3U8 support plus Explorer associations for the
    reviewed audiobook and playlist formats.
  • Local Windows read-aloud for reflow books with installed voices, continuous
    section or whole-book narration, background preparation, active-word focus,
    automatic scrolling, pronunciation rules, and reusable voice presets.
  • Optional bring-your-own-key ElevenLabs, Google Cloud Text-to-Speech, and
    Azure AI Speech providers with separate consent, protected Windows
    Credential Manager storage, bounded responses, provider-specific controls,
    and independent caches.
  • Incremental M3U8 audiobook export from generated narration with bounded file,
    fragment, and package limits.
  • Responsive audiobook-player layout, corrected light-theme action contrast,
    and reliable continuation from short chapter titles into the main text.
  • Security and reliability hardening for PDF.js, SQLite recovery, concurrent
    TTS cache writes, export replacement, and native playback polling.
  • Open Library plus Inventaire metadata search in Russian or English, including
    bounded descriptions and fixed-host validated Inventaire covers.

Privacy and installation

Local Windows narration does not send book text to a server. Cloud voices are
strictly optional and require the user's own provider key plus explicit consent
before text is transmitted. Provider keys remain in Windows Credential Manager
and are never returned to the WebView after saving.

ApriReader does not modify source books or audio files. Generated speech,
covers, indexes, progress, bookmarks, and caches stay in application-managed
local storage.

The Windows installer is currently unsigned and may show an unknown-publisher
warning. Treat RC2 as a pre-release validation build, obtain it only from the
official candidate package, and verify its included SHA-256 checksum.

Verification

  • SHA-256: 97FDEA9B886A5DDD04EE4BAC9A2A44D7F0A5C29EBE7581040C72D2914E432555
  • Source commit: 37624009e52f0fcd24442ff9862b2731b98f7fad
  • The installer is unsigned and Windows may display an unknown-publisher warning.

ApriReader 1.1.0

Choose a tag to compare

@Aprilarius Aprilarius released this 01 Aug 12:48

ApriReader 1.1.0

ApriReader 1.1 makes the Windows reader more personal, flexible, and resilient while keeping books and reading data local by default.

Highlights

  • Optional local display name with a time-aware library greeting.
  • Six bundled OFL serif families with independent style and real-weight selection: Literata, Lora, Merriweather, Source Serif 4, Charis SIL, and IBM Plex Serif.
  • Explicit EN-RU and RU-EN selected-text handoff to Google or Yandex Translate in the default browser, with first-use privacy consent.
  • Explorer associations for every supported format, including safe import, duplicate reuse, immediate opening, and forwarding to an existing instance.
  • Reader reliability fixes for rapid book switches, position flushing, chapter navigation, reading-session attribution, and relocated duplicate sources.
  • Stronger bounds around books, fonts, metadata responses, watched folders, PDF/comic caches, and interrupted cache generation.
  • Cleaner Settings and application shell without development or provider diagnostics.

Privacy and installation

The public build contains no telemetry, Steamworks files, translation model, language package, account service, or background catalog. Translation occurs only after the user selects text and chooses an external provider.

The Windows installer is currently unsigned and may show an unknown-publisher warning. Download it only from the official release and verify the published SHA-256 checksum.

Installer SHA-256: 35D2CF935DA8500C3F185BE92D83FCDC5F36132AE62D95613D1290539E01F017

ApriReader 1.0.0

Choose a tag to compare

@Aprilarius Aprilarius released this 30 Jul 14:15

ApriReader is a privacy-first desktop reader and personal library for Windows 10/11 x64.

Download

Download ApriReader-1.0.0-windows-x64-setup.exe below.

Important

This initial Windows installer is not code-signed. Windows may identify it as coming from an unknown publisher or display a SmartScreen warning. Download only from this official release page and verify the SHA-256 checksum before installation.

Highlights

  • EPUB, PDF, FB2, TXT, HTML, Markdown, CBZ, CBR, and DOCX support.
  • Continuous reading and two-page book-spread layout with page counters.
  • Detailed typography, reading profiles, local font import, and bionic highlighting.
  • Search, bookmarks, highlights, notes, saved quotes, and Markdown export.
  • Favorites, authors, series, local statistics, daily goals, and 42 achievements.
  • Keyboard navigation, Narrator support, high scaling, and forced-colors support.
  • Guarded local database backup and recovery.

Privacy

This build contains no telemetry, advertising, Steamworks, bundled books, language models, TTS engine, generated covers, or background catalog requests. Source books remain in place and library data stays local.

Verification

  • Installer SHA-256: 8CBBA870FA2B53CA4FD01234BBD98B07CB28DDBA85EC080BB4BB6DFAFC0035F0
  • Source manifest SHA-256: 2736326CDC5D25E067699F948107B1F617ADC885B0014464710AA12B41DA1C0C
  • Tagged source commit: 3a0ff18db8dee43c3251df616dfbda4488c01ba2
  • Automated gate: 40 UI tests and 48 Rust tests passed, together with format, lint, typecheck, production build, Clippy, security, SBOM, and license checks.

Existing RC1 and beta installations can be upgraded in place; local library data and reading progress use the same application profile.