Repository navigation
RapidReady v0.5.1
RapidReady v0.5.1 — High-Speed Local Disk Cache, Fujifilm RAW & Universal RAW Safety Net
RapidReady v0.5.1 marks a major performance milestone! This release introduces our persistent local binary chunk cache (inspired by Google Picasa and Adobe Lightroom for 100% offline-first 60 FPS browsing across 100,000+ images), combines it with native Fujifilm RAW (.raf) support, an architectural universal RAW fallback safety net, and responsive UI fixes.
🚀 Highlights & Major Innovations (v0.5.0 + v0.5.1)
⚡ Persistent Local Disk Cache (Picasa & Lightroom Architecture)
-
64 MB Binary Chunk Containers (
chunk_XXXX.bin): Thumbnails are packed sequentially into rolling binary blobs stored directly on your local system NVMe (~/Library/Caches/de.rapidready.app/on macOS,%LOCALAPPDATA%\RapidReady\Cache\on Windows). This completely eliminates APFS/NTFS filesystem fragmentation, inode exhaustion, and slow directory walks across massive 100,000+ photo collections. -
Single-Seek
$O(1)$ Byte-Range Access: Retrieving any cached thumbnail requires exactly onelseek+readsystem call, delivering sub-millisecond retrieval times. -
High-Concurrency SQLite Index (
archive_catalog.sqlite): A robust, WAL-mode database tracks canonical file paths, mtimes, sizes, orientations, and thumbnail scales. - 100% Offline-First 60 FPS Grid Navigation: Once an archive folder is indexed, the entire photo grid, filmstrip, and previews are served locally from ultra-fast NVMe storage — without waking up sleep-state drives or generating network seek traffic over slow NAS/SMB mounts.
- Incremental Delta Sync: Automatically detects added, modified, or removed files upon archive reconnection without requiring full re-indexing.
📸 Complete Camera RAW Pipeline & Universal Safety Net
-
Native Fujifilm RAW (
.raf) Ingest (New in v0.5.1):- Added dedicated RAF header parsing recognizing
FUJIFILMCCD-RAWsignatures and reading the embedded JPEG preview offset/length directly in a single < 2 ms read. - In-memory downscaling generates sharp 720px grid thumbnails for compact cache storage (~80–120 KB) while preserving the uncompressed full-sensor preview for Loupe View and 100% Zoom.
- Full capture date resolution and camera EXIF extraction (camera make, model, lens, exposure data) for Fuji X-T, X-Pro, X100, X-E, and GFX cameras.
- Added dedicated RAF header parsing recognizing
-
Universal RAW Fallback Safety Net (New in v0.5.1):
- Implemented a two-tier architectural defense against missing grid thumbnails: if fast header extraction does not encounter preview tags on non-standard RAW containers (e.g. Sigma X3F
FOVb, deep Olympus ORF previews, or rare variants), RapidReady automatically scans for the largest embedded JPEG stream, downscales in memory, and caches it locally. - Zero Blank Tiles: Ensures 100% of camera RAW files across all supported manufacturers render sharp thumbnails in Grid View.
- Implemented a two-tier architectural defense against missing grid thumbnails: if fast header extraction does not encounter preview tags on non-standard RAW containers (e.g. Sigma X3F
-
Fast-Path Camera Tags (New in v0.5.1):
- Added native single-read header extraction for Panasonic Lumix RW2 (
0x002E/0x002FJpgFromRaw) and Olympus/OM System ORF (0x0280PreviewImage+IIRO/IIRScapture date magic).
- Added native single-read header extraction for Panasonic Lumix RW2 (
-
High-Resolution Canon CR2 & Differentiated In-Memory Downscaling:
- Hardened TIFF strip parser captures Canon CR2 full-sensor IFD0 previews (5472×3648, 2.5–5.5 MB) instead of falling back to 160×120 micro-thumbnails.
- Previews
$\le 1.5,\text{MB}$ (Sony ARW, Canon CR3, Ricoh DNG) are cached with 0 ms CPU overhead; full-sensor previews$> 1.5,\text{MB}$ are resized in-memory via Apple ImageIO in ~20 ms. Full sensor resolution is strictly preserved for 1:1 Loupe Zoom.
🎯 Loupe View Debouncing & Zero-Lag Viewport
- 100 ms Viewport Debouncing: Rapid arrow navigation (
←/→) or fast double-clicking immediately updates the filmstrip cursor and photo counters (0 ms instantaneous feedback) while debouncing the heavy central viewport, skipping intermediate frames over slow network shares. - Proactive Request Abort: Switching images instantly cuts in-flight network connections, preventing queue congestion on network mounts.
📈 Throughput Smoothing & UI Responsiveness on Fast SSDs
- Paced Progress Reporting: Progress updates are paced at ~6.6 Hz (150 ms) instead of unthrottled bursts, keeping the React UI silky smooth during heavy background indexing.
- Deferred Flush Strategy: Flushes are deferred to 64 MB chunk boundary rollover, removing synchronous per-thumbnail
fsyncoverhead and unlocking full NVMe write speeds. - Accurate Live Speeds: Accurately calculates real throughput (MB/s) in the scan progress card.
🐛 Bug Fixes & Refinements
- Archive Scan Banner Layout & Narrow Window Overflow (Issue #1):
- Realigned the floating throughput and performance statistics card from centered (
left-1/2) toleft-0with arrow pointer atml-7, ensuring the bubble expands into the visible center view rather than overflowing under the left folder tree pane on narrow windows. - Constrained scan banner width to
max-w-fullpreventing container overflows. - Expanded hover trigger encompassing phase pill,
(?)icon, and the photo progress counter.
- Realigned the floating throughput and performance statistics card from centered (
- Format Badge Contrast: Enhanced readability of format pills (
JPG,RAW,VID) with refined background translucency and typography across both dark and bright backgrounds.
📦 Supported Formats
- Camera RAW: Canon (
.cr2,.cr3), Sony (.arw), Nikon (.nef,.nrw), Adobe/Leica/Ricoh (.dng), Fujifilm (.raf), Olympus/OM System (.orf), Panasonic Lumix (.rw2), Pentax (.pef), Hasselblad (.3fr), Sigma (.x3f). - Raster & Next-Gen: JPEG (
.jpg,.jpeg), HEIF/HEIC (.heic,.heif,.hif), WebP (.webp), AVIF (.avif), PNG (.png), TIFF (.tif,.tiff). - Video:
.mp4,.mov,.m4v,.avi.