Releases: asciinema/avt
Releases · asciinema/avt
v0.9.0
v0.8.3
- added
Vt::builder()
for more flexible building of Vt with desired settings - collected cursor col/row/visible in proper Cursor struct
Previously:
let mut vt = Vt::new(80, 24);
vt.resizable(true);
// or
let mut vt = Vt::with_scrollback_limit(80, 24, Some(1000));
Now:
let mut vt = Vt::builder().size(80, 24).resizable(true).scrollback_limit(1000).build();
v0.8.2
- added pre-allocation of params vec for easy parsing speed increase
- refactored Vt - extracted parser and terminal from Vt, created
parser::Executor
trait - optimized Pen struct - uses bitmap for set of boolean attributes now
- reordered parser's branch decision code for most optimal (and common) input scenarios
- refactored benchmarks
- added example for conversion to plain text to examples/ directory
Above optimizations made vt.feed_str()
roughly 15% faster for typical output stream when compared to v0.8.1, and up to 70% faster when compared to v0.8.0.
criterion benchmark output:
marcin@stacja ~/S/r/a/avt (main)> cargo criterion --bench vt
Compiling avt v0.8.2 (/home/marcin/Sync/repos/asciinema/avt)
Finished bench [optimized] target(s) in 1.47s
Gnuplot not found, using plotters backend
feed mixed in bulk time: [7.5430 ms 7.5508 ms 7.5592 ms]
change: [-46.947% -46.386% -45.812%] (p = 0.00 < 0.05)
Performance has improved.
feed mixed in chunks time: [10.366 ms 10.377 ms 10.389 ms]
change: [-24.810% -24.309% -23.812%] (p = 0.00 < 0.05)
Performance has improved.
feed cacademo in bulk time: [7.2855 ms 7.3083 ms 7.3308 ms]
change: [-3.5582% -3.0732% -2.5738%] (p = 0.00 < 0.05)
Performance has improved.
feed cacademo in chunks time: [8.7286 ms 8.7468 ms 8.7652 ms]
change: [-4.5469% -4.2336% -3.9129%] (p = 0.00 < 0.05)
Performance has improved.
feed licenses in bulk time: [9.9353 ms 9.9457 ms 9.9600 ms]
change: [-69.408% -69.061% -68.712%] (p = 0.00 < 0.05)
Performance has improved.
feed licenses in chunks time: [17.706 ms 17.717 ms 17.728 ms]
change: [-50.115% -49.719% -49.312%] (p = 0.00 < 0.05)
Performance has improved.
feed licenses-lolcat in bulk
time: [5.1391 ms 5.1548 ms 5.1672 ms]
change: [-19.531% -19.145% -18.763%] (p = 0.00 < 0.05)
Performance has improved.
feed licenses-lolcat in chunks
time: [6.4648 ms 6.4864 ms 6.5072 ms]
change: [-11.768% -11.436% -11.098%] (p = 0.00 < 0.05)
Performance has improved.
v0.8.1
v0.8.0
- implemented proper scrollback (infinite, fixed size, or disabled)
- new
vt.text() -> Vec<String>
method for obtaining terminal text, including all history (scrollback) - greatly improved resizing behaviour - no more text truncation at the right edge
- RI CSI sequence is now confined to the scroll region (between top and bottom margins)
- vastly improved property test generators
- fixed crash in
vt.dump()
when cursor is outside of the scroll region and origin mode is enabled
v0.7.4
v0.7.3
v0.7.2
BS
(backspace) behavior is now consistent with Xterm, Gnome Terminal, Alacritty and Terminal.app- terminal is not resizable by default now, can be enabled via
vt.resizable = true
- added
chars()
andtext()
toLine
for getting line's text - more tests for various control sequences