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.