mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-01-11 20:00:30 +01:00
Support non-CoreData #171
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @akac on GitHub (Sep 20, 2017).
I love CoreStore. It works very well and it fixes pretty much every major issue I have with CoreData. While I personally have no issue with using CoreData as the foundation of CoreStore, what I keep thinking is that CoreStore is designed in a way that it really shouldn't care what the underlying store is.
Perhaps its Realm. Perhaps its CoreData. Perhaps its some other system. Pluggable modules almost. That would make CoreStore future-proof.
Just a thought.
@JohnEstropia commented on GitHub (Sep 22, 2017):
Thanks for giving this much thought on CoreStore :) I appreciate ideas like these.
Backend abstraction is actually one of the motivations of the new
CoreStoreObjectAPI, but on the storage layer (sqlite), not the ORM layer (Core Data). The thing is, Core Data supports any database backend and in fact 2 years ago I wrote a Realm-backed Core Data stack.Core Data is actually one of the best ORMs out there, and I don't know if it would be realistic to reimplement faulting, notifications (fetchedResultsController), migrations, etc. I don't know if we can abstract all that to a worthy level. Realm for example took more than a year to get to the level of features they have today, and that's already their own in-house architecture.
With regards to future-proofing, I don't know if there's a better guarantee here than using an API that Apple itself created, maintains and uses. That said, if there's an open-source ORM abstraction that would exceed the utility of Core Data, I'll be happy to make CoreStore depend on that instead.