makeup

Crates.iomakeup
lib.rsmakeup
version0.0.8
sourcesrc
created_at2022-11-15 21:36:06.670872
updated_at2023-12-31 02:47:40.601012
descriptionStylish CLIs/TUIs for Rust!
homepage
repositoryhttps://github.com/queer/makeup
max_upload_size
id715961
size132,420
amy null (queer)

documentation

README

makeup

Pretty CLI / TUI interfaces.

MSRV 1.67.

READ ME FIRST

makeup is still early-stage!!! Treat it like the alpha project it is.

crates.io

Usage examples

See examples/!

Demos

cargo run --example wave

Setup

Install pre-commit.

pre-commit install
pre-commit autoupdate
cargo install cargo-audit

Features

  • 60fps by default.
  • Input and render are fully decoupled, ie input can NEVER block rendering.
  • Message-passing-like architecture
    • Components are updated and rendered asynchronously.
    • Components must not reference each other directly, but instead communicate via message passing.
    • Component updates are just reading the message queue from the mailbox, and updating the component's state accordingly. makeup assumes that any potentially-blocking task will be moved out of the update/render loop via tokio::spawn or similar, and managed via message-passing.
  • Render-backend-agnostic.
    • Render backends are async.
    • Default backends are memory and UNIX-compatible terminal.
    • Render backends can be implemented for other protocols!
      • Provided to the UI on instantiation.
      • Ideas: WASM + <canvas>? Multiplex over the network?
Commit count: 155

cargo fmt