11 releases (6 breaking)

0.7.1 Nov 6, 2024
0.6.0 Nov 16, 2023
0.5.1 May 17, 2023
0.4.1 Mar 15, 2023
0.1.0 Jul 9, 2022

#1552 in Network programming

Download history 6305/week @ 2024-12-25 7026/week @ 2025-01-01 7062/week @ 2025-01-08 7291/week @ 2025-01-15 8198/week @ 2025-01-22 7326/week @ 2025-01-29 24592/week @ 2025-02-05 26287/week @ 2025-02-12 19277/week @ 2025-02-19 17726/week @ 2025-02-26 15492/week @ 2025-03-05 23546/week @ 2025-03-12 19395/week @ 2025-03-19 16702/week @ 2025-03-26 12688/week @ 2025-04-02 13303/week @ 2025-04-09

71,041 downloads per month
Used in 14 crates (via openssh-sftp-client)

MIT license

120KB
2.5K SLoC

This crate provides a set of APIs to access the remote filesystem using the sftp protocol and is implemented in pure Rust.

It supports sending multiple requests concurrently using WriteEnd (it can be WriteEnd::cloned), however receiving responses have to be done sequentially using ReadEnd::read_in_one_packet.

To create WriteEnd and ReadEnd, simply pass the stdin and stdout of the sftp-server launched at remote to connect.

This crate supports all operations supported by sftp v3, in additional to the following extensions:


openssh-sftp-client

Rust

crate.io downloads

crate.io version

docs

openssh-sftp-client, implements sftp v3 according to openssh-portable/sftp-client.c in rust using tokio and serde.

It exposes highlevel async APIs that models closely after std::fs that are easy to use.

Extensions

This crate support the following extensions:

  • limits
  • expand path
  • fsync
  • hardlink
  • posix rename
  • copy-data

How to run tests

For macOS, please install latest rsync from homebrew.

./run_tests.sh

Dependencies

~4–10MB
~96K SLoC