A Swift wrapper for CoreData and Realm that simplifies persistence with a fluent, protocol-based API.
SugarRecord is a persistence wrapper library for Swift that simplifies working with CoreData and Realm. It reduces boilerplate code by providing a fluent, chainable API for database operations, allowing developers to interact with persistence solutions using just a few lines of code. The library is designed to be fully customizable, enabling users to build their own stacks while avoiding singleton patterns and shared states.
Swift developers building iOS, macOS, watchOS, or tvOS applications who need to manage local data persistence with CoreData or Realm, ranging from beginners seeking simplicity to advanced users requiring customization.
Developers choose SugarRecord for its protocol-based design that encourages clean, testable code and its fluent syntax that makes database interactions intuitive. Its unique selling point is the ability to create customizable persistence stacks without shared states, offering a singleton-free architecture that enhances modularity and maintainability.
CoreData/Realm sweet wrapper written in Swift
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Encourages clean, testable code through a protocol-oriented design, as highlighted in the README's features for both beginners and advanced users.
Offers an intuitive, chainable API for database operations like fetching and filtering, reducing boilerplate code with just a few lines.
Works across iOS, macOS, watchOS, and tvOS, providing a unified persistence layer for Apple ecosystem projects.
Allows building tailored solutions without shared states or singletons, enabling modular and maintainable code.
RequestObservable is only available for CoreData on macOS 10.12+, restricting real-time monitoring on other platforms or with Realm.
Initializing storages like CoreDataDefaultStorage involves multiple steps and dependency management via CocoaPods or Carthage, adding complexity.
As a wrapper, it may obscure advanced CoreData or Realm functionalities, limiting power users who need fine-grained control.