27 unstable releases
new 0.14.1 | Jan 12, 2025 |
---|---|
0.13.1 | Jan 2, 2025 |
0.13.0 | Nov 17, 2023 |
0.11.1 | May 23, 2023 |
0.1.2 | Sep 19, 2016 |
#28 in Parser implementations
572,349 downloads per month
Used in 918 crates
(48 directly)
150KB
3K
SLoC
vte
Parser for implementing virtual terminal emulators in Rust.
The parser is implemented according to Paul Williams' ANSI parser state
machine. The state machine doesn't assign meaning to the parsed data and is
thus not itself sufficient for writing a terminal emulator. Instead, it is
expected that an implementation of the Perform
trait which does something
useful with the parsed data. The Parser
handles the book keeping, and the
Perform
gets to simply handle actions.
See the docs for more info.
lib.rs
:
Parser for implementing virtual terminal emulators
Parser
is implemented according to Paul Williams' ANSI parser state
machine. The state machine doesn't assign meaning to the parsed data and is
thus not itself sufficient for writing a terminal emulator. Instead, it is
expected that an implementation of Perform
is provided which does
something useful with the parsed data. The Parser
handles the book
keeping, and the Perform
gets to simply handle actions.
Examples
For an example of using the Parser
please see the examples folder. The
example included there simply logs all the actions Perform
does. One
quick way to see it in action is to pipe printf
into it
printf '\x1b[31mExample' | cargo run --example parselog
Differences from original state machine description
- UTF-8 Support for Input
- OSC Strings can be terminated by 0x07
- Only supports 7-bit codes
Dependencies
~120–530KB