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