21 unstable releases

0.11.0 Dec 9, 2025
0.10.0 Nov 20, 2025
0.9.2 Jun 22, 2025
0.9.1 Oct 22, 2024
0.2.0 Oct 23, 2020

#32 in Command-line interface

Download history 3231/week @ 2025-10-09 3420/week @ 2025-10-16 3275/week @ 2025-10-23 3029/week @ 2025-10-30 3549/week @ 2025-11-06 3517/week @ 2025-11-13 3509/week @ 2025-11-20 5476/week @ 2025-11-27 5043/week @ 2025-12-04 4217/week @ 2025-12-11 3082/week @ 2025-12-18 2114/week @ 2025-12-25 3530/week @ 2026-01-01 3809/week @ 2026-01-08 4970/week @ 2026-01-15 4840/week @ 2026-01-22

17,333 downloads per month
Used in 69 crates (64 directly)

MIT and LGPL-3.0-or-later

76KB
1.5K SLoC

viuer

ci

Display images in the terminal with ease.

viuer is a Rust library that makes it easy to show images in the terminal. It has a straightforward interface and is configured through a single struct. The default printing method is through lower half blocks ( or \u2585). However some custom graphics protocols are supported. They result in full resolution images being displayed in specific environments:

For a demo of the library's usage and example screenshots, see viu.

Usage

With the default features, only image::DynamicImage can be printed:

use viuer::{print, Config};

let conf = Config {
    // Start from row 4 and column 20.
    x: 20,
    y: 4,
    ..Default::default()
};

let img = image::DynamicImage::ImageRgba8(image::RgbaImage::new(20, 10));
print(&img, &conf).expect("Image printing failed.");

And with the print-file feature, viuer can work with files, too:

use viuer::{print_from_file, Config};

let conf = Config {
    // Set dimensions.
    width: Some(80),
    height: Some(25),
    ..Default::default()
};

// Display `img.jpg` with dimensions 80×25 in terminal cells.
// The image resolution will be 80×50 because each cell contains two pixels.
print_from_file("img.jpg", &conf).expect("Image printing failed.");

Docs

Find all the configuration options in the full documentation.

Dependencies

~11–19MB
~352K SLoC