Great proposal! > - Provide a `unftp-sbe-opendal` for upstream (unFTP) to integrate (*optional*)
Maybe we can build `unftp-sbe-opendal` in opendal first and build oftp upon it? During the build of oftp, we can reach out to the upftp team to see if we can combine our efforts. On Wed, Mar 13, 2024, at 20:44, George Miao wrote: > *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. -- Xuanwo
