Realm is a mobile database: a replacement for Core Data & SQLite
Switch to building the Carthage release with Xcode 14.3.
URL.path
in Realm.Configuration.fileURL
when using a string partition key in Partition Based Sync (#8195), since v10.0.0).RLMRealmConfiguration
failed to copy several fields. This resulted in migrations being passed the incorrect object type in Swift when using the default configuration (since v10.34.0) or async open (since v10.37.0). This also broke using the Events API in those two scenarios (since v10.26.0 for default configuration and v10.37.0 for async open). (#8190)Results.count
) the number of exact matches (with no other query conditions) on a string/int/UUID/ObjectID property that has an index. This improvement will be especially noticeable if there are a large number of results returned (duplicate values).@Sendable
annotations to several sync and app services related callbacks (PR #8169, since v10.34.0).myIndexedAny == "Foo"
would incorrectly match on values of "foo" or "FOO" etc. (Core #6376, since v10.8.0)MongoCollection.watch().subscribe(on:)
now supports any swift Scheduler rather than only dispatch queues (PR #8131).MongoCollection.watch()
, allowing you to do for try await change in collection.changeEvents { ... }
(PR #8131).SyncError
is delivered to the sync error handler with the code .writeRejected
and a non-nil compensatingWriteInfo
field which contains information about what was rejected and why. This information is intended primarily for debugging and logging purposes and may not have a stable format. (PR #8002)Realm.init()
now handles Task cancellation and will cancel the async open if the Task is cancelled (PR #8148).UserPublisher
incorrectly bounced all notifications to the main thread instead of setting up the Combine publisher to correctly receive on the main thread. (#8132, since 10.21.0)initialSubscriptions
would result in the callback being invoked with both a non-nil Realm and a non-nil Error even though the Realm was in an invalid state. Now only the error is passed to the callback (PR #8148, since v10.28.0).Events.beginScope()
now returns a Scope
object which is used to commit or cancel that scope, and if more than one scope is active at a time events are reported to all active scopes.List
items to a higher index in SwiftUI results in wrong destination index (#7956, since v10.6.0).searchable
view modifier with @ObservedResults
in iOS 16 would cause the collection observation subscription to cancel. (#8096, since 10.21.0)This version bumps the Realm file format version to 23. Realm files written by this version cannot be read by older versions of Realm.
Set<AnyRealmValue>
and List<AnyRealmValue>
considered a string and binary data containing that string encoded as UTF-8 to be equivalent. This could result in a List entry not changing type on assignment and for the client be inconsistent with the server if a string and some binary data with equivalent content was inserted from Atlas. (Core #4860 and Core #6201, since v10.8.0)@preconcurrency
annotations which lead to build failures
with Xcode 14.0 when importing via SPM or CocoaPods
(#8104, since v10.34.0).