{"repo":"mentalfaculty/LLVS","free":true,"listed":false,"github":"https://github.com/mentalfaculty/LLVS","clone":"git clone https://github.com/mentalfaculty/LLVS.git","description":"Low-Level Versioned Store","language":"Swift","stars":208,"topics":["swift","swiftui","sync","synchronization","distributed-storage"],"license":"MIT","category":"mobile-apps","readme_excerpt":"Low-Level Versioned Store (LLVS) Author: Drew McCormack (@drewmccormack) Ever wish it was as easy to move your app's data around as it is to push and pull your source code with Git? LLVS brings the same model to app data. Every save creates a version. Versions branch, merge, and sync between devices -- just like commits in a Git repository. Your app gets full version history, conflict resolution, and multi-device sync without writing any networking or diffing code. The problem A user edits a note on their phone during a flight. Meanwhile, a share extension updates the same note on their iPad. Later, their Watch app writes a quick addition. When the phone comes back online, three copies of the data have diverged independently. Keeping these in sync is the kind of problem that consumes months of development time. You end up writing custom conflict detection, manual diffing, retry logic, and timestamp heuristics -- and it's still fragile. LLVS handles this the way Git handles divergent branches: it tracks the full ancestry of every change, finds the common ancestor when versions diverge, and merges them back together through a conflict resolver you control. The framework does the hard part; you just decide what \"resolve this conflict\" means for your data. What you get - Version history -- Every save is a version. Branch, merge, diff, or revert to any point in time. - Three-way merge -- When versions diverge, LLVS finds their common ancestor and diffs both sides. You provide a Me","default_branch":null,"files":null,"tree":[],"storefront":"/r/mentalfaculty","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/mentalfaculty/LLVS/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}