Skip to content
abduznik edited this page Jul 15, 2026 · 4 revisions

libsavesync

A pure C library that manages the precise lifecycle of emulator/game save files: identifying exactly which save belongs to which game, safely versioning it locally, and optionally handing it off to external transports for cross-device sync.

It is not an emulator, launcher, cloud service, process watchdog, or orchestration server. It is a local, passive, embeddable save lifecycle manager — infrastructure other apps link against or shell out to.

Why libsavesync?

Project What it does Why it's not this
Syncthing / cloud-mounted folders Generic folder sync Zero game-awareness, fuzzy matching, no identity layer
EmuSync, SaveSync, CrossSave-Cloud Hobbyist folder/extension-based save backup Extension-guessing, no precision identity, monolithic apps
RomM's save sync engine (4.9+) Server-orchestrated multi-device sync Sophisticated, but logic lives in the server backend — not embeddable
Ludusavi Cross-platform save backup, manifest-driven Excellent prior art, but Rust/CLI-GUI, not a C-ABI embeddable core
Freegosy Precise per-emulator save strategies shipped Logic embedded inside one Flutter app, not extractable/reusable

Documentation

Clone this wiki locally