1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-24 05:42:03 +03:00
wezterm/term
Wez Furlong 6c2f9f2d18 term: restore line length pre-allocation
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).
2021-08-11 23:06:17 -07:00
..
src term: restore line length pre-allocation 2021-08-11 23:06:17 -07:00
Cargo.toml basic kitty img animation support 2021-08-02 21:35:57 -07:00
README.md term: rename crate to wezterm-term in advance of publishing 2020-06-13 09:55:16 -07:00

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