*Proposal for GSoC* - Organization: Apache - Project: OpenDAL oftp - Contributor: George Miao
*About me* I'm George Miao, an undergraduate student at Syracuse University with over 6 years of experience in software development. I have a strong background in Rust programming language and web development. *Background* OpenDAL is a data access layer that allows users to easily and efficiently retrieve data from various storage services in a unified way. oftp can expose OpenDAL power in FTP way that allows users to access storage services via FTP protocol. *Description* oftp will be a single binary cargo package under `/bin` of OpenDAL repository. I plan to use [libunftp](https://github.com/bolcom/libunftp), which offers great support for generic storage backend (like OpenDAL) and async operations. List of subjects in rough chronological order: - Write a basic FTP server using libunftp, with OpenDAL as the storage backend - Write thorough tests to ensure the desired functionality - Add configuration (both config file and command line args) - Write some detailed documentation and user guide - Provide a `unftp-sbe-opendal` for upstream (unFTP) to integrate ( *optional*) *Results for the Apache community* The OpenDAL project will benefit from the addition of oftp, as it will allow users to access storage services via FTP protocol. *Deliverables* - The ftp server itself - Unit test for each ftp command and some integration tests - User guide and configuration guide *Scheduling* - Week 1-2: Implement the core FTP server - Week 3-4: Test core functionality, fix bugs - Week 5-6: Implement auxiliary features (configuration, command line, etc.) - Week 7-8: Test auxiliary features, fix bugs - Week 9-10: Write documentation and user guide - Rest of the time: Tracking, buffer for bugfixes, more features, etc.
