All Projects → prisma-ai → Sworm

prisma-ai / Sworm

Licence: MIT License
CoreData based Swift ORM

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Sworm

geeteventbus
An inprocess eventbus for highly concurrent Python applications
Stars: ✭ 17 (-75.71%)
Mutual labels:  concurrency
gorm-hibernate5
GORM for Hibernate 5
Stars: ✭ 51 (-27.14%)
Mutual labels:  orm
eloquent-mongodb-repository
Eloquent MongoDB Repository Implementation
Stars: ✭ 18 (-74.29%)
Mutual labels:  orm
feathers-objection
Feathers database adapter for Objection.js, an ORM based on KnexJS SQL query builder for Postgres, Redshift, MSSQL, MySQL, MariaDB, SQLite3, and Oracle. Forked from feathers-knex.
Stars: ✭ 89 (+27.14%)
Mutual labels:  orm
JTK
JTK is a library designed for writing applications and libraries in C. It provides core utilities such as collections, unit testing, I/O streams, threads and much more.
Stars: ✭ 25 (-64.29%)
Mutual labels:  concurrency
gpool
gpool - a generic context-aware resizable goroutines pool to bound concurrency based on semaphore.
Stars: ✭ 84 (+20%)
Mutual labels:  concurrency
pyhikvision
hikvision-sdk for Python3 in action
Stars: ✭ 141 (+101.43%)
Mutual labels:  orm
storm
🌐⚡️LocalStorage manager library for JavaScript
Stars: ✭ 14 (-80%)
Mutual labels:  orm
gobatis
golang mybatis, 简单便捷
Stars: ✭ 46 (-34.29%)
Mutual labels:  orm
sequelize-adapter
Sequelize adapter for Casbin
Stars: ✭ 51 (-27.14%)
Mutual labels:  orm
sanic-mongodb-extension
MongoDB with μMongo support for Sanic framework
Stars: ✭ 25 (-64.29%)
Mutual labels:  orm
gotopus
Gotopus is a minimalistic tool that runs arbitrary commands concurrently.
Stars: ✭ 17 (-75.71%)
Mutual labels:  concurrency
piker
#nontina, #paperhands,, #pwnzebotz, #tradezbyguille
Stars: ✭ 63 (-10%)
Mutual labels:  concurrency
heliosRX
⚡️ The fast way to build real-time apps with Vue and Firebase 🔥
Stars: ✭ 23 (-67.14%)
Mutual labels:  orm
doctrine-json-odm
JSON Object-Document Mapping bundle for Symfony and Doctrine
Stars: ✭ 15 (-78.57%)
Mutual labels:  orm
ring-election
A node js library with a distributed leader/follower algorithm ready to be used
Stars: ✭ 92 (+31.43%)
Mutual labels:  concurrency
restjs
An “ORM” style library for consuming REST APIs on the frontend
Stars: ✭ 13 (-81.43%)
Mutual labels:  orm
fsharp-dapper
The wrapper above the 'Dapper' library allows you to write more familiar code in the F # language. It also contains a functional for more simple work with temporary tables
Stars: ✭ 72 (+2.86%)
Mutual labels:  orm
MeowVapor
Meow plugin for API generation
Stars: ✭ 12 (-82.86%)
Mutual labels:  orm
ormdb
ORM tool for .Net / .Net.Core
Stars: ✭ 14 (-80%)
Mutual labels:  orm

Swift ORM

SWORM

Features

  1. Pure swift objects - no more subclasses of NSManagedObject
  2. Extensible attribute system - store any type in CoreData storage by implementing a simple protocol in type extension
  3. Strongly typed data queries
  4. Progressive migrations

Motivation

CoreData 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.

Even 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.

Apple is aware of all of this and in modern guides prefers data persistence based on Codable models.

At 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.

Sworm is a tool that hides the complexity of CoreData from the developer, but keeps the advantages.

How to use

Basic usage

Attributes

Queries

Read and write your data graph

Proper setup of PersistentContainer

Progressive migrations

Examples

See tests

Installation

Use SPM:

dependencies: [
    .package(url: "https://github.com/prisma-ai/Sworm.git", .upToNextMajor(from: "1.0.0"))
]
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].