# Tui-term Examples
In this folder you find examples for using `tui-term`.
To run the `simple_ls_rw` example:
```sh
cargo run --example simple_ls_rw
```
> [!NOTE]
> The examples provided here are simplified and may omit proper error handling and edge cases for brevity and clarity. They are intended to demonstrate specific features and concepts related to `tui-term`.
## `simple_ls_chan`
- Required: `ls`
Uses a channel to share data.
It demonstrates how to send messages from one thread to another to update the `PseudoTerminal` widget.
## `simple_ls_rw`
- Required: `ls`
Uses a `RWLock` to manage shared read/write access.
The RWLock ensures that multiple threads can read from the pseudoterminal simultaneously, while exclusive write access is granted to only one thread at a time.
## `simple_ls_controller`
- Required: `ls`
Uses the tui-term's controller to handle the command lifecycle.
This feature is gated behind the `unstable` flag.
Run it with:
```sh
cargo run --example simple_ls_controller --features unstable
```
## `nested_shell`
- Description: Demonstrates nested shell functionality.
- Uses a RWLock to manage shared read/write access.
## `nested_shell_async`
- Description: Demonstrates nested shell functionality with asynchronous I/O using Tokio.
- Uses an RWLock to manage shared read/write access.
## `long_running`
- Required: `top` command
- Description: Displays the output of the `top` command, which makes usage of the alternate screen.
## `smux`
- Description: This example demonstrates a simple terminal multiplexer.
- Uses: asynchronous I/O using Tokio