Realm

Realm is a an open-source and object-oriented DBMS, initially for mobile(Android/iOS), also available for platforms such as Xamarin or React Native, and others including desktop application(Windows).[1] It supports programming language including Objective-C, Swift, Java, Kotlin, C# and Javascript. It's built on zero-copy architecture, which could provide high speed and auto-updating results for the query.

History

Realm originates from the project called TightDB which was initially developed by Alexander Stigsen and Bjarne Christiansen began in the end of 2010. Later in 2011 they started a company at Y Combinator and renamed the product to Realm in 2014 September.

The first version of Realm was released in June 2016 and a platform for real-time two-way synchronization in beta version was released in 2016 September.

Storage Model

Decomposition Storage Model (Columnar)

Properties would be kept contiguously linked at the vertical level.

Joins

Not Supported

It's not relational database

Query Interface

Custom API

Realm Database has its own custom APIs.

Views

Virtual Views Materialized Views

Realm database supports reflective views and imperative views. Essentially they are very similar to materialized views and virtual views.

Query Compilation

Not Supported

System Architecture

Embedded

Realm Database is not a distributed database. It's mainly for the mobile device.

Concurrency Control

Multi-version Concurrency Control (MVCC)

In Realm, each connected thread will see a snapshot of the data at a particular point in time. Moreover, it utilizes the copy-on-write mechanism and allows only one client to modify data at a certain point.

Data Model

Object-Oriented

Foreign Keys

Supported

Not Supported

Logging

Logical Logging

Realm maintains a transaction log to coordinate operations across boundaries between threads/processes. The log includes all the individual changes made to the database.

Stored Procedures

Not Supported

Isolation Levels

Read Uncommitted

No objects shared between threads, which means it's literally single-thread.

Hardware Acceleration

Custom

No Acceleration

Storage Architecture

Hybrid

You could configure during run-time.

Realm Logo
Website

https://realm.io/products/realm-database

Source Code

https://github.com/realm

Tech Docs

https://realm.io/docs

Developer

Realm

Country of Origin

US

Start Year

2011

Former Name

tight.db

Project Type

Commercial, Open Source

Written in

C++

Supported languages

C#, Java, JavaScript, Objective-C, Swift

Operating Systems

Android, iOS, Windows

Licenses

Apache v2

Wikipedia

https://en.wikipedia.org/wiki/Realm_(database)#Features