LFTP includes the following features (some may be missed in this list):
- FTP and HTTP protocols support.
- FTP (e.g. TIS FWTK) proxy support.
- HTTP proxy support.
- FTP over HTTP proxy support (hftp and CONNECT method).
- HTTPS and FTPS protocols support using GNU TLS or OpenSSL library.
- Automatic OPIE/SKEY support in FTP protocol.
- FXP transfers support (between two FTP servers, bypassing client machine).
- FTP listings support: unix-style, NT, EPLF, OS/2, AS400, MacWebStar, MLSD.
- FTP implicit compression (MODE Z) support.
- Automatic reconnect and retry of an operation on retriable errors or timeout.
- IPv6 support in both FTP and HTTP.
- FISH protocol support. It uses ssh with no special program on server side.
- SFTP protocol v3-v6 support.
- HTTP/1.1 keep-alive support.
- HTTP basic and digest authentication.
- Partial WebDAV support.
- BitTorrent protocol support (including IPv6).
- BitTorrent extensions: Fast, DHT, PEX, Multi-tracker, Metadata, magnet.
- Experimental support for SRV DNS records.
- SOCKS support (configure option).
- Modification time preservation (if server can report it).
- `reget' and `reput' support.
- Built-in mirror and reverse mirror (mirror -R).
- Transfer rate throttling for each connection, for each host and for all
connections in total.
- Limit for number of connections to the same site. Interruption of background
transfer to do a foreground operation when the limit is reached.
- Socket options tuning: buffer size and maximum segment size.
- Job queueing.
- Job execution at specified time.
- Comprehensive scripting support.
- URL recognition in most operations.
- Readline library is used for input.
- Context sensitive completion.
- Bash-like prompt extensions.
- Launching of local shell commands.
- Suspend support.
- Bookmarks.
- Aliases.
- Saving of last directory on each site. `cd -' to go there.
- Copying of files (including mirror) between two servers over the client,
automatic usage of FXP when possible to bypass the client.
- Numerous settings which can be associated with a specific server or a group.
- Paging of remote files using external program.
- `zcat' and `zmore' support.
- Help for commands.
- Command history saved in a file.
- Transfer status includes rate and ETA.
- File listing cache.
- Background jobs (bash-like).
- Job output redirection to a file or to a program via pipe.
- Conditional commands depending on exit status of previous one.
- Loading of binary modules at run time (configure option).
- `pget' to download a file using several connections. `pget' download
can be continued as it saves a status file periodically.
- `mirror' can download several files in parallel (--parallel option)
and a single file with `pget' (--use-pget-n option).
- Slots. Each slot is a separate session, switch using Meta-{1-9} or `slot'
command. Refer to a slot site using pseudo URL slot:name.