13 releases
Uses old Rust 2015
0.1.12 | Jun 22, 2016 |
---|---|
0.1.11 | May 30, 2016 |
0.1.9 | Oct 10, 2015 |
0.1.8 | Aug 1, 2015 |
0.1.2 | May 26, 2015 |
#897 in Command-line interface
Used in rustty-oxide
62KB
1K
SLoC
rustty: a terminal UI library
Intro
Rustty is a terminal UI library that provides a simple, concise abstraction over an underlying terminal device.
Rustty is based on the concepts of cells and events. A terminal display is an array of cells, each holding a character and a set of foreground and background styles. Events are how a terminal communicates changes in its state; events are received from a terminal, processed, and pushed onto an input stream to be read and responded to.
Installation
Installation is simple, to use rustty
, first add this to your Cargo.toml
:
[dependencies]
rustty = "*"
Then, add this to your crate root:
extern crate rustty;
Concepts
The purpose of this section is to introduce and explain the main concepts of rustty and the decisions behind its design.
Terminal
The terminal representation can be thought of as such:
0-------------------------------cols (x)
|
|
|
|
|
|
|
|
rows (y)
Along the x-axis are the columns and along the y-axis are the rows. The upper-left corner is the origin, which begins at index (0, 0) and extends to (cols, rows). Each point (x, y) represents a single cell, which is the next topic.
Cells
A cell is a single point on a character display, representing a single character and its foreground and background styles.
Events
Events are how changes in a terminal's state are represented. A terminal has an associated event stream which acts much like a UNIX pipe, or a FIFO queue. When events occur they are pushed on to the back of the stream; when events are read they are taken from the front of the stream.
Usage Guide
Examples and usage suggestions can be found in the API documentation.
Contact
If you encounter any issues with the library or have suggestions, please report them with the issue tracker.
If you have any further questions, please don't hesitate to email me, and I respond as soon as I am able.
Dependencies
~1.7–10MB
~117K SLoC