[Feature Proposal] OneDrive cloud sync backend (companion to google_drive.c)
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Cloud Sync recently gained a Google Drive backend (network/cloud_sync/google_drive.c, Feb 2026) alongside WebDAV/S3/SMB/iCloud, and #17972 unlocked SSL-backed sync on Android. OneDrive is one of the largest consumer clouds and currently has no backend — OneDrive users are the biggest unserved group left.
Proposal: network/cloud_sync/onedrive.c, structured directly on google_drive.c:
- Microsoft identity platform device-code flow — public client, notably no client secret needed (simpler than the Google flow)
- refresh token persisted in settings, same pattern as
google_drive_refresh_token - storage via Microsoft Graph app folder (
/me/drive/special/approot) so RetroArch only sees its own folder; simplePUT …/contentuploads (save files are small; upload sessions only needed >4 MB) - same 5-function
cloud_sync_driver_tvtable, C89,-Wallclean, house style
Questions before any code is written:
- Is this a backend the team wants?
- Who registers/owns the (free) Azure app
client_idfor official builds? A fork can use a personal registration for development, but production should be libretro-owned, like the Google credentials. - Any preference on app-folder scope (
Files.ReadWrite.AppFolder) vs. broader drive access?
I can have the implementation contributed and tested on Android + Windows desktop. Transparency note: the implementation would be developed with AI assistance (Claude), with human review and on-device testing — flagging this up front; happy to discuss.
CC @warmenhoven (author of the webdav/gdrive/s3 backends and the Android TLS work). Related: #6875 (native cloud saving bounty). While testing the gdrive backend I also filed #19244 (folder-creation race) — happy to help verify fixes there too.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with network/cloud_sync/google_drive.c and the existing cloud-sync backends, then review the five-function cloud_sync_driver_t interface and the google_drive_refresh_token settings pattern. Done means an approved design and a tested network/cloud_sync/onedrive.c backend using the agreed Azure app ownership and folder scope, verified on Android and Windows desktop.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- backend, cloud
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100