A portable C++ FTP/SFTP client library wrapping libcurl for easy file transfer operations.
FTPClient-C++ is a C++ library that provides a portable and easy-to-use API for performing FTP and SFTP operations. It wraps libcurl to handle file transfers, directory management, and remote file operations, solving the need for a simple C++ client without low-level protocol implementation.
C++ developers who need to integrate FTP or SFTP file transfer capabilities into their applications, particularly those working on cross-platform projects.
Developers choose FTPClient-C++ for its clean abstraction over libcurl, cross-platform compatibility, and straightforward API that reduces the complexity of implementing FTP/SFTP functionality from scratch.
C++ client for making FTP requests
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers a consistent C++ API for FTP and SFTP operations across Linux, macOS, and Windows, abstracting libcurl's low-level complexities as emphasized in the portable design.
Supports upload, download, directory management, and file info retrieval with progress callbacks, demonstrated in usage examples like DownloadFile and CreateDir.
Includes HTTP proxy tunneling and options to disable peer verification for SFTP, useful for corporate networks or testing, as shown in SetProxy and SetInsecure methods.
Provides clear instructions for multi-threaded use, such as avoiding shared objects and using SetNoSignal to prevent signal handling issues in threads.
Building on Windows requires manual libcurl compilation or vcpkg, and handling DLL dependencies, which the README admits can be error-prone without vcpkg.
The README explicitly states that DownloadWildcard does not work with SFTP, and advanced SFTP capabilities may be lacking compared to dedicated libraries.
Requires libcurl to be compiled with SSH support for SFTP, and issues like deadlocks in Windows DLLs need manual intervention, adding setup complexity.