Swiftpack.co - dmytro-anokhin/core-data-model-description as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
Declarative way to describe a Core Data model in code.
.package(url: "https://github.com/dmytro-anokhin/core-data-model-description.git", from: "0.0.11")


Declarative way to describe a Core Data model in code. Swifty Core Data model 🙂


Use CoreDataModelDescription to describe your model. Sample code describes this model:

Image of Author, Publication, and Article model

Assuming you already defined Author, Publication, and Article subclasses of NSManagedObject.

let modelDescription = CoreDataModelDescription(
    entities: [
            name: "Author",
            managedObjectClass: Author.self,
            attributes: [
                .attribute(name: "name", type: .stringAttributeType)
            relationships: [
                .relationship(name: "publications", destination: "Publication", toMany: true, deleteRule: .cascadeDeleteRule, inverse: "author", ordered: true)
            name: "Publication",
            managedObjectClass: Publication.self,
            attributes: [
                .attribute(name: "publicationDate", type: .dateAttributeType),
                .attribute(name: "numberOfViews", type: .integer64AttributeType, isOptional: true)
            relationships: [
                .relationship(name: "author", destination: "Author", toMany: false, inverse: "publications")
            name: "Article",
            managedObjectClass: Article.self,
            parentEntity: "Publication",
            attributes: [
                .attribute(name: "text", type: .stringAttributeType)

let model = modelDescription.makeModel()


Motivation and creating this package described in my article Core Data and Swift Package Manager.

This package is still on early stage of development. Please submit issues for missing functionality. Pull requests are more than welcome.


Stars: 54
Last commit: Yesterday

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics