// the find
JohnEstropia/CoreStore
Unleashing the real power of Core Data with the elegance and safety of Swift
CoreStore is a Swift wrapper around Core Data that enforces a read-only main context and transaction-based writes, eliminating a whole class of Core Data concurrency bugs. It adds type-safe models via `CoreStoreObject` and `@Field` property wrappers, letting you skip `.xcdatamodeld` files entirely. Aimed at iOS/macOS developers who want to use Core Data correctly without memorizing all its footguns.
The transaction model is genuinely good — forcing all writes through typed transaction closures makes threading mistakes compile-time errors rather than runtime crashes. Progressive migrations via `MigrationChain` are a real quality-of-life improvement over Core Data's default 'good luck' approach. Type-safe `CoreStoreObject` with `@Field` property wrappers eliminates the stringly-typed KVC nightmare of `NSManagedObject`. SwiftUI and Combine integration through `@ListState`/`@ObjectState` and reactive publishers is well thought out and not bolted on.
Last push was October 2024 and Swift 5.9 is the ceiling — no Swift 6 concurrency story, which matters since Core Data + structured concurrency is still a minefield. The `DataStack` global singleton pattern via `CoreStoreDefaults` will fight you in apps with multiple database configs or test isolation. Synchronous transactions have documented deadlock risks the README warns about but can't actually prevent. The sheer API surface (100+ source files) means the learning curve is steep and debugging internal behavior when something goes wrong is non-trivial.