rqbit
rqbit copied to clipboard
add FTP storage backend
early draft to add a FTP storage backend
use case: bittorrent reverse proxy running on a fast cache server with limited storage in front of a slow backend server with large storage
remotefs-ftp does not work because remotefs is not thread-safe
see e9dcd1697cb8cbeaa4a4dd6c7c349d61a79955cf
async_ftp is hard to integrate
because all the storage functions are sync...
i am not good enough in Rust for such a large task
and github copilot fails on complex errors
note: the FTP protocol is an implementation detail it could be any network filesystem: NFS, SMB, HTTP, WebDAV, SCP, Rsync, Rclone, ...
alternatives:
- mount the FTP server with curlftpfs or go-fuseftp, but that requires the
fusekernel module - hook syscalls with fakechroot or proot, but these tools have no FTP storage backend
- use a different bittorrent client like libtorrent or anacrolix/torrent, and add a FTP storage backend there
- https://github.com/jpillora/cloud-torrent/issues/24