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.
SITE commands| Crate | Description |
|---|---|
| unftp-sbe-fatfs | Provides read-only access to FAT filesystem images |
| unftp-sbe-fs | Stores files on the local filesystem |
| unftp-sbe-gcs | Stores files in Google Cloud Storage |
| unftp-sbe-iso | Provides FTP access to ISO 9660 files |
| unftp-sbe-opendal | Provides access to various storage services through Apache OpenDAL (supports S3, Azure Blob Storage, and more) |
| unftp-sbe-restrict | Wraps another storage back-end in order to restrict the FTP operations a user can do i.e. provide authorization |
| unftp-sbe-rooter | Wraps another storage back-end in order to root a user to a specific home directory |
| unftp-sbe-webdav | A WebDAV storage back-end providing translation between FTP & WebDAV |
See the full list of storage back-ends on crates.io or the Contribution Guide and API Documentation if you want to create your own.
| Crate | Description |
|---|---|
| unftp-auth-jsonfile | Authenticates against JSON text |
| unftp-auth-pam | Authenticates via PAM |
| unftp-auth-rest | Consumes an HTTP API to authenticate |
See the full list of authentication back-ends on crates.io or the Contribution Guide and API Documentation if you want to create your own.
| Crate | Description |
|---|---|
| unftp-site-hash | Adds a SITE HASH command, supporting SHA-256, SHA-1, MD5 and CRC32 file hashing |
See the full list of SITE command extensions on crates.io or the Contribution Guide and ServerBuilder::site_command if you want to create your own.
See the github page or the API Documentation for more details.
Powered by Doctave