24 releases

0.8.0 Mar 24, 2023
0.7.3 May 21, 2020
0.7.1 Jan 12, 2020
0.6.1 Sep 13, 2018
0.1.2 Dec 26, 2016

#61 in Command-line interface

Download history 56378/week @ 2023-12-13 49172/week @ 2023-12-20 47262/week @ 2023-12-27 47321/week @ 2024-01-03 49285/week @ 2024-01-10 48356/week @ 2024-01-17 40669/week @ 2024-01-24 36914/week @ 2024-01-31 35631/week @ 2024-02-07 32012/week @ 2024-02-14 29112/week @ 2024-02-21 31551/week @ 2024-02-28 32897/week @ 2024-03-06 35417/week @ 2024-03-13 39201/week @ 2024-03-20 27593/week @ 2024-03-27

140,645 downloads per month
Used in 157 crates (10 directly)

WTFPL license

120KB
3K SLoC

terminfo

Crates.io Crates.io WTFPL Build Status

Terminal capabilities with type-safe getters.

Example

extern crate terminfo;

use std::io;
use terminfo::{Database, capability as cap};

fn main() {
  let info = Database::from_env().unwrap();

  if let Some(cap::MaxColors(n)) = info.get::<cap::MaxColors>() {
    println!("The terminal supports {} colors.", n);
  }
  else {
    println!("The terminal does not support colors, what year is this?");
  }

  if let Some(flash) = info.get::<cap::FlashScreen>() {
		flash.expand().to(io::stdout()).unwrap();
  }
	else {
		println!("FLASH GORDON!");
	}

	info.get::<cap::SetAForeground>().unwrap().expand().color(2).to(io::stdout()).unwrap();
	info.get::<cap::SetABackground>().unwrap().expand().color(4).to(io::stdout()).unwrap();
	println!("SUP");
	info.get::<cap::ExitAttributeMode>().unwrap().expand().to(io::stdout()).unwrap();
}

Packaging and Distributing

For all terminals but windows consoles, this library depends on a non-hashed (for now) terminfo database being present. For example, on Debian derivitives, you should depend on ncurses-term; on Arch Linux, you depend on ncurses; and on MinGW, you should depend on mingw32-terminfo.

Unfortunately, if you're using a non-windows console on Windows (e.g. MinGW, Cygwin, Git Bash), you'll need to set the TERMINFO environment variable to point to the directory containing the terminfo database.

Dependencies

~1–1.7MB
~27K SLoC