Skip to content

Releases: edrlab/thorium-reader

[latest-windows-intel] automated test build (beta)

18 Aug 11:33
f1ae943
Compare
Choose a tag to compare

[latest-windows-arm] automated test build (beta)

18 Aug 11:32
f1ae943
Compare
Choose a tag to compare

[latest-macos-intel] automated test build (beta)

18 Aug 11:30
f1ae943
Compare
Choose a tag to compare

[latest-macos-arm] automated test build (beta)

18 Aug 11:27
f1ae943
Compare
Choose a tag to compare

[latest-linux-intel] automated test build (beta)

18 Aug 11:29
f1ae943
Compare
Choose a tag to compare

[latest-linux-arm] automated test build (beta)

18 Aug 11:29
f1ae943
Compare
Choose a tag to compare

Thorium Reader v3.2.1

11 Aug 06:41
Compare
Choose a tag to compare

Summary

Version 3.2.1 was released on 11 August 2025

NOTE: version 3.2.0 was published as a pre-release with only Linux and Windows installers (MacOS was missing at that point). This pre-release was removed when a fixed-layout zoom bug was discovered. This bug is now fixed and will be published in patched version 3.2.1. Apologies for the inconvenience, especially to the few Linux or Windows users who downloaded Thorium version 3.2.0. You will get the notification when 3.2.1 is available.

Total Downloads

