pancurses is a curses libary for Rust that supports both Linux and Windows by abstracting away the backend that it uses (ncurses-rs and pdcurses-sys respectively).
The aim is to provide a more Rustic interface over the usual curses functions for ease of use while remaining close enough to curses to make porting easy.
ncurses-rs links with the native ncurses library so that needs to be installed so that the linker can find it.
Check ncurses-rs for more details.
pdcurses-sys compiles the native PDCurses library as part of the build process, so you need to have a compatible C compiler available that matches the ABI of the version of Rust you're using (so either gcc for the GNU ABI or cl for MSVC)
Check pdcurses-sys for more details.
Cargo.toml
toml
[dependencies]
pancurses = "0.10"
main.rs ```rust extern crate pancurses;
use pancurses::{initscr, endwin};
fn main() { let window = initscr(); window.printw("Hello Rust"); window.refresh(); window.getch(); endwin(); } ```
```rust extern crate pancurses;
use pancurses::{initscr, endwin, Input, noecho};
fn main() { let window = initscr(); window.printw("Type things, press delete to quit\n"); window.refresh(); window.keypad(true); noecho(); loop { match window.getch() { Some(Input::Character(c)) => { window.addch(c); }, Some(Input::KeyDC) => break, Some(input) => { window.addstr(&format!("{:?}", input)); }, None => () } } endwin(); } ```
Licensed under the MIT license, see LICENSE.md