I think it is a really good idea to separate vt100 emulation "backend" from the UI. Then all terminal emulators could use a common implementation and just focus on displaying the text, instead of emulating quirks of 50-year old devices. Using JSON as RPC also seems like a good idea, especially when SSH-ing in, as the language server protocol has shown. That being said, I don't see this project doing anything (yet?) a…
* https://lib.rs/gh/wez/wezterm/wezterm / https://crates.io/crates/termwiz
(Projects that build on this crate includes "ratatui" among others...)
In particular, I note at least these specific feature areas:
* "support functions for applications interested in either displaying data to a terminal or in building a terminal emulator": https://lib.rs/crates/termwiz
* "to help with parsing input received from a terminal": https://docs.rs/termwiz/latest/termwiz/input/index.html
* "Model a cell in the terminal display": https://docs.rs/termwiz/latest/termwiz/cell/index.html
* "parse escape sequences and attach semantic meaning": https://docs.rs/termwiz/latest/termwiz/escape/index.html
* "abstraction over a terminal device": https://docs.rs/termwiz/latest/termwiz/terminal/index.html
* https://docs.rs/termwiz/latest/termwiz/color/index.html
* "cross platform API for working with the psuedo terminal (pty) interfaces": https://lib.rs/crates/portable-pty
* "Low level escape sequence parser": https://lib.rs/crates/vtparse
So, seems like quite a lot there to help avoid re-inventing the wheel for terminal-related functionality (for andyk/ku1ik & others).