| 
				
					
						
							 | 
			||
|---|---|---|
| examples | ||
| src | ||
| .gitignore | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
| image.png | ||
		
			
				
				README.md
			
		
		
			
			
		
	
	Termion
A pure Rust library for handling, manipulating and reading information about terminals. This provides a full-featured alternative to Termbox.
Supports Redox and POSIX. Untested on Windows.
A note on stability
Although small breaking changes might happen, I will try my best to avoid them, and this crate can generally be considered stable.
Features
- Raw mode.
 - 256-color mode.
 - Cursor movement.
 - Color output.
 - Calculating ANSI escapes.
 - Text formatting.
 - Console size.
 - Control sequences.
 - Termios control.
 - Password input.
 - Redox support.
 - Panic-free error handling.
 - Special keys events (modifiers, special keys, etc.).
 - Allocation-free.
 - Asynchronous key events.
 - Carefully tested.
 
and much more.
Example
extern crate termion;
use termion::{TermWrite, color, Style};
use std::io;
fn main() {
    let stdout = io::stdout();
    let mut stdout = stdout.lock();
    stdout.color(color::Red).unwrap();
    println!("Red");
    stdout.color(color::Blue).unwrap();
    println!("Blue");
    stdout.style(Style::Bold).unwrap();
    println!("Blue'n'Bold");
    stdout.reset().unwrap();
    stdout.style(Style::Italic).unwrap();
    println!("Just plain italic")
}
Usage
See examples/, and the documentation, which can be rendered using cargo doc.
For a more complete example, see a minesweeper implementation, that I made for Redox using termion.
TODO
- Mouse input
 
License
MIT/X11.