#ssh #multiplex #async #network #sftp

openssh-sftp-client-lowlevel

Lowlevel utilities to communicate with openssh sftp server

9 releases (5 breaking)

new 0.6.0 Nov 16, 2023
0.5.1 May 17, 2023
0.4.1 Mar 15, 2023
0.4.0 Oct 23, 2022
0.1.0 Jul 9, 2022

#758 in Network programming

Download history 1244/week @ 2023-07-28 1672/week @ 2023-08-04 822/week @ 2023-08-11 1377/week @ 2023-08-18 1803/week @ 2023-08-25 1193/week @ 2023-09-01 1753/week @ 2023-09-08 2236/week @ 2023-09-15 1766/week @ 2023-09-22 859/week @ 2023-09-29 2000/week @ 2023-10-06 9580/week @ 2023-10-13 7702/week @ 2023-10-20 14294/week @ 2023-10-27 19405/week @ 2023-11-03 11442/week @ 2023-11-10

53,289 downloads per month
Used in 5 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 accodring 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

./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–11MB
~109K SLoC