https://github.com/queer/makeup
Stylish CLIs/TUIs for Rust!
https://github.com/queer/makeup
Last synced: 11 months ago
JSON representation
Stylish CLIs/TUIs for Rust!
- Host: GitHub
- URL: https://github.com/queer/makeup
- Owner: queer
- License: mit
- Created: 2022-11-12T08:14:16.000Z (over 3 years ago)
- Default Branch: mistress
- Last Pushed: 2024-10-24T12:53:45.000Z (over 1 year ago)
- Last Synced: 2025-07-19T06:51:22.076Z (11 months ago)
- Language: Rust
- Homepage:
- Size: 447 KB
- Stars: 51
- Watchers: 5
- Forks: 1
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# makeup
Pretty CLI / TUI interfaces.
MSRV 1.70.
## READ ME FIRST
makeup is still early-stage!!! Treat it like the alpha project it is.
[crates.io](https://crates.io/crates/makeup)
### Usage examples
See [`examples/`](https://github.com/queer/makeup/tree/mistress/makeup/examples)!
### Demos
`cargo run --example wave`
## Setup
Install [pre-commit](https://pre-commit.com/).
```bash
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 + ``? Multiplex over the network?