Table of contents
⚙️ This library crate is in service of the apps being built in the r3bl-cmdr crate / project.
While the maintainers might currently prioritize working on features, we are open to ideas and
contributions by people and projects interested in using r3bl_rs_utils
or r3bl-cmdr
for other
projects. Please feel free to:
- Open an issue.
- Chat with us on the r3bl discord in the dedicated
#r3bl_rs_utils
channel.
If you want to get started, check out the list of issues with the "good first issue" label.
You can also browse the more information TODOs in TODO.todo which haven't been turned into issues yet.
Please follow the Rust Code of Conduct all the way through!
The learning path below will help you get started. These emoji below will give you a sense how important the related information is to using the R3BL codebase.
Command | Description |
---|---|
🍌 | Nice to know it exists |
🍌🍌 | Have a high level understanding of |
🍌🍌🍌 | Working knowledge |
🍌🍌🍌🍌 | Critical - deep understanding & hands on exercises |
- 🍌🍌🍌🍌 A really good first step is taking a look at
crossterm
crate.- It is small and relatively straight forward to understand. This will give you good exposure to the underlying terminal stuff.
- Here's a link to the repo's examples. Clone it, and play w/ some of these examples to make some changes and run them in your favorite terminal.
- 🍌🍌 Here's some documentation w/ lots of background information on terminals, PTY, TTY, etc.
- 🍌🍌🍌 A great starting point is the redux section.
- 🍌🍌🍌🍌 This repo is
a good one to start working on first.
- This app was intended to be a pedagogical example.
- This repo is for a simple address book CLI app that does NOT have TUI support. But it does have Redux support. So you don't have to learn both at the same time.
- Check out how Redux functions here. How things work in an async manner (middlewares, etc). Run
the code using
cargo run
, and make some changes and run it again.
-
🍌🍌🍌🍌 A great starting point is this tui section.
-
🍌🍌🍌🍌 Here's a repo that is a good one to start working on first.
- The mission is to convert it to have support for the TUI library. This will give you a solid on how to build TUIs.
Here are some resources to learn more about the project itself:
This is no different than other Rust projects.
git clone https://github.com/r3bl-org/r3bl-cmdr
cd r3bl-cmdr
# To try our example program
cargo run
We follow the standard Rust formatting style and conventions suggested by clippy.
Before submitting a PR make sure to run:
-
for formatting (a
rustfmt.toml
file is provided):cargo fmt --all
-
the clippy lints
cargo clippy
-
the test suite
cargo test