 
					As part of my work on factorio-bot I created a Library to help you create a fancy REPL for your application based on nushell’s reedline.
Features:
- Popular clap crate Command used as configuration interface
- General editing functionality, that should feel familiar coming from other shells (e.g. bash, fish, zsh).
- Interactive tab-completion with graphical selection menu
- Fish-style history autosuggestion hints
- History with interactive search options (optionally persists to file, can support multiple sessions accessing the same file)
- Configurable keybindings (default emacs-style bindings).
- Configurable prompt with hooks to update after commands run
- Command Syntax highlighting
- Feature-flag for async support
- Tip: Search history with CTRL+R, clear input withCTRL+C, exit repl withCTRL+D
Basic example code:
//! Minimal example
use reedline_repl_rs::clap::{Arg, ArgMatches, Command};
use reedline_repl_rs::{Repl, Result};
/// Write "Hello" with given name
fn hello<T>(args: ArgMatches, _context: &mut T) -> Result<Option<String>> {
    Ok(Some(format!(
        "Hello, {}",
        args.get_one::<String>("who").unwrap()
    )))
}
fn main() -> Result<()> {
    let mut repl = Repl::new(())
        .with_name("MyApp")
        .with_version("v0.1.0")
        .with_description("My very cool app")
        .with_banner("Welcome to MyApp")
        .with_command(
            Command::new("hello")
                .arg(Arg::new("who").required(true))
                .about("Greetings!"),
            hello,
        );
    repl.run()
}Running the example above:
Welcome to MyApp
MyApp〉help
MyApp v0.1.0: My very cool app
COMMANDS:
    hello    Greetings!
    help     Print this message or the help of the given subcommand(s)
MyApp〉help hello
hello
Greetings!
USAGE:
    hello <who>
ARGS:
    <who>
OPTIONS:
    -h, --help    Print help information
MyApp〉hello Friend
Hello, Friend
MyApp〉Thanks
Forked from repl-rs by Jacklund, changed to use reedline which is an advanced readline clone and the base of nushell.