#sftp #ssh #async #multiplex #networking #api-bindings

openssh-sftp-client-lowlevel

Lowlevel utilities to communicate with openssh sftp server

9 releases (5 breaking)

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

#1923 in Network programming

Download history 17227/week @ 2024-01-03 14364/week @ 2024-01-10 17162/week @ 2024-01-17 13561/week @ 2024-01-24 13284/week @ 2024-01-31 3616/week @ 2024-02-07 7759/week @ 2024-02-14 5859/week @ 2024-02-21 6969/week @ 2024-02-28 7342/week @ 2024-03-06 7546/week @ 2024-03-13 9064/week @ 2024-03-20 5734/week @ 2024-03-27 6771/week @ 2024-04-03 11024/week @ 2024-04-10 5516/week @ 2024-04-17

30,782 downloads per month
Used in 7 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–12MB
~99K SLoC