This release includes the following (notable) new features, improvements and bug fixes:

  • Thorium is now based on Electron v37 (and its updated Chromium version). Version 37 introduced a regression bug with audio/video streaming (time seeking) but this was fixed in time for this Thorium release.
  • Localisation: added and updated translations, fixed Chinese handling (was incorrectly triggering RTL)
  • PDF: new print feature, updated PDF.js rendering library
  • Annotations/bookmarks: exports raw data (JSON format, W3C standard) as well as HTML template. Export is possible outside of a reader window (from the library / local bookshelf)
  • Annotation highlights: support for EPUB CFI in data import/export (Colibrio open-source lib)
  • Annotations/bookmarks: added a warning message when a publication that contains bookmarks/annotations is about to be removed (suggestion to export the notes)
  • Annotations/bookmarks: harmonized models, editor GUI for textual notes, tag, etc.,
  • Annotations/bookmarks: support for emojis via GitHub-flavoured Markdown
  • Annotations/bookmarks: rendering engine displays floating popup with text excerpt on mouse hover
  • Annotation highlights: now with named colours as opposed to just arbitrary RGB triplets
  • Bookmarks: new visual indicator in document margins
  • Bookmarks: fine-grain "current reading location" detection (mouse click) for precise character-level bookmarking (still default to implicit leading text position in visible text)
  • Annotations: when highlights are hidden (not even in margin), and the user selects text + creates annotation, nothing was displayed which was causing confusion and multiple user attempts to create (duplicates). This forces the display of annotations when the user creates.
  • GUI: improved the horizontal publication strips in the library window, now scrolls natively and snaps to publication covers boundaries (panning works with mouse wheel, touch swipe, arrow keys etc.)
  • TTS: new highlight styles configuration GUI
  • TTS readaloud fixes: on last spine item natural play ending (publication finish), turn off TTS "play on click" behaviour, also: hide annotations while playing, restore after stop. Also fixed race condition during play, click, auto forward progression, switch document backwards/forwards, and natural document/publication end (handles annotations hide/restore, continues to ignore hyperlink clicks during active readaloud, until stopped by user or automatically by TTS engine)
  • TTS: fixed potential crash in Linux when selecting synthetic speech voices
  • TTS: horizontally-centered TTS utterance with minimal jittering in scrolling mode
  • TTS: improved readaloud mouse tracking with paragraph spanning across page boundary
  • TTS: fixed pause/stop event which was causing GUI flicker
  • TTS: voice selection supports multiple per-language user preferences
  • Keyboard shortcuts: list / editor now with search filtering by keyword, duplicate detection, and localized labels.
  • Keyboard shortcuts: user overrides now persist correctly in json partial data structure on filesystem (was incorrecty serialising all shortcuts including defaults).
  • Keyboard shortcuts: display correct characters for non-QWERTY keyboard
  • Navigation: fixed hyperlinking into search results which wasn't inserting history events for go back/forward
  • Navigation: fixed popup footnotes back/forward hyperlinking history
  • OPDS: fixed the OAuth flow which needed to be restarted when a refresh token was revoked or invalid
  • Accessibility: updated support for the display guide specification
  • LCP: improved LSD network timeout, added async loading spinner (GUI)
  • DAISY import: fixed virtual zip archive handling of subfolders (DAISY2.02 NCC.html non-zipped publication folder, for example)
  • EPUB3 Media Overlays: fixed playback of precorded audio clips with implicit natural stream ending, also fixed edge case of HTML documents that start with markup that doesn't participate in SMIL synchronization (seek ahead algorithm)
  • EPUB3 Media Overlays: added GUI control checkbox for "ignore MO and read with TTS instead"
  • EPUB3 Media Overlays (and DAISY2.02 DAISY3.0): improved synchronised text-audio talking books, which now fallback on TTS when pre-recorded audio clips are not present in SMIL par pairs (only text reference). Can be full SMIL-TTS book, or partial interspersed / mixed TTS / audio-clips.
  • GUI: fixed the bottom progression bar which was not capable of handling great numbers of spine items, now minimum mouse cursor hit size (width) required
  • Accessibility: fixed keyboard focus handling inside HTML documents, screen reader detection to avoid interfering during scroll repositioning, also avoiding element focus during selection change.
  • Screen reader fix: left/right arrow hot key binding to "page turn" interferes potentially with current reading location during screen reader usage
  • Accessibility fix: "skip link" in reader window is equivalent to FocusMainDeep CTRL F10 with SHIFT
  • Fixed TTS Japanese Ruby handling, baseline text DOMRange-rendered but not spoken, unless Ruby is hidden/disabled. Also increased underline gap hoping to eliminate rendering artefacts in Windows
  • Fix: DAISY3 DTBOOK parser was choking on 60,000 lines / 8MB frontmatter
  • LCP fix: PDF import workaround for servers that respond with HTTP header content-disposition for PDF filename instead of LCPDF
  • Fixed Windows publication export filename which cannot contain ":" colon
  • Added support for PNLD EPUB extension (in addition to .epub and .epub3)
  • Accessibility fix: automatically disable pagination (CSS columns in reflowable documents) when screen reader is detected
  • Fixed AccessibleDfA typeface (dyslexic)
  • Adopted ReadiumCSS font-size / zoom fix
  • Image zoom/pan GUI now implemented in Thorium via localizable React GUI
  • Fixed Arabic and other Right To Left metadata accessibility summary and author/publisher/contributor in publication info dialog
  • Fixed zoom in pre-paginated / fixed-layout EPUB, and keyboard shortcuts for zoom in/out/reset which were not working in "zen mode"
  • Fixed HTTP header content-disposition filename handling (sanitization for cross-platform Windows, Linux, Mac filesystems)

Thorium Reader v3.2.0

02 Aug 08:26
Compare
Choose a tag to compare
Thorium Reader v3.2.0 Pre-release
Pre-release

Summary

Version 3.2.0 was PRE-released on 01 August 2025.

Total Downloads

UPDATE: version 3.2.0 was published as a pre-release with only Linux and Windows installers (MacOS was missing at that point). This pre-release was removed when a fixed-layout zoom bug was discovered. This bug is now fixed and will be published in patched version 3.2.1. Apologies for the inconvenience, especially to the few Linux or Windows users who downloaded Thorium version 3.2.0. You will get the notification when 3.2.1 is available.

Thorium Reader v3.1.1 hotfix for MacOS Apple Silicon (M1, M2, M3, M4)

15 Mar 19:06
Compare
Choose a tag to compare

Summary

Version 3.1.1 (hotfix 3.1.0-1) was released on 15 March 2025.

Total Downloads

This hotfix release is highly recommended for all Thorium users on Mac OS Apple Silicon ARM64 computers (M1, M2, M3, M4)

