This is a SFTP implmentation based on russh.
Links:
Why another SFTP library?
When I started to work on this project, there were no pure Rust async SFTP client library.
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.
-
Client
- Concurrent requests
- Cloneable
SftpClient
andFile
- 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