7 releases

new 0.2.0 May 25, 2024
0.2.0-beta-3 Apr 10, 2024
0.1.1 Mar 30, 2024
0.1.0 Feb 20, 2024

#5 in #ssh2

Download history 121/week @ 2024-02-19 23/week @ 2024-02-26 46/week @ 2024-03-04 10/week @ 2024-03-11 179/week @ 2024-03-25 160/week @ 2024-04-01 200/week @ 2024-04-08 1/week @ 2024-04-15 159/week @ 2024-05-20

159 downloads per month

Apache-2.0

220KB
4K SLoC

RUSFTP

Crates.io License Crates.io Version docs.rs

This is a SFTP implmentation based on russh.

Links:

Rationale

Why another SFTP library?

When I started to work on this project, there were no pure Rust async SFTP client library.

Design principles

rusftp is designed using the following principles:

  • No panics
  • No locking
  • Shared client
  • User facing types have no dependent lifetimes
  • Futures are Send + Sync + 'static
  • Futures are eager

So you can take a SftpClient, clone it, and use it behind a shared referenced. You can start multiple SFTP requests concurrently, even from multiple threads.

Features

  • Client

    • Concurrent requests
    • Cloneable SftpClient and File
    • File (tokio::io abstraction)
    • Dir (futures::stream abstraction)
    • All supported requests and messages
    • Path abstraction
    • Support for well known SFTP extensions
    • User defined extensions
    • Support for direct Byte stream (ie: no russh)
  • Server

  • Protocol Version

    • version 3
    • version 4
    • version 5
    • version 6

Dependencies

~11–25MB
~324K SLoC