mirror of
https://github.com/wez/wezterm.git
synced 2024-11-24 07:46:59 +03:00
693a717db2
I've been meaning to do this for a while; this commit moves the escape sequence parsing into the thread that reads the pty output which achieves two goals: * Large escape sequences (eg: image protocols) that span multiple 4k buffers can be processed without ping-ponging between the reader thread and the main gui thread * That parsing can happen in the reader thread, keeping the gui thread more responsive. These changes free up the CPU during intensive operations such as timg video playback. This is a slight layering violation, in that this processing really belongs to local pane (or any pane that embeds Terminal), rather than generically at the Mux layer, but it's not any worse a violation than `advance_bytes` already was. refs: https://github.com/wez/wezterm/issues/537 |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
README.md |
wezterm-term
This crate provides the core of the virtual terminal emulator implementation used by wezterm. The home for this crate is in the wezterm repo and development is tracked at https://github.com/wez/wezterm/.
It is full featured, providing terminal escape sequence parsing, keyboard and mouse input encoding, a model for the screen cells including scrollback, sixel and iTerm2 image support, OSC 8 Hyperlinks and a wide range of terminal cell attributes.
This crate does not provide any kind of gui, nor does it directly
manage a PTY; you provide a std::io::Write
implementation that
could connect to a PTY, and supply bytes to the model via the
advance_bytes
method.
The entrypoint to the crate is the Terminal struct.
License: MIT