{"id":32149315,"url":"https://github.com/prisma-ai/sworm","last_synced_at":"2025-10-21T09:54:05.408Z","repository":{"id":43792076,"uuid":"373822419","full_name":"prisma-ai/Sworm","owner":"prisma-ai","description":"CoreData based Swift ORM","archived":false,"fork":false,"pushed_at":"2022-10-04T10:29:38.000Z","size":381,"stargazers_count":107,"open_issues_count":0,"forks_count":7,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-10-21T09:54:05.204Z","etag":null,"topics":["concurrency","coredata","coredata-swift","ios","ios-swift","macos","orm","swift","swift-concurrency"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prisma-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-06-04T11:40:05.000Z","updated_at":"2025-08-31T16:17:39.000Z","dependencies_parsed_at":"2022-08-02T23:31:01.140Z","dependency_job_id":null,"html_url":"https://github.com/prisma-ai/Sworm","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/prisma-ai/Sworm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prisma-ai%2FSworm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prisma-ai%2FSworm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prisma-ai%2FSworm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prisma-ai%2FSworm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prisma-ai","download_url":"https://codeload.github.com/prisma-ai/Sworm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prisma-ai%2FSworm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280240306,"owners_count":26296527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-21T02:00:06.614Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["concurrency","coredata","coredata-swift","ios","ios-swift","macos","orm","swift","swift-concurrency"],"created_at":"2025-10-21T09:54:01.564Z","updated_at":"2025-10-21T09:54:05.404Z","avatar_url":"https://github.com/prisma-ai.png","language":"Swift","readme":"# Swift ORM\n\n![SWORM](logo.svg)\n\n## Features\n\n1) Pure swift objects - no more subclasses of NSManagedObject\n2) Extensible attribute system - store any type in CoreData storage by implementing a simple protocol in type extension\n3) Strongly typed data queries\n4) Progressive migrations\n\n## Motivation\n\nCoreData is hard. It was originally designed as a data layer for applications with a focus on I/O performance, but hardware has become more powerful over time and the complexity of CoreData still persists (lol). In modern applications, building CoreData-based data layer is expensive and often unreasonable decision.\n\nEven the NSPersistentContainer doesn't relieve us of the need to keep track of the lifecycle of the managed objects associated with the context and remember to read / write on the context queue. In addition, an application often has a second set of data models, similar to managed objects and code for converting between the two sets of models.\n\nApple is aware of all of this and in modern guides prefers data persistence based on Codable models.\n\nAt the same time, CoreData has many advantages - a powerful visual editor for data models, automatic migrations, a simplified (compared to SQL) query system, secure multi-threaded access to data out of the box, and so on.\n\nSworm is a tool that hides the complexity of CoreData from the developer, but keeps the advantages.\n\n## How to use\n\n[Basic usage](docs/basic_usage.md)\n\n[Attributes](docs/attributes.md)\n\n[Queries](docs/queries.md)\n\n[Read and write your data graph](docs/read_write.md)\n\n[Proper setup of PersistentContainer](docs/setup_pc.md)\n\n[Progressive migrations](docs/migrations.md)\n\n## Examples\n\n[See tests](/Tests/SwormTests/)\n\n## Installation\n\nUse SPM:\n\n``` swift\ndependencies: [\n    .package(url: \"https://github.com/prisma-ai/Sworm.git\", .upToNextMajor(from: \"1.0.0\"))\n]\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprisma-ai%2Fsworm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprisma-ai%2Fsworm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprisma-ai%2Fsworm/lists"}