Realm 10.16.0
See the version list below for details.
dotnet add package Realm --version 10.16.0
NuGet\Install-Package Realm -Version 10.16.0
<PackageReference Include="Realm" Version="10.16.0" />
paket add Realm --version 10.16.0
#r "nuget: Realm, 10.16.0"
// Install Realm as a Cake Addin #addin nuget:?package=Realm&version=10.16.0 // Install Realm as a Cake Tool #tool nuget:?package=Realm&version=10.16.0
Realm is a mobile database: a replacement for SQLite
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net46 is compatible. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid is compatible. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios is compatible. |
Xamarin.Mac | xamarinmac is compatible. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Fody (>= 6.6.4)
- Microsoft.CSharp (>= 4.5.0)
- MongoDB.Bson (>= 2.11.3)
- Realm.Fody (>= 10.16.0)
- Remotion.Linq (>= 2.2.0)
- System.Buffers (>= 4.4.0)
- System.Dynamic.Runtime (>= 4.3.0)
- System.Runtime.CompilerServices.Unsafe (>= 4.5.3)
-
net6.0
- Fody (>= 6.6.4)
- Microsoft.CSharp (>= 4.5.0)
- MongoDB.Bson (>= 2.11.3)
- Realm.Fody (>= 10.16.0)
- Remotion.Linq (>= 2.2.0)
- System.Buffers (>= 4.4.0)
- System.Dynamic.Runtime (>= 4.3.0)
- System.Runtime.CompilerServices.Unsafe (>= 4.5.3)
NuGet packages (39)
Showing the top 5 NuGet packages that depend on Realm:
Package | Downloads |
---|---|
ppy.osu.Game
Package Description |
|
Iridium360.Connect.Framework
This framework allows you to bind your Android or iOS device with i360RockSTAR tracker |
|
ItEnterprise.Common.CoreStandard
ItEnterprise Common.CoreStandard for Xamarin Forms |
|
Arc4u.Standard.Diagnostics.Serilog.Sinks.RealmDb
Package Description |
|
ItEnterprise.WmsStandard
ItEnterprise WmsStandard for Xamarin Forms |
GitHub repositories (7)
Showing the top 5 popular GitHub repositories that depend on Realm:
Repository | Stars |
---|---|
ppy/osu
rhythm is just a *click* away!
|
|
realm/realm-dotnet
Realm is a mobile database: a replacement for SQLite & ORMs
|
|
sgermosen/xReader
XML, NEWS, RSS & Scrapping Reader maked in Xamarin, for educational purpose.
|
|
Piotrekol/CollectionManager
An extensive tool for creating, editing, and exporting of osu! collections.
|
|
realm/realm-draw
The official Realm Draw app used in promotional videos
|
Version | Downloads | Last updated | |
---|---|---|---|
20.0.0 | 19,916 | 9/9/2024 | |
12.4.1 | 13,082 | 9/16/2024 | |
12.4.0 | 19,393 | 8/25/2024 | |
12.3.0 | 38,325 | 7/20/2024 | |
12.2.0 | 53,005 | 5/22/2024 | |
12.1.0 | 15,726 | 5/1/2024 | |
12.0.0 | 12,805 | 4/17/2024 | |
11.7.0 | 96,990 | 2/5/2024 | |
11.6.1 | 91,178 | 11/17/2023 | |
11.6.0 | 23,690 | 11/4/2023 | |
11.5.0 | 288,936 | 9/16/2023 | |
11.4.0 | 32,738 | 8/16/2023 | |
11.3.0 | 48,922 | 7/26/2023 | |
11.2.0 | 17,443 | 7/8/2023 | |
11.1.2 | 111,908 | 6/20/2023 | |
11.1.1 | 7,710 | 6/19/2023 | |
11.1.0 | 2,755 | 6/17/2023 | |
11.0.0 | 48,695 | 5/8/2023 | |
10.21.1 | 45,314 | 4/21/2023 | |
10.21.0 | 24,807 | 3/24/2023 | |
10.20.0 | 91,223 | 2/10/2023 | |
10.19.0 | 36,422 | 1/6/2023 | |
10.18.0 | 138,965 | 11/2/2022 | |
10.17.0 | 94,469 | 10/6/2022 | |
10.16.0 | 12,937 | 10/3/2022 | |
10.15.1 | 111,234 | 8/8/2022 | |
10.15.0 | 5,760 | 8/5/2022 | |
10.14.0 | 189,995 | 6/2/2022 | |
10.13.0 | 28,462 | 5/18/2022 | |
10.12.0 | 18,449 | 5/5/2022 | |
10.11.2 | 35,233 | 4/21/2022 | |
10.11.1 | 21,874 | 3/31/2022 | |
10.11.0 | 5,597 | 3/28/2022 | |
10.10.0 | 96,290 | 2/28/2022 | |
10.9.0 | 82,155 | 1/21/2022 | |
10.8.0 | 38,463 | 1/17/2022 | |
10.7.1 | 106,968 | 11/20/2021 | |
10.7.0 | 7,257 | 11/10/2021 | |
10.6.0 | 170,586 | 9/30/2021 | |
10.5.1 | 18,614 | 9/22/2021 | |
10.5.0 | 31,110 | 9/9/2021 | |
10.4.1 | 3,837 | 9/3/2021 | |
10.4.0 | 11,408 | 8/31/2021 | |
10.3.0 | 140,433 | 7/7/2021 | |
10.2.1 | 27,169 | 7/1/2021 | |
10.2.0 | 28,757 | 6/15/2021 | |
10.2.0-beta.2 | 786 | 5/5/2021 | |
10.2.0-beta.1 | 363 | 4/12/2021 | |
10.1.4 | 20,050 | 5/12/2021 | |
10.1.3 | 23,661 | 4/29/2021 | |
10.1.2 | 29,747 | 3/19/2021 | |
10.1.1 | 22,737 | 2/25/2021 | |
10.1.0 | 16,075 | 2/9/2021 | |
10.0.1 | 8,066 | 2/2/2021 | |
10.0.0-beta.6 | 445 | 1/26/2021 | |
10.0.0-beta.5 | 653 | 1/19/2021 | |
10.0.0-beta.3 | 1,167 | 12/10/2020 | |
10.0.0-beta.2 | 1,488 | 11/4/2020 | |
10.0.0-beta.1 | 747 | 10/16/2020 | |
10.0.0-alpha.43 | 375 | 10/9/2020 | |
10.0.0-alpha.34 | 484 | 10/4/2020 | |
5.1.3 | 26,689 | 2/10/2021 | |
5.1.2 | 84,668 | 10/20/2020 | |
5.1.1 | 28,028 | 10/2/2020 | |
5.1.0 | 7,628 | 9/30/2020 | |
5.0.1 | 10,896 | 9/9/2020 | |
4.3.0 | 279,528 | 2/5/2020 | |
4.2.0 | 70,472 | 10/8/2019 | |
4.1.0 | 87,981 | 8/6/2019 | |
4.0.1 | 20,447 | 6/27/2019 | |
4.0.0 | 6,381 | 6/14/2019 | |
3.4.0 | 104,704 | 1/9/2019 | |
3.3.0 | 26,530 | 11/8/2018 | |
3.2.1 | 50,406 | 9/27/2018 | |
3.2.0 | 17,554 | 9/4/2018 | |
3.1.0 | 33,606 | 7/4/2018 | |
3.0.0 | 110,583 | 4/16/2018 | |
2.2.0 | 15,151 | 3/22/2018 | |
2.1.0 | 55,382 | 11/13/2017 | |
2.0.0 | 18,461 | 10/17/2017 | |
2.0.0-rc1 | 2,652 | 10/3/2017 | |
1.6.0 | 35,710 | 8/15/2017 | |
1.5.0 | 18,100 | 6/20/2017 | |
1.4.0 | 15,003 | 5/19/2017 | |
1.3.0 | 3,788 | 5/16/2017 | |
1.2.1 | 8,031 | 5/1/2017 | |
1.2.0 | 6,053 | 4/4/2017 | |
1.1.1 | 7,573 | 3/15/2017 | |
1.1.0 | 3,750 | 3/3/2017 | |
1.0.4 | 4,981 | 2/21/2017 | |
1.0.3 | 17,137 | 2/14/2017 | |
0.82.1 | 18,539 | 1/27/2017 | |
0.82.0 | 3,460 | 1/23/2017 | |
0.81.0 | 5,557 | 12/15/2016 | |
0.80.0 | 11,693 | 10/27/2016 | |
0.78.1 | 20,657 | 9/15/2016 | |
0.78.0 | 2,800 | 9/11/2016 | |
0.77.2 | 5,674 | 8/11/2016 | |
0.77.1 | 3,233 | 7/28/2016 | |
0.76.1 | 6,125 | 6/15/2016 | |
0.76.0 | 3,498 | 6/9/2016 | |
0.75.0 | 3,313 | 6/3/2016 | |
0.74.1 | 6,010 | 5/10/2016 |
## 10.16.0 (2022-10-03)
### Enhancements
* Introduced `AsymmetricObject` intended for write-heavy workloads, where high performance is generally important. This new object:
1. syncs data unidirectionaly, from the clients to the server
1. can't be queried, deleted, or modified once added to the Realm
1. is only usable with flexible sync
1. can't be the receiveing end of any type of relationship
1. can contain `EmbeddedObject`s but cannot link to `RealmObject` or `AsymmetricObject`.
In the same write transaction, it is legal to add `AsymmetricObject`s and `RealmObject`s
```cs
class Measurement : AsymmetricObject
{
[PrimaryKey, MapTo("_id")]
public Guid Id { get; private set; } = Guid.NewGuid();
public double Value { get; set; }
public DataTimeOffset Timestamp { get; private set; } = DateTimeOffset.UtcNow;
}
class Person : RealmObject
{
//............
}
//.....
var measurement = new Measurement
{
Value = 9.876
};
realm.Write(() =>
{
realm.Add(measurement);
realm.Add(new Person());
});
_ = asymmetricObject.Value; // runtime error
_ = realm.All<Measurement>(); // compile time error
```
* Added two client reset handlers, `RecoverUnsyncedChangesHandler` and `RecoverOrDiscardUnsyncedChangesHandler`, that try to automatically merge the unsynced local changes with the remote ones in the event of a client reset. Specifically with `RecoverOrDiscardUnsyncedChangesHandler`, you can fallback to the discard local strategy in case the automatic merge can't be performed as per your server's rules. These new two stragegies simplify even more the handling of client reset events when compared to `DiscardUnsyncedChangesHandler`.`RecoverOrDiscardUnsyncedChangesHandler` is going to be the default from now on. An example is as follows
* Added two client reset handlers, `RecoverUnsyncedChangesHandler` and `RecoverOrDiscardUnsyncedChangesHandler`, that try to automatically merge the unsynced local changes with the remote ones in the event of a client reset. Specifically with `RecoverOrDiscardUnsyncedChangesHandler`, you can fallback to the discard unsynced strategy in case the automatic merge can't be performed as per your server's rules. These new two stragegies simplify even more the handling of client reset events when compared to `DiscardUnsyncedChangesHandler`.`RecoverOrDiscardUnsyncedChangesHandler` is going to be the default from now on. More info on the aforementioned strategies can be found in our [docs page](https://www.mongodb.com/docs/realm/sdk/dotnet/advanced-guides/client-reset/). An example usage of one of the new handler is as follows:
```cs
var conf = new PartitionSyncConfiguration(partition, user)
{
ClientResetHandler = new RecoverOrDiscardUnsyncedChangesHandler
{
// As always, the following callbacks are optional
OnBeforeReset = (beforeFrozen) =>
{
// executed right before a client reset is about to happen
},
OnAfterRecovery = (beforeFrozen, after) =>
{
// executed right after an automatic recovery from a client reset has completed
},
OnAfterDiscard = (beforeFrozen, after) =>
{
// executed after an automatic recovery from a client reset has failed but the DiscardUnsyncedChanges fallback has completed
},
ManualResetFallback = (session, err) =>
{
// handle the reset manually
}
}
};
```
(PR [#2745](https://github.com/realm/realm-dotnet/issues/2745))
* Introducing string query support for constant list expressions such as `realm.All<Car>().Filter("Color IN {'blue', 'orange'}")`. This also includes general query support for list vs list matching such as `realm.All<Car>().Filter("NONE Features IN {'ABS', 'Seat Heating'}")`. (Core upgrade)
* Improve performance when a new Realm file connects to the server for the first time, especially when significant amounts of data has been written while offline. (Core upgrade)
* Shift more of the work done on the sync worker thread out of the write transaction used to apply server changes, reducing how long it blocks other threads from writing. (Core upgrade)
* Improve the performance of the sync changeset parser, which speeds up applying changesets from the server. (Core upgrade)
### Fixed
* Added a more meaningful error message whenever a project doesn't have `[TargetFramework]` defined. (Issue [#2843](https://github.com/realm/realm-dotnet/issues/2843))
* Opening a read-only Realm for the first time with a `SyncConfiguration` did not set the schema version, which could lead to `m_schema_version != ObjectStore::NotVersioned` assertion failures. (Core upgrade)
* Upload completion callbacks (i.e. `Session.WaitForUploadAsync`) may have called before the download message that completed them was fully integrated. (Core upgrade)
* Fixed an exception "fcntl() with F_BARRIERFSYNC failed: Inappropriate ioctl for device" when running with MacOS on an exFAT drive. (Core upgrade)
* Syncing of a Decimal128 with big significand could result in a crash. (Core upgrade)
* `Realm.Refresh()` did not actually advance to the latest version in some cases. If there was a version newer than the current version which did not require blocking it would advance to that instead, contrary to the documented behavior. (Core upgrade)
* Several issues around notifications were fixed. (Core upgrade)
* Fix a data race on RealmCoordinator::m_sync_session which could occur if multiple threads performed the initial open of a Realm at once.
* If a SyncSession outlived the parent Realm and then was adopted by a new Realm for the same file, other processes would not get notified for sync writes on that file.
* Fix one cause of QoS inversion warnings when performing writes on the main thread on Apple platforms. Waiting for async notifications to be ready is now done in a QoS-aware ways.
* If you set a subscription on a link in flexible sync, the server would not know how to handle it ([#5409](https://github.com/realm/realm-core/issues/5409), since v11.6.1)
* If a case insensitive query searched for a string including an 4-byte UTF8 character, the program would crash. (Core upgrade)
* Added validation to prevent adding a removed object using Realm.Add. (Issue [#3020](https://github.com/realm/realm-dotnet/issues/3020))
### Compatibility
* Realm Studio: 12.0.0 or later.
### Internal
* Using Core 12.7.0.