Skip to main content

superftp

Fast multi-segment FTP client

This FTP client maximizes download speed for large files over long geographic distances. The program splits the file into segments. It then launches several download process, one for each segment. The program monitors what parts of which segments have been downloaded. Superftp monitors how fast each segment is downloading.

Note that over the Internet, each download routes differently from the source to destination differently, and so the download speeds will vary - especially as the geographic distance between the server and client increases. Superftp monitors the download speeds and kills slow downloads that have been routed inefficiently, and then restarts them. It keeps track of what segments have been downloaded and does not redownload any segments.

In sum:

  • Large files are segmented into small pieces.
  • Each segment is downloaded in parallel.
  • Superftp monitors the download rate on each segment.
  • Each segment routes differently from the source
  • Superftp restarts segments which have been routed through slow connections.
  • As segments complete, Superftp reassigns parallel downloads to remaining segments.
  • Aborted, failed, or killed downloads can be resumed

Installation

The easiest way to install is using pip

To install for python3 (preferred method)

pip3 install superftp

To install for python2

pip2 install superftp

Quickstart

Download /example.txt from ftp server with address ftpserver.example, username of Anonymous, and password of password to the current directory.

superftp --server ftpserver.example --username Anonymous --password password \
--remote_path /example.txt

The argument specifiers also have short versions of -s, -u, -p, -rp

superftp -s ftpserver.example -u Anonymous -p password -rp /example.txt

To enable TLS encryption add the --enable_tls flag

superftp -s ftpserver.example -u Anonymous -p password -rp /example.txt --enable_tls

Run the superftp command with the -h option to see the help

Dependencies

The superftp application and module does not require any additional dependencies outside the standard libraries. In order to run the unit tests, pyftpdlib==1.5.5 is required

Build superftp on a development machine

  1. Clone the git repository
  2. run the build.sh script in the root of the project, the build.sh script will do the following
    • clean the project
    • run pycodestyle on the project to check that best practice coding standards are followed
    • run pylint on the project to check that best practice coding standards are followed
    • run the unit tests for the project
    • generate documentation for the project (the generated documentation is available at docs/_build/html/index.html)
    • package the project into a redistributable, the redistributable is available in the dist directory in the root of the project

Release Notes

v1.0.3

  • First official release

Release files for superftp 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for superftp 1.0.3
File Size Uploaded
superftp-1.0.3.tar.gz 13.4 kB Details

Release files / superftp-1.0.3.tar.gz

Download URL superftp-1.0.3.tar.gz
Size 13.4 kB
Tags Source
SHA-256 checksum
How to use checksums
0fc403d289888fe22901c0f02a03031e66f1dcf47f8303331c4652f684c7186a
BLAKE2b-256 checksum
How to use checksums
fe14df3ac10a174e98397591a624ab586c1298eb0ab1a03f1fd0d5b885d2265c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/2.7.16

Release history Release notifications | RSS feed

This release

1.0.3 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page