A Swift framework for managing shared data with Git-like branching and merging, enabling safe concurrency and offline-first apps.
Forked is a Swift framework for managing shared data with Git-like branching and merging. It solves concurrency issues in Swift applications by allowing safe, concurrent data modifications without traditional synchronization primitives like locks or actors. It also facilitates data synchronization across devices, supporting offline-first and local-first software architectures.
Swift developers building iOS, macOS, or server-side applications that require safe concurrent data access or multi-device synchronization, particularly those interested in local-first or offline-first architectures.
Developers choose Forked for its unique approach to concurrency using branching and merging, which avoids the pitfalls of locks and actors while providing powerful conflict resolution. Its seamless integration with CloudKit and support for advanced merging algorithms like CRDTs make it a robust solution for collaborative and synced applications.
It's like Git for your Swift data types.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Forked prevents data races using Git-inspired branching instead of locks, queues, or actors, as emphasized in the README for avoiding traditional synchronization pitfalls.
It supports 3-way merging and CRDTs for intelligent conflict handling, making it ideal for collaborative apps like text editors, with examples like TextMerger in the README.
The ForkedCloudKit package enables seamless multi-device synchronization with CloudKit in just a few lines of code, simplifying offline-first app development.
@ForkedModel macros automatically generate merge logic for data models, reducing manual coding, as shown in the TextDocument example with minimal setup.
Enabling optional features like macros or CloudKit debouncing requires managing SPM traits, adding configuration overhead compared to drop-in frameworks.
At version 0.1.0, Forked may have breaking changes and limited community support, making it risky for critical production applications.
It's tightly coupled with Swift and Apple platforms, lacking cross-platform support and limiting use in projects with diverse tech stacks.