Ristretto, a ‘lightweight’ image viewer

  • March 4, 2008
  • Stephan Arts

From the moment I started developing ristretto, I mentioned that it was a simple lightweight image viewer. This is a statement which is bound to be disputed by some, and here is the reason why: ‘There is no such thing as a lightweight image viewer‘. And they are right, decompressing an image requires a lot of CPU-power, and a fully decompressed image requires the presence of enough RAM memory in order to do anything usefull with it at any acceptable speed. No image viewer has been able to surpass this limitation, ristretto is no exception to that rule.

So, why do I say ristretto is lightweight? — Because there is more to an image viewer then the two constants I mentioned before, a basic image viewer should:

  • Navigate between images in an entire folder
  • Display image thumbnails
  • Run a slideshow
  • Flip / Rotate images
  • Read (and interpret) EXIF meta-data, for jpeg images taken by digital camera’s.
  • Have well-documented comprehensible code

At this moment, a rudimentary implementation of these features have found their way inside ristretto. Rudimentary, because each component is being looked after if it needs refactoring. The goal is to improve these features until ristretto is a stable and fast image viewer using as little memory as possible (making it relatively lightweight), considering it’s purpose.

I’ve just summed up the first priority of ristretto development; to write a simple and fast image viewer, which does just that: show images.

Any additional features, like importing images from a digital camera (using libgphoto2) or printing images to paper could probably be added through a plugin interface or something. Keeping the basic application simple while allowing individual users to add features they like. If, when and how this is going to be implemented is still a question though ;).