feat: Async image loading

Overview

This MR fixes the UI blocking issues when loading notes with many images. It moves image decoding to a background thread and rewrites the Markdown parser to be significantly faster using zero-copy string views. As a result, image loading is nearly instantaneous, regardless of the number of images on screen.

Comparison

Here is RAM usage with 18 MB of images added to a note (different formats, some are high resolution).

Before (677 MB) vs. After (97 MB)

Screenshot_20260123_192154

Closes #64 (closed)

Edited by Valentyn Bondarenko

Merge request reports

Loading