This is a very thin wrapper around the ncurses TUI lib.
NOTE: The ncurses lib is terribly unsafe and ncurses-rs is only the lightest wrapper it can be. If you want a safe and idiomatic TUI library for Rust, look elsewhere. If you want a 1:1 port of C to Rust or you want to crank a TUI out C-style in Rust, this will probably do the trick.
The compiled library will go to the target
directory.
cargo build
Note that you must to have the ncurses library installed and linkable for ncurses-rs to work. On Linux, this should be trivial. On OS X, consider installing ncurses using Homebrew. (Note that you have to force Homebrew to link the library to /usr/local/lib
: brew link --force ncurses
and set that path to
LIBRARY_PATH
environmental variable.)
Examples are built by cargo build
. To run them, use cargo run --example ex_<NUMBER>
. Example numbers increase along with the complexity of the example.
Current examples:
1. Hello World
2. Basic Input & Attributes
3. Simple Pager
4. Window Movement
5. Menu Library (requires rust nightly)
6. Pager & Syntax Highlighting
7. Basic Input & Attributes (Unicode)
8. Special ACS Characters
Some environment variables are read by build.rs
:
If set, NCURSES_RS_RUSTC_LINK_LIB
will be used for NCURSES_RS_RUSTC_LINK_LIB
.
If set, NCURSES_RS_RUSTC_FLAGS
will be used for cargo:rustc-flags
.
If set, NCURSES_RS_CFLAGS
will be used for the compilation of the test program chtype_size.c
.