6 releases

0.2.0-beta-3 Apr 10, 2024
0.2.0-beta-2 Apr 9, 2024
0.1.1 Mar 30, 2024
0.1.0 Feb 20, 2024

#5 in #ssh2

Download history 73/week @ 2024-02-14 53/week @ 2024-02-21 24/week @ 2024-02-28 42/week @ 2024-03-06 8/week @ 2024-03-13 251/week @ 2024-03-27 149/week @ 2024-04-03 140/week @ 2024-04-10

540 downloads per month

Apache-2.0

215KB
4K SLoC

RUSFTP

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–22MB
~312K SLoC