objectbox library
ObjectBox for Dart is a standalone database storing Dart objects locally, with strong ACID semantics.
Read the Getting Started guide.
Classes
- Admin
- ObjectBox Admin allows you to explore the database in a regular web browser.
- Backlink
- Backlink annotation specifies a link in a reverse direction of another relation.
-
Box<
T> - A Box instance gives you access to objects of a particular type. You get Box instances via Store.box() or Box(Store).
-
Condition<
EntityT> - A Query condition base class.
- DebugFlags
-
Passed as
debugFlags
when calling Store.new to enable debug options. - Entity
- Entity annotation is used on a class to let ObjectBox know it should store it - making the class a "persistable Entity".
- HnswFlags
- Flags as a part of the HnswIndex configuration.
- HnswIndex
- See HnswIndex.new.
- Id
- Annotation Id can be used to specify an entity ID property if it's named anything else then "id" (case insensitive).
- IdWithScore
- Wraps the ID of a matching object and a score when using Query.findIdsWithScores.
- Index
- Specifies that the property should be indexed.
-
ObjectWithScore<
T> - Wraps a matching object and a score when using Query.findWithScores.
- Order
- Groups query order flags.
- Property
- Use to (optionally) annotate a field to explicitly configure some details about how a field is stored in the database.
-
PropertyQuery<
T> - Property query base.
-
Query<
T> - A repeatable Query returning the latest matching Objects.
-
QueryBacklinkToMany<
Source, Target> -
QueryBooleanProperty<
EntityT> -
QueryBuilder<
T> - Query builder allows creating reusable queries.
-
QueryByteVectorProperty<
EntityT> -
QueryDateNanoProperty<
EntityT> -
This wraps QueryIntegerProperty for DateTime properties annotated with
@Property(type: PropertyType.dateNano)
to avoid having to manually convert to nanoseconds (DateTime.microsecondsSinceEpoch* 1000
) when creating query conditions. -
QueryDateProperty<
EntityT> - This wraps QueryIntegerProperty for DateTime properties to avoid having to manually convert to DateTime.millisecondsSinceEpoch when creating query conditions.
-
QueryDoubleProperty<
EntityT> -
QueryDoubleVectorProperty<
EntityT> - For double vectors greater and less queries are supported on elements of the vector (e.g. "has element greater").
-
QueryHnswProperty<
EntityT> - Provides extra conditions for float vector properties with an HnswIndex.
-
QueryIntegerProperty<
EntityT> -
QueryIntegerVectorProperty<
EntityT> - For integer vectors (excluding QueryByteVectorProperty) greater, less and equal are supported on elements of the vector (e.g. "has element greater").
-
QueryProperty<
EntityT, DartType> - The QueryProperty types allow users to build query conditions on a property.
-
QueryRelationToMany<
Source, Target> -
QueryRelationToOne<
Source, Target> -
QueryStringProperty<
EntityT> -
QueryStringVectorProperty<
EntityT> - Store
- Represents an ObjectBox database and works together with Box to allow getting and putting.
- Sync
- ObjectBox Sync makes data available and synchronized across devices, online and offline.
- SyncChange
- Sync incoming data event.
- SyncClient
- Sync client is used to connect to an ObjectBox sync server. Use through Sync.
- SyncCredentials
- Credentials used to authenticate a sync client against a server.
-
ToMany<
EntityT> -
A to-many relation of an entity that references multiple objects of a "target" entity
EntityT
. -
ToOne<
EntityT> -
A to-one relation of an entity that references one object of a "target" entity
EntityT
. - Transient
- Transient annotation marks fields that should not be stored in the database.
- Unique
- Enforces that the value of a property is unique among all objects in a box before an object can be put.
- Version
- Wrapper for a semantic version information.
Enums
- ConflictStrategy
- Used with Unique to specify the conflict resolution strategy.
- IndexType
- IndexType can be used to change what type ObjectBox uses when indexing a property.
- PropertyType
- Use with Property.type.
- PutMode
- Box put (write) mode.
- SyncConnectionEvent
- Connection state change event.
- SyncLoginEvent
- Login state change event.
- SyncRequestUpdatesMode
- Configuration of how SyncClient fetches remote updates from the server.
- SyncState
- Current state of the SyncClient.
- TxMode
- Configure transaction mode. Used with Store.runInTransaction().
- VectorDistanceType
- The vector distance algorithm used by an HnswIndex (vector search).
Extensions
-
DoublePropertyQuery
on PropertyQuery<
double> - "Property query" for a double field. Created by Query.property().
-
IntegerPropertyQuery
on PropertyQuery<
int> - "Property query" for an integer field. Created by Query.property().
- ObservableStore on Store
- StreamController implementation inspired by the sample controller sample at: https://dart.dev/articles/libraries/creating-streams#honoring-the-pause-state https://dart.dev/articles/libraries/code/stream_controller.dart
-
QueryParamBool
on QueryParam<
bool> - QueryParam for boolean properties
-
QueryParamBytes
on QueryParam<
List< int> > - QueryParam for byte vector properties
-
QueryParamDouble
on QueryParam<
double> - QueryParam for double properties
-
QueryParamInt
on QueryParam<
int> - QueryParam for int properties
-
QueryParamString
on QueryParam<
String> - QueryParam for string properties
- QuerySetParam on Query
- Adds capabilities to set query parameters
-
StringPropertyQuery
on PropertyQuery<
String> - "Property query" for a string field. Created by Query.property().
Exceptions / Errors
- DbFileCorruptException
- Errors were detected in a database file, e.g. illegal values or structural inconsistencies.
- DbFullException
-
Thrown when applying a transaction (e.g. putting an object) would exceed the
maxDBSizeInKB
configured when calling Store.new. - DbMaxDataSizeExceededException
-
Thrown when applying a transaction would exceed the
maxDataSizeInKByte
configured when calling Store.new. - DbMaxReadersExceededException
- Thrown when the maximum amount of readers (read transactions) was exceeded.
- DbPagesCorruptException
- Errors related to pages were detected in a database file, e.g. bad page refs outside of the file.
- DbShutdownException
- Thrown when an error occurred that requires the store to be closed.
- NonUniqueResultException
-
Thrown if
Query.findUnique()
is called, but the query matches more than one object. - NumericOverflowException
-
Thrown if a property query aggregate function (e.g.
sum()
) can not compute a result due to a number type overflowing. - ObjectBoxException
- ObjectBox database exception.
- SchemaException
- Thrown when there is an error with the data schema (data model).
- StorageException
- ObjectBox database exception with an OBX_ERROR code.
- UniqueViolationException
- A unique constraint would have been violated by this database operation.