sanguine 0.1.0-dev-r2

A library for creating dynamic TUI experiences in Rust
Documentation

sanguine

Create dynamic, performant TUI applications in Rust.

Built on top of Termwiz' BufferedTerminal.

Note Sanguine is not quite ready for use. You can run the demo example if you want to try it out.

Goals:

  • Floating windows
    • Render optimizations
  • Horizontal and vertical splits
  • Global keyboard events
  • Extensible widget trait
  • Conventient layout primitives
  • Focus
  • Focused-widget keyboard events
  • Mouse events

Demo

Watch in fullscreen, the lines don't render properly in a small viewport.

FloatingDemo.webm

Demo usage


$ git clone git@github.com:willothy/sanguine.git

$ cd sanguine

$ cargo run --example demo

Demo keymaps:

  • <C-q>: quit
  • <Tab>: switch layout (not working with new UI manager yet)
  • <Shift-Tab>: switch current float
  • <Up>: move the current float up
  • <Down>: move the current float down
  • <Left>: move the current float left
  • <Right>: move the current float right
  • <Shift-Up>: resize the current float
  • <Shift-Down>: resize the current float
  • <Shift-Left>: resize the current float
  • <Shift-Right>: resize the current float