mirror of
https://github.com/wez/wezterm.git
synced 2024-12-24 05:42:03 +03:00
6c2f9f2d18
A while back I made the line lengths lazily grown; the reduction in memory was nice, and it helped with render performance for really wide screens. Unfortunately, it puts a bunch of reallocation into the hot path of the parser and updating the terminal model when people run the inevitable `cat giant-file.txt` benchmark. This commit reinstates pre-allocating lines to match the physical terminal width, and tweaks the code a bit to take advantage of const Cell allocation and to avoid some clones (a really micro optimization). |
||
---|---|---|
.. | ||
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