#tty #terminal-io #readable #writable #pronounced #trx #t-rex

terminal-trx

Provides a handle to the terminal of the current process

6 releases

0.2.4 Jan 24, 2025
0.2.3 Aug 22, 2024
0.2.2 Jul 31, 2024
0.2.1 Jun 7, 2024
0.1.0 Jan 20, 2024

#151 in Command-line interface

Download history 1533/week @ 2024-12-01 1008/week @ 2024-12-08 665/week @ 2024-12-15 702/week @ 2024-12-22 1735/week @ 2024-12-29 7366/week @ 2025-01-05 9029/week @ 2025-01-12 7016/week @ 2025-01-19 7765/week @ 2025-01-26 7562/week @ 2025-02-02 10407/week @ 2025-02-09 9015/week @ 2025-02-16 9601/week @ 2025-02-23 11146/week @ 2025-03-02 14066/week @ 2025-03-09 16534/week @ 2025-03-16

52,422 downloads per month
Used in 17 crates (via terminal-colorsaurus)

MIT/Apache

44KB
910 lines

terminal-trx

Docs Crate Version

Pronounced: Terminal T-Rex 🦖

Provides a handle to the terminal of the current process that is both readable and writable.

Example

use terminal_trx::terminal;
use std::io::{BufReader, BufRead as _, Write as _};

let mut terminal = terminal().unwrap();

write!(terminal, "hello world").unwrap();

let mut reader = BufReader::new(&mut terminal);
let mut line = String::new();
reader.read_line(&mut line).unwrap();

Docs

Wishlist

These are some features that I would like to include in this crate, but have not yet had the time to implement. Anyone is welcome to create a PR :)

  • Add integration tests.
  • Share the Terminal instance (like stdout, stderr, stdin in the standard library do). (Is this a good idea?)
  • Support enabling raw mode on MSYS/Cygwin.

Inspiration

This crate draws inspiration from many great resources, such as:

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions

Dependencies

~0–8.5MB
~55K SLoC