v2.1.0
-
Support for integer and floating point lists: store 8-bit, 16-bit, 32-bit and 64-bit integer
lists as well as 32-bit and 64-bit floating point lists (called "vectors" by ObjectBox).Use a
typed_data
class likeInt16List
,Uint16List
orFloat32List
for large lists, it uses
less memory and CPU. Otherwise just use a Dart number list.A simple example is a shape entity that stores a palette of RGB colors:
@Entity() class Shape { @Id() int id = 0; // An array of RGB color values that are used by this shape. Int32List? palette; }
This can also be useful to store vector embeddings produced by machine learning:
@Entity() class ImageEmbedding { @Id() int id = 0; // Link to the actual image, e.g. on Cloud storage String? url; // The coordinates computed for this image (vector embedding) @Property(type: PropertyType.floatVector) List<double>? coordinates; }
Note: for queries currently only the
isNull
andnotNull
conditions are supported. -
Changed
PropertyType.char
from a 8-bit signed integer to a 16-bit unsigned integer to match the
ObjectBox database type. -
Fix put returning an incorrect error message in a rare case.
-
Require at least Dart SDK 2.18 (shipped with Flutter 3.3.0).
-
Let
Store.awaitQueueCompletion
actually wait on the async queue to become idle. It previously
behaved likeStore.awaitQueueSubmitted
. -
Fix analysis event send failure breaking the code generator. #542
In this release objectbox_flutter_libs
ships with objectbox-android 3.5.1
and ObjectBox pod 1.8.1
.