Crate Version API Docs Build Status Crate License Follow on Telegram

libunftp - The FTPS library

libunftp is a Rust crate that you can use to build your own FTPS server with. You can extend it with your own storage back-ends or authentication back-ends.

It runs on top of the Tokio asynchronous run-time and tries to make use of Async IO as much as possible.

Feature highlights:

  • 39 Supported FTP commands and growing
  • Ability to implement own storage back-ends
  • Ability to implement own authentication back-ends
  • Explicit FTPS (TLS)
  • Mutual TLS (Client certificates)
  • TLS session resumption
  • Prometheus integration
  • Structured Logging
  • Proxy Protocol support
  • Automatic session timeouts
  • Per user IP allow lists

Known storage back-ends:

  • unftp-sbe-fs - Stores files on the local filesystem
  • unftp-sbe-gcs - Stores files in Google Cloud Storage
  • unftp-sbe-rooter - Wraps another storage back-end in order to root a user to a specific home directory.
  • unftp-sbe-restrict - Wraps another storage back-end in order to restrict the FTP operations a user can do i.e. provide authorization.

Known authentication back-ends:

See the github page or the API Documentation for more details.

Powered by Doctave