#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

#1903 in Network programming

Download history 7660/week @ 2023-12-09 13236/week @ 2023-12-16 12707/week @ 2023-12-23 17943/week @ 2023-12-30 14716/week @ 2024-01-06 17322/week @ 2024-01-13 13468/week @ 2024-01-20 15454/week @ 2024-01-27 8256/week @ 2024-02-03 4077/week @ 2024-02-10 7965/week @ 2024-02-17 6420/week @ 2024-02-24 5229/week @ 2024-03-02 10199/week @ 2024-03-09 7619/week @ 2024-03-16 6414/week @ 2024-03-23

30,264 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