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

#1981 in Network programming

Download history 5402/week @ 2024-11-21 5832/week @ 2024-11-28 5791/week @ 2024-12-05 6143/week @ 2024-12-12 5308/week @ 2024-12-19 5624/week @ 2024-12-26 8235/week @ 2025-01-02 7374/week @ 2025-01-09 6098/week @ 2025-01-16 8454/week @ 2025-01-23 12018/week @ 2025-01-30 21996/week @ 2025-02-06 27979/week @ 2025-02-13 16419/week @ 2025-02-20 16640/week @ 2025-02-27 17884/week @ 2025-03-06

82,160 downloads per month
Used in 14 crates (via openssh-sftp-client)

MIT license

120KB
2.5K SLoC

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

lib.rs:

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:

Dependencies

~4–10MB
~97K SLoC