Skip to content

aneoconsulting/rusftp

Repository files navigation

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

About

SFTP library based on russh

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages