Skip to content

Backends

Isaac A edited this page Apr 28, 2019 · 16 revisions

To actually interface with the terminal, Cursive uses a backend library. While this currently defaults to ncurses-rs, a few other backends are available and can be enabled with cargo features.

Available backends

blt-backend: uses the cross-platform BearLibTerminal.rs binding. Works on Linux and Windows.

Note: BearLibTerminal is a graphical application emulating a terminal. There is an [archlinux package](https://aur.archlinux.org/packages/bearlibterminal-hg/), or you can [download a release](https://github.com/nabijaczleweli/BearLibTerminal.rs/releases).

Select a backend

To use a different backend, you will have to disable the default features and enable the desired backend feature.

To run an example from the cursive source code, you can run:

cargo run -v --no-default-features --features pancurses-backend --example select

To select a specific backend in your application:

# Cargo.toml

[dependencies.cursive]
version = "0.11"
default-features = false
features = ["blt-backend"]

Or you can leave the choice to compilation time, forwarding cursive's features to your own application:

# Cargo.toml

[dependencies.cursive]
version = "0.11"
default-features = false

[features]
default = ["ncurses-backend"]
ncurses-backend = ["cursive/ncurses-backend"]
pancurses-backend = ["cursive/pancurses-backend"]
termion-backend = ["cursive/termion-backend"]
crossterm-backend = ["cursive/crossterm-backend"]
blt-backend = ["cursive/blt-backend"]

Linking with BearLibTerminal.lib on Windows

You need BearLibTerminal.lib file (to be downloaded on BearLibTerminal homepage) and copy it to

C:\Users\{Your Username}.multirust\toolchains\{current toolchain}\lib\rustlib\{current toolchain}\lib
You can’t perform that action at this time.