The application issue reported in the previous version 3.1.0 does not affect Mac OS Intel computers. This does not affect Windows and Linux users either.

Apologies for the nagging update message, Thorium is currently not capable of selectively releasing platform-specific hotfix patches.

Download checksum / hash verification

  • Thorium-3.1.0-1-arm64.dmg is code-signed by an official EDRLab certificate, and it is notarised by Apple servers. The SHA512 is:
    • HEX: 4aa11774236d4d87a24438d26c07bd45568136c01e31b8ad7a5b59b98937a8d4ff8e451d1574c0bfcd11a01905ddeeb1746eafc94efe9fbdbf7fbf4d3dae5f4d
    • BASE64: SqEXdCNtTYeiRDjSbAe9RVaBNsAeMbiteltZuYk3qNT/jkUdFXTAv80RoBkF3e6xdG6vyU7+n72/f79NPa5fTQ==
    • Command line: shasum -a 512 -c Thorium-3.1.0-1-arm64.dmg.sha512 (=> Thorium-3.1.0-1-arm64.dmg: OK)

MacOS command line: node -e "const hash = require('crypto').createHash('sha512'); const stream = require('fs').createReadStream(process.argv[1]); stream.on('readable', () => { const data = stream.read(); if (data) { hash.update(data); } else { const hex = hash.digest('hex'); console.log(hex); console.log(Buffer.from(hex, 'hex').toString('base64')); } });" Thorium-3.1.0-1-arm64.dmg

Thorium Reader v3.1.0

18 Feb 00:40
Compare
Choose a tag to compare

Summary

Version 3.1.0 was released on 17 February 2025.

Total Downloads


LINUX USERS (Ubuntu in particular): you will need to run the shell command sudo chmod 4755 /opt/Thorium/chrome-sandbox in a terminal session after installing the Debian package. Unfortunately this is a known issue with Electron: #2519 (comment)


This release includes the following (notable) new features, improvements and bug fixes:

  • Localization: updated translations, Weblate now recommended instead of GitLocalize
  • Feature: annotations, import + export (various "selector" formats powered by Apache Annotator, tested with DOM Ranges spanning across XHTML, SVG, MathML, foreignObject, etc.) and updated graphical user interface (list filtering, etc.)
  • Feature: TTS readaloud and EPUB3 Media Overlays, option to disable continuous playback (checkbox in playback settings panel)
  • Feature: visual navigation indicators in HTML publication documents (temporary outline) can now be disabled
  • Feature: additional information labels in the "settings" GUI to describe actions and choices
  • Feature: URL query params 'lang' and 'version' to online documentation
  • Feature: TTS readium-speech integration, organised and opinionated voice selector
  • Feature: TTS and EPUB3 Media Overlays, popup foonotes are disabled so that they can be played inline as intended by content creators
  • Feature: "preferred" settings for reader configuration, save/load/reset
  • Feature: PDF.js latest library version
  • Feature: latest Electron v34 (i.e. more recent Chromium web browser engine and NodeJS runtime)
  • Fix: XML parsing in DAISY 2.02 NCC.html was choking on doctype with empty declaration [], also SMIL parser fix for skippables (system-required sidebar-on and note-on), and merge of contiguous SMIL SEQ/AUDIO inside PAR
  • Fix: XML parser UTF8 BOM Byte Order Mark removal
  • Fix: TTS readaloud SVG deep utterances (no aria-label / title), escapability
  • Fix: TTS Japanese Ruby skipped (ignored) when visually hidden, played instead of base / non-Ruby when visually displayed (does not use skippability semantics of TTS / EPUB3 Media Overlays)
  • Fix: accessibility labels in some user interface controls, improved GUI structure and semantics
  • Fix: accessibility metadata, preliminary update (more to come in a future release) to match the latest presentation guide, support for printPageNumbers vs. pageBreakMarkers vs. pageNavigation
  • Fix: download panel was reporting incorrect status (mismatched unique identification), URL was conflated with label, added support for unknown content-length (indeterminate progress bar), handling of content-disposition UTF8 percent-escaped filename, consume www-authenticate response error description, HTTP content-type was taking the precedence over content-disposition header
  • Fix: LCP provider certificate expiration error messaging
  • Fix: bookmarks were incorrectly synchronised when several reader windows were open
  • Fix: OPDS and other publication download authentication flow across domains, also fixed OAuth 2.0 Implicit Grant flow (client ID etc.)
  • Fix: added missing keyboard shortcuts in library view for first/last previous/next
  • Fix: keyboard focus "inversion of control" (eliminated focus stealing), Thorium GUI now pushes requests to navigator / HTML document renderer, removed body-injected underscore / jump link, automatic vs. manual keyboard redirection from modal vs. docked navigation panels, added keyboard shortcut to force-focus deep into the webview (just in case the default method fails, depends on Chromium behaviour of out-of-process iframe inside shadow DOM / custom element)
  • Fix: command line lifecycle / action flow
  • Fix: various GUI issues
  • Fix(dev): updated Continuous Integration / GitHub Actions scripts, added dependency analyser script, introduced support for Flox/Nix, improved Linux Docker builder, adde NPM scripts lifecycle checks (pre/post/install security)
  • Fix: Thorium was only accepting lower case file extensions
  • Fix: LCP edge-case,broken publications that are encrypted but do not contain a license to unlock them
  • Fix: Divina layout setting was not enabled, improved progression reporting
  • Fix: user interface finger touch / swipe, text selection
  • Fix: persistent JSON filesystem state diff/patch could crash with large dataset
  • Fix: improved performance of text selection highlighter engine

