[Fork] A Text User Interface library for the Rust programming language
Go to file
Alexandre Bury ca5c485847 Fix Button on_key_event
KEY_ENTER is actually almost never called. The return key sends the
ascii code for '\n' instead.
2015-05-19 10:58:42 -07:00
assets Add lorem example with long text and line wrapping 2015-05-18 11:36:15 -07:00
examples Add lorem example with long text and line wrapping 2015-05-18 11:36:15 -07:00
src Fix Button on_key_event 2015-05-19 10:58:42 -07:00
.gitignore First commit 2015-05-09 12:18:31 -07:00
Cargo.toml Add lorem example with long text and line wrapping 2015-05-18 11:36:15 -07:00
Readme.md Update readme 2015-05-19 10:01:54 -07:00

Cursive

Cursive is a ncurses-based TUI (Text User Interface) library for rust. It is based on jeaye's ncurses-rs.

It is designed to be safe and easy to use:

extern crate cursive;

use cursive::{Cursive,Dialog};

fn main() {
	let mut siv = Cursive::new();

	// Create a popup window with a "Ok" button that quits the application
	siv.add_layer(Dialog::new("Hello world!").button("Ok", |s, _| s.quit()));

	// Starts the event loop.
	siv.run();
}

A few notes :

  • The main focus point is not performance. This is a simple layout library, guys, not compiz piped into libcaca. Unless you are running it on your microwave's microcontroller, it's not going to be slow.
  • The library is single-threaded. Thus, callback methods are blocking - careful what you're doing in there! Feel free to use threads on your side, though.