Realm vs Sqlite for mobile development [closed] Realm vs Sqlite for mobile development [closed] sqlite sqlite

Realm vs Sqlite for mobile development [closed]


Realm and Sqlite are quite different in many aspects.

Here are two articles you could go through to grasp the main differences:

System Properties Comparison Realm vs. SQLite
5 Reasons Why You Should Choose Realm Over CoreData/SQLite

As suggested by Slavia in the comments, take also a look to this article for a comparison of several ORMs, including Realm.


I'm a developer on the Xamarin team at Realm so I can tell you a bit more about how the Xamarin product works.

Realm has a C++ core which is common across all products. That is why we release for each platform rather than just a language - we need to include the native core. Whilst we support PCL builds of your code, we don't have a PCL library as such - at build time your PCL code will link to the matching IOS or Android library.

All the Realm products are individually developed to provide an idiomatic interface for a given programming language, with as slim a layer as possible between your code and the data.

That means, for example, the C# product provides LINQ for querying and uses C# objects as the means of defining the data model. At build time, the Fody code generator is run to add property setters and getters so your C# objects will directly interact with the core C++ data. Unlike typical ORM products, there's no copying of data from the database into buffers and then again into your objects.

Realm data is memory-mapped so it's going directly from your code to storage. We generate accessor methods that replace the auto-property getters and setters.

We use the term zero-copy to describe this. In contrast, most other systems will have C# objects which have fields backing their properties. Those objects are often populated by copying from a SQLite buffer which has been read from the disk storage. That's two levels of copying.