rusftp

Crates.iorusftp
lib.rsrusftp
version0.2.1
sourcesrc
created_at2024-02-20 14:36:56.95947
updated_at2024-07-21 19:53:22.026108
descriptionSFTP library based on russh
homepage
repositoryhttps://github.com/aneoconsulting/rusftp
max_upload_size
id1146461
size278,175
mlebaud@aneo.fr (mlebaud)

documentation

README

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
Commit count: 85

cargo fmt