yazi/yazi-sftp
2025-12-29 08:21:43 +08:00
..
src feat: new fs.copy() and fs.rename() APIs (#3467) 2025-12-27 17:52:15 +08:00
Cargo.toml chore: bump version to 25.12.29 (#3471) 2025-12-29 08:21:43 +08:00
LICENSE feat: new yazi-sftp crate (#3166) 2025-09-14 02:50:28 +08:00
README.md fix: force Git checkout for plugin cache repositories (#3169) 2025-09-14 19:42:30 +08:00

yazi-sftp

A fork of russh-sftp used by Yazi, with some changes:

  • Supports paths containing invalid UTF-8
  • Supports retrieving file nlink, username, and group
  • Uses generic return parameters for a more idiomatic API, e.g.:
    let attrs: responses::Attrs = session.send(requests::Stat::new(path)).await?
    
  • Reduced dependencies
  • Performance optimizations:
    • Copy-on-write for all packets to avoid unnecessary memory allocation
    • Packet lengths are precomputed to avoid secondary allocations
    • Avoids cloning buffers in AsyncRead and AsyncWrite implementations