Merge pull request #3 from saona-raimundo/termion-dep

Updating Cargo.toml and README.md
This commit is contained in:
Jonathan Kelley 2022-01-16 16:40:03 -05:00 committed by GitHub
commit 8f10a012f2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 13 deletions

View file

@ -6,16 +6,14 @@ edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
tui = { version = "0.16.0", features = ["crossterm"] }
tui = { version = "0.16.0", features = ["crossterm"], default-features = false }
crossterm = "0.22.1"
anyhow = "1.0.42"
thiserror = "1.0.24"
# dioxus = { path = "../../dioxus" }
dioxus = { version = "0.1.7" }
dioxus = "0.1.7"
hecs = "0.7.3"
ctrlc = "3.2.1"
bumpalo = { version = "3.8.0", features = ["boxed"] }
# stretch2 = { path = "../../Tinkering/stretch2" }
tokio = { version = "1.15.0", features = ["full"] }
futures = "0.3.19"
stretch2 = { git = "https://github.com/DioxusLabs/stretch" }

View file

@ -4,12 +4,23 @@ The fastest portable TUIs in the west
🔫🤠🔫
🐎🔥🔥🔥
Rink lets you build terminal user interfaces in Rust with Dioxus.
Rink lets you build terminal user interfaces in Rust with [`Dioxus`](https://dioxuslabs.com/).
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.
You can use Html-like semantics with stylesheets, inline styles, tree hierarchy, components, and more in your [`text-based user interface (TUI)`](https://en.wikipedia.org/wiki/Text-based_user_interface) application.
Rink is basically a port of [Ink](https://github.com/vadimdemedes/ink) but for [`Rust`](https://www.rust-lang.org/) and [`Dioxus`](https://dioxuslabs.com/). Rink doesn't depend on Node.js or any other JavaScript runtime, so your binaries are portable and beautiful.
## Limitations
- **Subset of Html**
Terminals can only render a subset of HTML. We support as much as we can.
- **Particular frontend design**
Terminals and browsers are and look different. Therefore, the same design might not be the best to cover both renderers.
## Example
Let's print `Hello world!` in the center of the screen.
```rust
static App: FC<()> = |cx| {
cx.render(rsx!{
div {
@ -28,12 +39,9 @@ static App: FC<()> = |cx| {
![demo app](examples/example.png)
Rink is basically a port of [Ink](https://github.com/vadimdemedes/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!
**WARNING: 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.
@ -42,9 +50,12 @@ Rendering a VirtualDom works fine, but the ecosystem of hooks is not yet ready.
Rink features:
- [x] Flexbox based layout system
- [ ] CSS selectors
- [x] inline css support
- [x] inline CSS support
- [ ] Built-in focusing system
- [ ] high-quality keyboard support
- [ ] Support for events, hooks, and callbacks
* [ ] Html tags<sup>1</sup>
<sup>1</sup> 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.
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.