Rink

A beautiful terminal user interfaces library in Rust.

Crates.io version Download docs.rs docs CI status Discord Link


Leverage CSS, HTML, and Rust to build beautiful, portable, terminal user interfaces. Rink is the cross-framework library that powers Dioxus-TUI

demo app

Background

You can use Html-like semantics with inline styles, tree hierarchy, components, and more in your text-based user interface (TUI) application.

Rink is essentially a port of Ink but for Rust. Rink doesn't depend on Node.js or any other JavaScript runtime, so your binaries are portable and beautiful.

Limitations

Status

WARNING: Rink is currently under construction!

Rendering a Dom works fine, but the ecosystem of widgets is not ready yet. Additionally, some bugs in the flexbox implementation might be quirky at times.

Features

Rink features:

1 Basic keyboard, mouse, and focus events are implemented. 2 Currently, most HTML tags don't translate into any meaning inside of Rink. So an input element won't mean anything nor does it have any additional functionality.