Go to file
ticki b499d4825f Refactor how colors are handled 2016-07-02 15:06:47 +02:00
examples Refactor how colors are handled 2016-07-02 15:06:47 +02:00
src Refactor how colors are handled 2016-07-02 15:06:47 +02:00
.gitignore Add README 2016-03-06 14:55:01 +01:00
Cargo.toml Simplify dependencies 2016-03-29 08:00:01 +02:00
LICENSE Add license 2016-03-08 09:30:24 +01:00
README.md Refactor how colors are handled 2016-07-02 15:06:47 +02:00
image.png Example image 2016-03-16 08:11:35 +01:00

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.

Documentation. | Examples.

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.