Finding a readline library with timeout and full duplex mode

I am writing a terminal application that uses a basic REPL, and now want to replace stdin().lines().next() by a readline library.
However, I am struggling to find something that fulfills my requirements.
I am also open to utilize a combination e.g. with tokio.

Apart from standard readline features (history, editing the current line) with maybe a bonus of custom completion and highlighting like in reedline, this is primarily what I am looking for:

"Support for a concurrent output stream from background tasks to be displayed, while the input prompt is active. (“Full duplex” mode)"

As described in reedline - Rust and implemented in the many-year old rustyline fork GitHub - xeruf/rustylinez: Readline Implementation in Rust with support of concurrent printing to stdout

I have threads running in the background that sometimes send messages via colog which should just nicely seep through the prompt rather than awkwardly interfering.

Timeout when reading for an input line

As implemented in the unmaintained linefeed library: https://docs.rs/linefeed/0.5.4/linefeed/reader/struct.Reader.html#method.read_line_step

There is ExternalPrinter for rustyline but no timeout support...

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.