non è un Key-Value store (JSON) ma un db a tutti gli effetti completamente riscritto, core in C++ (open source) Swift, Objective-C, Java, JavaScript .NET con Xamarin (iOS, Android, Mac, UWP, .NET Framework) client + server (pensato per essere offline first)
invia le istruzioni al disco esegui la query leggi i dati deserializza e copia in formato intermedio in memoria ritorna gli oggetti finali copia in memoria in formato appropriato per il linguaggio native objects realm db file virtual memory mapped native links zero copy e native links
Name { get; set; } public int Age { get; set; } public Person Owner { get; } } public class Person : RealmObject { [PrimaryKey] public int Id { get; set; } public string Name { get; set; } public IList<Dog> Dogs { get; } } to one to many inverse [Backlink(nameof(Dog.Owner))] public IQueryable<Dog> Dogs { get; } objects
realm.Add(new Person() { Id = 6, Name = "Andrea" }); var mila = new Dog() { Name = "mila", Age = 1, } andre.Dogs.Add(mila); mila.Owner = andre; }); transactions
var user = await User.LoginAsync(creadentials, authUrl); var serverUrl = new Uri("realm://realmServerAddress:9080/~/default"); var syncConfig = new SyncConfiguration(user, serverUrl); var realm = Realm.GetInstance(syncConfig); var realm = await Realm.GetInstanceAsync(syncConfig); autenticazione e sync configuration