https://github.com/timonpost/r3bl-cmdr
WIP: a TUI app suite for developers built in Rust
https://github.com/timonpost/r3bl-cmdr
Last synced: 6 months ago
JSON representation
WIP: a TUI app suite for developers built in Rust
- Host: GitHub
- URL: https://github.com/timonpost/r3bl-cmdr
- Owner: TimonPost
- License: apache-2.0
- Created: 2022-08-09T20:15:44.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-08-09T20:21:41.000Z (over 3 years ago)
- Last Synced: 2025-04-06T10:51:50.665Z (10 months ago)
- Homepage:
- Size: 232 KB
- Stars: 2
- Watchers: 0
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Context
R3BL
TUI
library
&
suite
of
apps
focused
on
developer
productivity
We are working on building command line apps in Rust which have rich text user interfaces (TUI). We
want to lean into the terminal as a place of productivity, and build all kinds of awesome apps for
it.
1. 🔮 Instead of just building one app, we are building a library to enable any kind of rich TUI
development w/ a twist: taking concepts that work really well for the frontend mobile and web
development world and re-imagining them for TUI & Rust.
- Taking things like React, JSX, CSS, and Redux, but making everything async (they can be run in
parallel & concurrent via Tokio).
- Even the thread running the main event loop doesn't block since it is async.
- Using proc macros to create DSLs to implement CSS & JSX.
2. 🌎 We are building apps to enhance developer productivity & workflows.
- The idea here is not to rebuild tmux in Rust (separate processes mux'd onto a single terminal
window). Rather it is to build a set of integrated "apps" (or "tasks") that run in the same
process that renders to one terminal window.
- Inside of this terminal window, we can implement things like "app" switching, routing, tiling
layout, stacking layout, etc. so that we can manage a lot of TUI apps (which are tightly
integrated) that are running in the same process, in the same window. So you can imagine that
all these "app"s have shared application state (that is in a Redux store). Each "app" may also
have its own Redux store.
- Here are some examples of the types of "app"s we want to build:
1. multi user text editors w/ syntax highlighting
2. integrations w/ github issues
3. integrations w/ calendar, email, contacts APIs
# About this binary crate: r3bl-cmdr
`r3bl-cmdr` is the second thing that's described above.
You can run it using `cargo run`.
This TUI (text user interface) app showcases the use of the `r3bl_rs_utils` crate. It contains quite
a few sample apps which are meant to be relevant use cases that are relevant for developer workflows
(who are remote, and work w/ teams).
# Contributing
This binary crate is being developed as a set of examples. The actual product will emerge as these
examples are evolved into features of the actual product, which is intended to be released to
developers.
Please read our [community contributing guidelines here](./CONTRIBUTING.md).