v0.2.3

sxyazi/yaziv0.2.3Feb 7, 2024by github-actions[bot]

AI Summary

Optimizes directory loading speed by ~2.5x and adds support for previewing images over SSH. The plugin system gains support for arguments, state persistence, and key event listening.

Key Highlights

  • ~2.5x faster directory loading for large directories
  • SSH image preview support
  • Plugin improvements including arguments and state persistence

New Features

  • Bulk directory loading in background
  • SSH image preview
  • Plugin argument passing
  • Plugin state persistence
  • Plugin key event listening
  • image_quality and sixel_fraction configuration options

Full Release Notes

This version optimizes the loading speed for large directories - Yazi is now ~2.5 times faster than before. For a directory benchmark containing 500,000 files (See https://github.com/sxyazi/yazi/pull/599 for details):

```rust
eza -l took 19.03 seconds
ls -l took 10.99 seconds
yazi took 4.79 seconds
```

The release also adds support for previewing images over SSH, this allows you to preview images directly on your local terminal by running Yazi on a server, a highly anticipated new feature.

As for the plugin system, many improvements have been also made, such as supporting passing arguments, plugin-specific state persistence, and listening to key events in the plugin. During this period, we added a new [Resources page](https://yazi-rs.github.io/docs/resources/) that documents plugins contributed by the community. Thanks to the lovely plugin authors for creating and sharing these awesome plugins!

Lastly, some great news: Yazi has been featured on [The Linux Cast](https://www.youtube.com/watch?v=l44HjrTQHGc) - this is Yazi's first appearance in video format, and I am really excited and proud to see more and more people beginning to notice and take an interest in Yazi!

## What's Changed
* feat: customizing the number of columns of "which key" component by @sxyazi in https://github.com/sxyazi/yazi/pull/571
* fix: input offset is not reset when renaming with `--cursor=start` and the filename is too long by @sxyazi in https://github.com/sxyazi/yazi/pull/575
* feat: new `image_quality` and `sixel_fraction` options to allow users to configure the image preview quality by @sxyazi in https://github.com/sxyazi/yazi/pull/576
* feat: allow to configure image filter by @sxyazi in https://github.com/sxyazi/yazi/pull/586
* feat: support passing arguments to plugin by @sxyazi in https://github.com/sxyazi/yazi/pull/587
* feat: plugin-specific state persistence by @sxyazi in https://github.com/sxyazi/yazi/pull/590
* feat: preview image over SSH by @sxyazi in https://github.com/sxyazi/yazi/pull/585
* perf: read directory in bulk in the background at startup, make Yazi ~2.5 times faster than before by @sxyazi in https://github.com/sxyazi/yazi/pull/599
* refactor: use `Cmd` instead of `Exec` by @sxyazi in https://github.com/sxyazi/yazi/pull/604
* feat: support `unyank` by @15cm in https://github.com/sxyazi/yazi/pull/313
* feat: make `trash` crate optional on Android by @sxyazi in https://github.com/sxyazi/yazi/pull/600
* feat: plugin interface for key events via `ya.which()` by @sxyazi in https://github.com/sxyazi/yazi/pull/617
* feat: `app_emit` and `manager_emit` accepts boolean, integer, and number as option values by @sxyazi in https://github.com/sxyazi/yazi/pull/625
* fix: attach plugin `args` to the `entry` method for better future optimization possibilities by @sxyazi in https://github.com/sxyazi/yazi/pull/627
* feat: support char device in filetype by @HE7086 in https://github.com/sxyazi/yazi/pull/628
* fix: hidden attribute of files on Windows by @sxyazi in https://github.com/sxyazi/yazi/pull/632
* fix: task manager not re-rendering after progress update by @sxyazi in https://github.com/sxyazi/yazi/pull/633
* feat: if input is empty, close it on `backspace` command by @Rolv-Apneseth in https://github.com/sxyazi/yazi/pull/630

## New Contributors
* @HE7086 made their first contribution in https://github.com/sxyazi/yazi/pull/628

**Full Changelog**: https://github.com/sxyazi/yazi/compare/v0.2.2...v0.2.3