libretro / libretro/RetroArch

[Feature request] SFTP driver for Cloud Sync

Open
#17,232 6 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

#15548 implemented the Cloud Sync functionality. Currently we have the WebDAV and the iCloud drivers. iCloud is platform specific, so for most platforms we only have the option of using WebDAV. While WebDAV is supported by many cloud storage providers, having at least a second multiplatform option would help a lot with compatibility, since while certain services might not support some protocols, they'll often support at least a couple popular ones.

One such protocol is SFTP. It is build on top of SSH, unlike WebDAV, which is based on HTTP, and it is often implemented by both SSH and FTP servers, making it also very likely to be supported. RetroArch doesn't currently implements SSH in any capacity, as far as I know, but SSH has a couple very mature C libraries that support SFTP, so it should be able to be included without sacrificing portability.

For instance, the provider I use, rsync.net, is very SSH-centric, and supports SFTP, but not WebDAV. The current implementation of Cloud Sync is very robust, and being able to use it across all my devices without requiring any local setup would improve the experience immensely.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the Cloud Sync implementation from #15548 and the existing WebDAV and iCloud drivers. Identify how a portable C SSH/SFTP library could fit the current design; done means Cloud Sync supports SFTP across platforms without requiring local setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.