Sin descripción

Jonathan Kelley 0c4088c2d1 Merge pull request #1 from aminya/patch-1 hace 3 años
.vscode dc34805ee6 feat: wire up stretch into place hace 3 años
examples c884f8c1b8 feat: add full async suport hace 3 años
src c884f8c1b8 feat: add full async suport hace 3 años
tests dc34805ee6 feat: wire up stretch into place hace 3 años
.gitignore e3171e8303 wip: first pass hace 4 años
Cargo.toml c884f8c1b8 feat: add full async suport hace 3 años
README.md 1dbe244bbe Fix Ink link hace 3 años
test.html 7b29fbbad0 wip: add an image hace 3 años

README.md

Rink: Like "Ink" but for Rust and Dioxus

The fastest portable TUIs in the west 🔫🤠🔫 🐎🔥🔥🔥

Rink lets you build terminal user interfaces in Rust with Dioxus.

You can use html-esque semantics with stylesheets, inline styles, tree hierarchy, components, etc, but your Tui app is probably not going to work well or look good in the web. It still technically is a limited subset of HTML, so use at your own risk.


static App: FC<()> = |cx| {
    cx.render(rsx!{
        div { 
            width: "100%", 
            height: "10px",
            background_color: "red",
            justify_content: "center",
            align_items: "center",

            "Hello world!"
        }
    })
}

demo app

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

Status

Rink is currently under construction!

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

Features

Rink features:

  • Flexbox based layout system
  • CSS selectors
  • inline css support
  • Built-in focusing system
  • high-quality keyboard support
  • Support for events, hooks, and callbacks

Currently, HTML tags don't translate into any meaning inside of rink. So an input won't really mean anything nor does it have any additional functionality.