SuppaFTP is an FTP and FTPS client library for Rust. It provides both synchronous and asynchronous interfaces and is intended to offer a broad implementation of FTP functionality for applications that need to communicate with FTP servers.
The project is not limited to use as a library. It also includes a command-line FTP client that exposes FTP and FTPS operations from the terminal, making the project useful as both a development component and a standalone transfer tool.
SuppaFTP supports a choice of TLS implementations rather than locking applications to a single stack. Its asynchronous API can likewise be used with different Rust runtimes.
This is free and open source software.
Key Features
- FTP and FTPS client support.
- Synchronous API for conventional Rust applications.
- Asynchronous APIs using Tokio or smol.
- Both passive and active FTP transfer modes.
- Choice of native-tls or rustls for TLS connections.
- Stream-oriented upload and download APIs.
- TransferStream abstraction for managing transfer completion and cleanup.
- Supports FTP commands including ABOR, APPE, REST, EPSV and EPRT.
- Built-in parser for Unix-style and DOS-style LIST output.
- Helpers for retrieving server welcome messages.
- Implements FTP feature negotiation.
- Implements extended passive and active mode support.
- Extensive error handling and automated test coverage.
- Can avoid mandatory C library bindings when using rustls.
- Ships with the separate suppaftp command-line client.
- The CLI can connect to both ordinary FTP and TLS-protected FTP servers.
Website: github.com/veeso/suppaftp
Support:
Developer: Christian Visintin
License: MIT License or Apache License 2.0

SuppaFTP is written in Rust. Learn Rust with our recommended free books and free tutorials.
Related Software
| Command-line FTP Clients | |
|---|---|
| NcFTP | Popular console based user interface File Transfer Protocol (FTP) client program |
| LFTP | Mature open source file retrieving tool |
| termscp | Feature rich terminal file transfer and explorer, with support for SCP/SFTP/FTP/S3 |
| Rclone | Command-line tool for syncing files with cloud storage |
| SuppaFTP | FTP/FTPS client library and built-in command-line FTP client |
| tnftp | Based on the original BSD FTP client |
| cbftp | Advanced, multi-purpose client that focuses on efficient large-scale data spreading |
| lssh | List-based ssh, scp, sftp client |
| lazyftp | Keyboard-driven terminal client for managing FTP transfers |
| atftp | Client/server implementation of the TFTP protocol |
Read our verdict in the software roundup.
LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more. Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion. Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README. |


Please read our Comment Policy before commenting.