12 releases (6 breaking)
| 0.7.2 | Jul 14, 2025 |
|---|---|
| 0.7.1 | Nov 6, 2024 |
| 0.7.0 | Aug 10, 2024 |
| 0.6.0 | Nov 16, 2023 |
| 0.1.0 | Jul 9, 2022 |
#1595 in Network programming
61,484 downloads per month
Used in 15 crates
(via openssh-sftp-client)
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
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
~3.5–5MB
~85K SLoC