Download checksum / hash verification

  • Thorium-3.1.0.dmg is code-signed by an official EDRLab certificate, and it is notarised by Apple servers. The SHA512 is:
    • HEX: e67b0570bb2ee93d86fb3084c5631fafc20ef03146e5d1d392b72e956a879a96057a7c7727d35cb354a8c4fc2b490f6636fc758ae82bd62db6b09240091051b0
    • BASE64: 5nsFcLsu6T2G+zCExWMfr8IO8DFG5dHTkrculWqHmpYFenx3J9Ncs1SoxPwrSQ9mNvx1iugr1i22sJJACRBRsA==
    • Verification: create a file named Thorium-3.1.0.dmg.sha512 next to the downloaded file Thorium-3.1.0.dmg, edit the new file Thorium-3.1.0.dmg.sha512 and write this exact line of text inside it: HEX Thorium-3.1.0.dmg, then run the command line shasum -a 512 -c Thorium-3.1.0.dmg.sha512 (=> Thorium-3.1.0.dmg: OK)
  • Thorium-3.1.0-arm64.dmg is code-signed by an official EDRLab certificate, and it is notarised by Apple servers. The SHA512 is:
    • HEX: 4aa11774236d4d87a24438d26c07bd45568136c01e31b8ad7a5b59b98937a8d4ff8e451d1574c0bfcd11a01905ddeeb1746eafc94efe9fbdbf7fbf4d3dae5f4d
    • BASE64: SqEXdCNtTYeiRDjSbAe9RVaBNsAeMbiteltZuYk3qNT/jkUdFXTAv80RoBkF3e6xdG6vyU7+n72/f79NPa5fTQ==
    • Command line: shasum -a 512 -c Thorium-3.1.0-arm64.dmg.sha512 (=> Thorium-3.1.0-arm64.dmg: OK)
  • Thorium.Setup.3.1.0.exe is code-signed by an official EDRLab certificate (the version distributed via the Microsoft Store is also code-signed, albeit via EDRLab's Microsoft account). The SHA512 is:
    • HEX: e4660c7fc6d7c0c731614676cca9eb1a707eabe4b1864f38f9ea7e3a5f55ebe00b05659f6fc4b0e871d4edaa02802d0be3b22eaafb69980372d9e0991a861003
    • BASE64: 5GYMf8bXwMcxYUZ2zKnrGnB+q+Sxhk84+ep+Ol9V6+ALBWWfb8Sw6HHU7aoCgC0L47IuqvtpmANy2eCZGoYQAw==
    • Command line: certutil -hashfile Thorium.Setup.3.1.0.exe SHA512
  • Thorium.Setup.3.1.0-arm64.exe is code-signed by an official EDRLab certificate. The SHA512 is:
    • HEX: 8e0363786288747dd6c79a6cbe5fb7522047c365fc419ae6a30964b2d6354637d666736f62a8634213e0d15cf3610f29c16c0b9f3995e08f3ff891ae964b21d6
    • BASE64: jgNjeGKIdH3Wx5psvl+3UiBHw2X8QZrmowlkstY1RjfWZnNvYqhjQhPg0VzzYQ8pwWwLnzmV4I8/+JGulksh1g==
    • Command line: certutil -hashfile Thorium.Setup.3.1.0.exe SHA512
  • Thorium-3.1.0.AppImage is not code-signed. The SHA512 is:
    • HEX: ea0973118b770fcf5451955b7afb904e6a3703d45a46a905f64cc8800bcaf63b1d8d2e2e9aa83f1da8e162637ffbe475f030509f18639236fdcb0ba940978623
    • BASE64: 6glzEYt3D89UUZVbevuQTmo3A9RaRqkF9kzIgAvK9jsdjS4umqg/HajhYmN/++R18DBQnxhjkjb9ywupQJeGIw==
    • Command line: sha512sum -c Thorium-3.1.0.AppImage.sha512
  • EDRLab.ThoriumReader_3.1.0_amd64.deb is not code-signed. The SHA512 is:
    • HEX: c89ef795ecb25a9a922bce67aa35f96d4a201dd7a03069726e6aa71cac40694390cd3054b7a00264be3c3782eca17134ddcf25f7d42a582057894d9821417be3
    • BASE64: yJ73leyyWpqSK85nqjX5bUogHdegMGlybmqnHKxAaUOQzTBUt6ACZL48N4LsoXE03c8l99QqWCBXiU2YIUF74w==
    • Command line: sha512sum -c EDRLab.ThoriumReader_3.1.0_amd64.deb.sha512
  • Thorium-3.1.0-arm64.AppImage is not code-signed. The SHA512 is:
    • HEX: 73d475020d50637846bd7ebebce2581e22b1377cb6ca3ab9792c2b751726aace4428ce14e6ec18c850ac304b42509e5185323f9ff73f86f69caae6921a5d14d0
    • BASE64: c9R1Ag1QY3hGvX6+vOJYHiKxN3y2yjq5eSwrdRcmqs5EKM4U5uwYyFCsMEtCUJ5RhTI/n/c/hvacquaSGl0U0A==
    • Command line: sha512sum -c Thorium-3.1.0-arm64.AppImage.sha512
  • EDRLab.ThoriumReader_3.1.0_arm64.deb is not code-signed. The SHA512 is:
    • HEX: 9bcd98ad511a04bda2e1bc0d87a9b534c95595cd2e4ee64d3b91e5c0510dee439355f111d5ff9a950ee768617e52a94a1aca8d7f831bc8e2bcd19d16c2987f3f
    • BASE64: m82YrVEaBL2i4bwNh6m1NMlVlc0uTuZNO5HlwFEN7kOTVfER1f+alQ7naGF+UqlKGsqNf4MbyOK80Z0Wwph/Pw==
    • Command line: sha512sum -c EDRLab.ThoriumReader_3.1.0_arm64.deb.sha512

MacOS command line: node -e "const hash = require('crypto').createHash('sha512'); const stream = require('fs').createReadStream(process.argv[1]); stream.on('readable', () => { const data = stream.read(); if (data) { hash.update(data); } else { const hex = hash.digest('hex'); console.log(hex); console.log(Buffer.from(hex, 'hex').toString('base64')); } });" release/Thorium-3.1.0.dmg
(for Linux and Windows, replace the release/Thorium-3.1.0.dmg relative path with the respective executables / binaries - release/Thorium-3.1.0.AppImage, release/EDRLab.ThoriumReader_3.1.0_amd64.deb, release/Thorium Setup 3.1.0.exe ... and the ARM64 equivalents)