#1063·broot

Feature Request: Async for previews

Author: stevenxxiuCreated Sep 29, 2025Updated Jul 22, 2026
Labelsenhancement

From https://github.com/Canop/broot/pull/1034#issuecomment-3282024441, displaying large images can be slow.

I identified these as being slow:

  • Creating ImageView:
    • broot/src/preview/preview_state.rs PreviewState::new()
    • broot/src/preview/preview.rs Preview::new()
    • broot/src/image/image_view.rs ImageView::new()
  • Displaying ImageView:
    • broot/src/preview/preview_state.rs preview.display(w, disc, &self.preview_area)
    • broot/src/preview/preview.rs Self::Image(iv) => iv.display(w, disc, area)
    • broot/src/image/image_view.rs ImageView::display()

Could Broot switch to using async? Then the entire preview function could be async. Key presses can then cancel it at any point.