9 unstable releases

0.6.2 Aug 2, 2022
0.6.1 Apr 7, 2022
0.6.0 Dec 22, 2021
0.5.0 Apr 14, 2021
0.1.0 Jun 30, 2019

#169 in Command-line interface

Download history 11613/week @ 2024-08-08 11373/week @ 2024-08-15 11686/week @ 2024-08-22 10919/week @ 2024-08-29 11701/week @ 2024-09-05 14473/week @ 2024-09-12 11371/week @ 2024-09-19 15905/week @ 2024-09-26 14905/week @ 2024-10-03 13656/week @ 2024-10-10 11609/week @ 2024-10-17 13074/week @ 2024-10-24 14098/week @ 2024-10-31 19379/week @ 2024-11-07 20366/week @ 2024-11-14 13393/week @ 2024-11-21

70,161 downloads per month
Used in 43 crates (via termwiz)

MIT license

53KB
1K SLoC

vtparse

This is an implementation of a parser for escape and control sequences. It is based on the DEC ANSI Parser.

It has been modified slightly to support UTF-8 sequences.

vtparse is the lowest level parser; it categorizes the basic types of sequences but does not ascribe any semantic meaning to them.

You may wish to look at termwiz::escape::parser::Parser in the termwiz crate if you're looking for semantic parsing.

Comparison with the vte crate

vtparse has support for dynamically sized OSC buffers, which makes it suitable for processing large escape sequences, such as those used by the iTerm2 image protocol.


lib.rs:

An implementation of the state machine described by DEC ANSI Parser, modified to support UTF-8.

This is sufficient to broadly categorize ANSI/ECMA-48 escape sequences that are commonly used in terminal emulators. It does not ascribe semantic meaning to those escape sequences; for example, if you wish to parse the SGR sequence that makes text bold, you will need to know which codes correspond to bold in your implementation of VTActor.

You may wish to use termwiz::escape::parser::Parser in the termwiz crate if you don't want to have to research all those possible escape sequences for yourself.

Dependencies

~14KB