Latest 1.0.1
License MIT
Platforms ios 8.0, requires ARC
Dependencies RealmSwift

Build Status
Cocoapods Compatible
Carthage compatible
Readme Score

A lightweight framework which provides abstraction for database operations, base on RealmSwift. RealmSwift usage simple. RealStore provides simplest usage.


Create your own model:

struct Publisher {
    public let name: String
    public let surname: String

Create realm object:

class PublisherEntity: Object{
    @objc dynamic var name = ""
    @objc dynamic var surname = ""

Implement RealmEntity protocol which does the magic.

extension Publisher: RealmEntity{
    public init(_ entity: PublisherEntity){
        name =
        surname = entity.surname

    public var entity: PublisherEntity{
        let publisher = PublisherEntity() = name
        publisher.surname = surname
        return publisher

Create your store. Usage is as simple as possible. All realm operations done with your model Publisher.

let publisherStore = RealmStore<Publisher>()
let publisher = Publisher(name:"Volkan", surname: "Bicer")

//inserts publisher

//returns [Publisher]
let publisherList = publishStore.getAll()

//removes publishers from database


To query you must implement RealmQuery protocol. Simple usage shown below.

extension Publisher: RealmQuery{
    enum Query: QueryType{
        case name(String)
        case surname(String)

        var predicate: NSPredicate?{
            switch self {
            case .name(let value):
                return NSPredicate(format: "name == %@", value)
            case .surname(let value):
                return NSPredicate(format: "surname == %@", value)

        var sortDescriptors: [SortDescriptor]{
            return [SortDescriptor(keyPath:"name")]

To query objects just use filter function. It returns an array.

let publisherStore = RealmStore<Publisher>()
publisherStore.insert(Publisher(name: "Volkan", surname: "Bicer"))
let filteredPublishers = publisherStore.filter(with: .name("Volkan"))


RealmStore can be added to your project using CocoaPods by adding the following line to your Podfile:

pod 'RealmStore'

If you’re using Carthage you can add a dependency on RealmStore by adding it to your Cartfile:

github ""

Latest podspec

    "name": "RealmStore",
    "version": "1.0.1",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    "summary": "A repository pattern implementation for Realm database",
    "homepage": "",
    "authors": {
        "Volkan Bicer": "[email protected]"
    "source": {
        "git": "",
        "tag": "1.0.1"
    "platforms": {
        "ios": "8.0"
    "requires_arc": true,
    "source_files": "RealmStore/**/*.swift",
    "dependencies": {
        "RealmSwift": [
            "~> 2.1"
    "pushed_with_swift_version": "4.0"

Pin It on Pinterest

Share This