Enhancements
- Add support for some missing query operations on data properties:
- Data properties can be compared to other data properties (e.g. "dataProperty1 == dataProperty2").
- Case and diacritic-insensitive queries can be performed on data properties. This will only have meaningful results if the data property contains UTF-8 string data.
- Data properties on linked objects can be queried (e.g. "link.dataProperty CONTAINS %@")
- Implement queries which filter on lists other than object links (lists of objects were already supported). All supported operators for normal properties are now supported for lists (e.g. "ANY intList = 5" or "ANY stringList BEGINSWITH 'prefix'"), as well as aggregate operations on the lists (such as "intArray.@sum > 100").
- Performance of sorting on more than one property has been improved. Especially important if many elements match on the first property. Mitigates (#7092)
Fixed
- Fixed a bug that prevented an object type with incoming links from being marked as embedded during migrations. (Core #4414)
- The Realm notification listener thread could sometimes hit the assertion failure "!skip_version.version" if a write transaction was committed at a very specific time (since v10.5.0).
- Added workaround for a case where upgrading an old file with illegal string would crash (#7111).
- Fixed a conflict resolution bug related to the ArrayMove instruction, which could sometimes cause an "Invalid prior_size" exception to prevent synchronization (since v10.5.0).
- Skipping a change notification in the first write transaction after the observer was added could potentially fail to skip the notification (since v10.5.1).
Compatibility
- Realm Studio: 10.0.0 or later.
- APIs are backwards compatible with all previous releases in the 10.x.y series.
- Carthage release for Swift is built with Xcode 12.4.
- CocoaPods: 1.10 or later.
Internal
- Upgraded realm-core from v10.5.0 to v10.5.3
Assets
5
Enhancements
- Add
@StateRealmObjectfor SwiftUI support. This property wrapper type instantiates an observable object on a View. Use in place ofSwiftUI.StateObjectfor RealmObject,List, andEmbeddedObjecttypes. - Add
@ObservedRealmObjectfor SwiftUI support. This property wrapper type subscribes to an observable object and invalidates a view whenever the observable object changes. Use in place ofSwiftUI.ObservedObjectfor RealmObject,List, orEmbeddedObjecttypes. - Add
@ObservedResultsfor SwiftUI support. This property wrapper type retrieves results from a Realm. The results use the realm configuration provided by the environment valueEnvironmentValues.realmConfiguration. - Add
EnvironmentValues.realmandEnvironmentValues.realmConfigurationforRealmandRealm.Configurationtypes respectively. Values can be injected into views using theView.environmentmethod, e.g., MyView().environment(.realmConfiguration, Realm.Configuration(fileURL: URL(fileURLWithPath: "myRealmPath.realm"))). The value can then be declared on the exampleMyViewas@Environment(.realm) var realm`. - Add
SwiftUI.Bindingextensions whereValueis of typeObject,List, orEmbeddedObject. These extensions expose methods for wrapped write transactions, to avoid boilerplate within views, e.g.,TextField("name", $personObject.name)or$personList.append(Person()). - Add
Object.bindandEmbeddedObject.bindfor SwiftUI support. This allows you to create bindings of realm properties when a propertyWrapper is not available for you to do so, e.g.,TextField("name", personObject.bind(\.name)). - The Sync client now logs error messages received from server rather than just the size of the error message.
- Errors returned from the server when sync WebSockets get closed are now captured and surfaced as a SyncError.
- Improve performance of sequential reads on a Results backed directly by a Table (i.e.
realm.object(ClasSName.self)with no filter/sort/etc.) by 50x. - Orphaned embedded object types which are not linked to by any top-level types are now better handled. Previously the server would reject the schema, resulting in delayed and confusing error reporting. Explicitly including an orphan in
objectTypesis now immediately reported as an error when opening the Realm, and orphans are automatically excluded from the auto-discovered schema whenobjectTypesis not specified.
Fixed
- Reading from a Results backed directly by a Table (i.e.
realm.object(ClasSName.self)with no filter/sort/etc.) would give incorrect results if the Results was constructed and accessed before creating a new object with a primary key less than the smallest primary key which previously existed. (#7014, since v5.0.0). - During synchronization you might experience crash with "Assertion failed: ref + size <= next->first". (Core #4388)
Compatibility
- Realm Studio: 10.0.0 or later.
- APIs are backwards compatible with all previous releases in the 10.x.y series.
- Carthage release for Swift is built with Xcode 12.4.
- CocoaPods: 1.10 or later.
Internal
- Upgraded realm-core from v10.4.0 to v10.5.0
Assets
5
realm-ci
released this
Enhancements
- Add support for "thawing" objects.
Realm,Results,ListandObjectnow havethaw()methods which return a live copy of the frozen object. This enables app behvaior where a frozen object can be made live again in order to mutate values. For example, first freezing an object passed into UI view, then thawing the object in the view to update values. - Add Xcode 12.4 binaries to the release package.
Fixed
- Inserting a date into a synced collection via
AnyBSON.datetime(...)would be of typeTimestampand notDate.
This could break synced objects with aDateproperty (#6654, since v10.0.0). - Fixed an issue where creating an object after file format upgrade may fail with assertion "Assertion failed: lo() <= std::numeric_limits<uint32_t>::max()" (#4295, since v5.0.0)
- Allow enumerating objects of types which are no longer present in the schema.
- Add
RLMResponse.customStatusCode. This fixes timeout exceptions that were occuring with a poor connection. (#4188) - Fix -
RLMResponsewill have a non nilcustomStatusCodein case of error. (#4188) - Limit availability of ObjectKeyIdentifiable to platforms which support Combine to match the change made in the Xcode 12.5 SDK. #7083)
Compatibility
- Realm Studio: 10.0.0 or later.
- APIs are backwards compatible with all previous releases in the 10.x.y series.
- Carthage release for Swift is built with Xcode 12.4.
- CocoaPods: 1.10 or later.
Internal
- Upgraded realm-core from v10.3.3 to v10.4.0
Assets
5
realm-ci
released this
Enhancements
- Add Xcode 12.3 binary to release package.
- Add support for queries which have nil on the left side and a keypath on the
right side (e.g. "nil == name" rather than "name == nil" as was previously
required).
Fixed
- Timeouts when calling server functions via App would sometimes crash rather
than report an error. - Fix a race condition which would lead to "uncaught exception in notifier
thread: N5realm15InvalidTableRefE: transaction_ended" and a crash when the
source Realm was closed or invalidated at a very specific time during the
first run of a collection notifier
(#3761, since v5.0.0). - Deleting and recreating objects with embedded objects may fail.
(Core PR #4240, since v10.0.0) - Fast-enumerating a List after deleting the parent object would crash with an
assertion failure rather than a more appropriate exception.
(Core #4114, since v5.0.0).
Compatibility
- Realm Studio: 10.0.0 or later.
- APIs are backwards compatible with all previous releases in the 10.x.y series.
- Carthage release for Swift is built with Xcode 12.3.
- CocoaPods: 1.10 or later.
Internal
- Upgraded realm-core from v10.3.2 to v10.3.3
Assets
5
realm-ci
released this
Enhancements
- MongoDB Realm is now supported when installing Realm via Swift Package Manager.
Fixed
- The user identifier was added to the file path for synchronized Realms twice and an extra level of escaping was performed on the partition value. This did not cause functional problems, but made file names more confusing than they needed to be. Existing Realm files will continue to be located at the old path, while newly created files will be created at a shorter path. (Since v10.0.0).
- Fix a race condition which could potentially allow queries on frozen Realms to access an uninitialized structure for search indexes (since v5.0.0).
- Fix several data races in App and SyncSession initialization. These could possibly have caused strange errors the first time a synchronized Realm was opened (since v10.0.0).
- Fix a use of a dangling reference when refreshing a user’s custom data that could lead to a crash (since v10.0.0).
Compatibility
- Realm Studio: 10.0.0 or later.
- APIs are backwards compatible with all previous releases in the 10.x.y series.
- Carthage release for Swift is built with Xcode 12.2.
- CocoaPods: 1.10 or later.
Internal
- Upgraded realm-core from v10.1.4 to v10.3.2
Assets
5
realm-ci
released this
Enhancements
- Add Combine support for App and User. These two types now have a
objectWillChangeproperty that emits each time the state of the object has changed (such as due to the user logging in or out). (PR #6977).
Fixed
- Integrating changsets from the server would sometimes hit the assertion failure "n != realm::npos" inside Table::create_object_with_primary_key() when creating an object with a primary key which previously had been used and had incoming links. (Core PR #4180, since v10.0.0).
- The arm64 simulator slices were not actually included in the XCFramework release package. (PR #6982, since v10.2.0).
Compatibility
- Realm Studio: 10.0.0 or later.
- APIs are backwards compatible with all previous releases in the 10.x.y series.
- Carthage release for Swift is built with Xcode 12.2.
- CocoaPods: 1.10 or later.
Internal
- Upgraded realm-core from v10.1.3 to v10.1.4
- Upgraded realm-sync from v10.1.4 to v10.1.5
Assets
5
realm-ci
released this
Enhancements
- Add Google OpenID Connect Credentials, an alternative login credential to the Google OAuth 2.0 credential.
Fixed
- Fixed a bug that would prevent eventual consistency during conflict resolution. Affected clients would experience data divergence and potentially consistency errors as a result if they experienced conflict resolution between cycles of Create-Erase-Create for objects with primary keys (since v10.0.0).
Compatibility
- Realm Studio: 10.0.0 or later.
- APIs are backwards compatible with all previous releases in the 10.x.y series.
- Carthage release for Swift is built with Xcode 12.2.
- CocoaPods: 1.10 or later.
Internal
- Upgraded realm-sync from v10.1.3 to v10.1.4
Assets
5
realm-ci
released this
Enhancements
- The prebuilt binaries are now packaged as XCFrameworks. This adds support for
Catalyst and arm64 simulators when using them to install Realm, removes the
need for the strip-frameworks build step, and should simplify installation. - The support functionality for using the Objective C API from Swift is now
included in Realm Swift and now includes all of the required wrappers for
MongoDB Realm types. In mixed Objective C/Swift projects, we recommend
continuing to use the Objective C types, but import both Realm and RealmSwift
in your Swift files.
Fixed
- The user identifier was added to the file path for synchronized Realms twice
and an extra level of escaping was performed on the partition value. This did
not cause functional problems, but made file names more confusing than they
needed to be. Existing Realm files will continue to be located at the old
path, while newly created files will be created at a shorter path. (Since v10.0.0).
Compatibility
- Realm Studio: 10.0.0 or later.
- APIs are backwards compatible with all previous releases in the 10.x.y series.
- Carthage release for Swift is built with Xcode 12.2.
- CocoaPods: 1.10 or later.
Assets
5
realm-ci
released this
Enhancements
- Add arm64 slices to the macOS builds.
Compatibility
- Realm Studio: 10.0.0 or later.
- APIs are backwards compatible with all previous releases in the 10.x.y series.
- Carthage release for Swift is built with Xcode 12.2.
- CocoaPods: 1.10 or later.
Internal
- Upgraded realm-core from v10.0.1 to v10.1.3
- Upgraded realm-sync from v10.0.1 to v10.1.3
Assets
5
realm-ci
released this
Enhancements
- Add Xcode 12.2 binaries to the release package.
Fixed
- Disallow setting
RLMRealmConfiguration.deleteRealmIfMigrationNeeded/Realm.Config.deleteRealmIfMigrationNeededwhen sync is enabled. This did not actually work as it does not delete the relevant server state and broke in confusing ways (PR #6931).
Compatibility
- Realm Studio: 10.0.0 or later.
- APIs are backwards compatible with all previous releases in the 10.x.y series.
- Carthage release for Swift is built with Xcode 12.1.
- CocoaPods: 1.10 or later.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
