objectbox-dart

Flutter database for super-fast Dart object persistence

APACHE-2.0 License

Stars
1K

Bot releases are visible (Hide)

objectbox-dart - v1.3.0

Published by greenrobot-team almost 3 years ago

  • Support annotating a single property with @Unique(onConflict: ConflictStrategy.replace) to
    replace an existing object if a conflict occurs when doing a put. #297
objectbox-dart -

Published by greenrobot-team almost 3 years ago

  • Fix Flutter apps crashing on iOS 15 simulator. #313
  • Fix ToMany.applyToDb() not working after putting object with empty ToMany.
  • Update objectbox-android to 3.0.1.
objectbox-dart - v1.2.0

Published by vaind about 3 years ago

  • Add Query.findUnique() to find a single object matching the query.
  • Add support for relations when using 3rd-party JSON serialization libraries.
  • Fix generator when mixing backlinks and "standard" relations in the same entity (generated code had a syntax error).
  • Fix @Backlink() annotation when specifying a ToOne relation by field name.
  • Fix Query.find*() exception forwarding when a user-provided property converter throws.
  • Increase supported analyzer dependency version to include v2.x major version.
  • Update FlatBuffer dependency to the latest upstream version.
objectbox-dart - v1.1.1

Published by vaind over 3 years ago

  • Add support for Query.param() on linked entities.
  • Fix generated openStore() for apps that don't enable null-safety yet.
objectbox-dart - v1.1.0

Published by vaind over 3 years ago

  • New openStore() in the generated code to simplify creating a store instance, especially on Flutter (uses application
    documents directory as a default).
  • Add support for Entities used together with some custom code-generators (immutable objects, JSON, ...).
    See @Entity(realClass: ) new field and its docs.
  • New Query.param() to support reusable queries (changing condition values before execution).
    See Reusing queries in docs.
  • Rename semi-internal QueryRelationProperty to QueryRelationToOne and QueryRelationMany to QueryRelationToMany
    to help users pick the right link function: link() vs linkMany().
  • Add support for the entity/property/relation rename or reset workflow.
    See Data model updates for details.
  • Add support for ToOne relation cycles.
  • Enforce you can only open the same database directory once (multiple parallel Store instances are not allowed).
  • Fix macOS sandbox database directory permissions (see notes in Flutter-specific "Getting Started" docs).
  • Fix ToMany showing duplicate items after adding them before reading the previous list.
  • Fix invalid native free during store shutdown if large data was inserted (more than 64 kilobytes flatbuffer).
  • FlatBuffers serialization performance improvements.
  • Update to objectbox-android v2.9.2-RC3.
objectbox-dart - v1.0.0

Published by vaind over 3 years ago

  • New Box putAsync() returning a Future and putQueued() for asynchronous writes.
  • Query now supports auto-closing. You can still call close() manually if you want to free native resources sooner
    than they would be by Dart's garbage collector, but it's not mandatory anymore.
  • Change the "meta-model" fields to provide completely type-safe query building.
    Conditions you specify are now checked at compile time to match the queried entity.
  • Make property queries fully typed, PropertyQuery.find() now returns the appropriate List<...> type without casts.
  • Query conditions inside() renamed to oneOf(), notIn() and notInList() renamed to notOneOf().
  • Query stream and findStream() are replaced by QueryBuilder.watch(), i.e. box.query(...).watch().
  • New Query stream() to stream objects all the while the query is executed in the background.
  • New Query condition between() for integers and IDs.
  • Store subscribe<EntityType>() renamed to watch().
  • Store subscribeAll() replaced by a shared broadcast stream entityChanges.
  • Entities can now contain final fields and they're properly stored/loaded (must be constructor params).
  • Flutter desktop - native library is now downloaded automatically, same as for mobile platforms.
  • Follow exception-vs-error throwing conventions - throwing errors when it's a permanent developer-caused error. Namely,
    there's a new UniqueViolationException thrown when an object you're trying to put() would violate a Unique() index.
  • Even higher than usual amount of internal optimizations and improvements.
  • Update to objectbox-c v0.14.0.
  • Update to objectbox-swift v1.6.0.
  • Update to objectbox-android v2.9.2-RC.
objectbox-dart - v0.15.0

Published by vaind over 3 years ago

This is a 1.0 release candidate - please try it out and give us any last-minute feedback, especially on new and changed APIs.

  • New Box putAsync() returning a Future and putQueued() for asynchronous writes.
  • Query now supports auto-closing. You can still call close() manually if you want to free native resources sooner
    than they would be by Dart's garbage collector, but it's not mandatory anymore.
  • Change the "meta-model" fields to provide completely type-safe query building.
    Conditions you specify are now checked at compile time to match the queried entity.
  • Make property queries fully typed, PropertyQuery.find() now returns the appropriate List<...> type without casts.
  • Query conditions inside() renamed to oneOf(), notIn() and notInList() renamed to notOneOf().
  • Query stream and findStream() are replaced by QueryBuilder.watch(), i.e. box.query(...).watch().
  • New Query stream() to stream objects all the while the query is executed in the background.
  • Store subscribe<EntityType>() renamed to watch().
  • Store subscribeAll() replaced by a shared broadcast stream entityChanges.
  • Entities can now contain final fields and they're properly stored/loaded (must be constructor params).
  • Flutter desktop - native library is now downloaded automatically, same as for mobile platforms.
  • Follow exception-vs-error throwing conventions - throwing errors when it's a permanent developer-caused error. Namely,
    there's a new UniqueViolationException thrown when an object you're trying to put() would violate a Unique() index.
  • Even higher than usual amount of internal optimizations and improvements.
  • Update to objectbox-c v0.14.0.
  • Update to objectbox-swift v1.6.0.
  • Update to objectbox-android v2.9.2-RC.
objectbox-dart - v0.14.0

Published by vaind over 3 years ago

  • Fix non-nullable DateTime fields deserialization regression (introduced in v0.13.0) - fields were read as nanosecond instead of millisecond timestamp.
  • Respect case-sensitivity setting in string PropertyQuery.count() with distinct = true (the result was always like with caseSensitive = true).
  • Query findFirst() doesn't change Query object's offset and limit anymore.
  • Change Query string conditions caseSensitive default to true, previously conditions were case-insensitive by default.
  • Introduce Store constructor argument queriesCaseSensitiveDefault - allows changing the default value of caseSensitive in queries.
    This includes string PropertyQuery when using distinct = true.
  • Get around Flutter's Android release build issue by changing the code the compiler had trouble with.
  • Remove deprecated APIs from internal plugin interfaces (deprecation notice printed during Flutter build).
  • Generator - update dependencies to their null-safe versions.
  • Generated code - avoid more linter issues.
objectbox-dart - v0.13.0

Published by vaind over 3 years ago

  • Null-safety support: both in the library and the generated code.
  • Remove deprecated arguments offset, limit, withEqual from Query methods.
  • More performance optimizations, mostly in our FlatBuffers fork.
  • Fix FlatBuffers builder growing.
  • Update to objectbox-c v0.13.0
  • Update to objectbox-android v2.9.1
  • Increase minimum SDK versions: Flutter v2.0 & Dart v2.12.
objectbox-dart - v0.13.0-nullsafety.3

Published by vaind over 3 years ago

Null safety pre-release, including new features and performance improvements (details will be specified in the final release).
Any feedback is welcome - raise a GitHub issue or comment on an existing one.

objectbox-dart - v0.12.1

Published by vaind over 3 years ago

  • Further performance optimizations in our FlatBuffers fork.
  • Avoid empty FFI structs - get rid of "INFO" messages with new Dart SDK v2.12.
  • More internal changes in preparation for null-safety.
objectbox-dart - v0.12.0

Published by vaind over 3 years ago

  • Recognize DateTime entity fields, setting PropertyType.date (millisecond storage precision).
  • Support specifying PropertyType.dateNano for DateTime fields (nanosecond storage precision).
  • Add Store.reference getter and Store.fromReference() factory - enabling access to store from multiple isolates.
  • Add Store.subscribe<EntityType>() and Store.subscribeAll() data change event streams.
  • Add multiple SyncClient event streams.
  • Add Query conditions for lessOrEqual/greaterOrEqual on integer and double property types.
  • Add self-assignable IDs: annotation @Id(assignable: true).
  • Update to objectbox-c v0.12.0
  • Update to objectbox-android v2.9.0
  • Update to objectbox-swift v1.5.0
  • Increase minimum SDK versions: Flutter v1.20 & Dart v2.9. Code generator already required Flutter v1.22 & Dart v2.10.
objectbox-dart - v0.11.1

Published by vaind over 3 years ago

  • Fix List<String> and List<int> reading - replace official FlatBuffers lazy reader with a custom (eager) one.
objectbox-dart - v0.11.0

Published by vaind over 3 years ago

  • Add ToOne<> class to wrap related entities. See examples for details.
    (thanks @Buggaboo for jump-starting this).
  • Add ToMany<> class to wrap related entities. See examples for details.
  • Significantly improve Box read and write performance.
  • Change Box.put() and putMany() - now also update given object's ID property.
    Note: If you previously put() the same new object instance multiple times without setting id, the object will now
    be inserted only the first time, and overwritten on subsequent puts of the same instance, its ID is not zero anymore.
  • Change Box.putMany() and Query.FindIds() to return fixed-size lists.
  • Change Box.GetMany() to return a fixed-size list by default, with an option to return a growable list.
  • Change @Id() annotation to optional - recognized automatically if there's an int id field (case insensitive).
  • Make observable.dart part of objectbox.dart exports, no need to import it separately.
  • Expose PutMode - allowing semantics choice between put, update and insert.
  • Hide internal classes not intended for general use (e.g. all Model* classes).
  • Rename versionLib() to nativeLibraryVersion().
  • Change TxMode enum values to lowercase.
  • Remove flags from the Property() annotation.
objectbox-dart - v0.10.0

Published by vaind almost 4 years ago

  • Change type field on @Property() annotation to PropertyType.
  • Add support for string array properties: List<String>.
  • Add support for byte array properties: List<Int>, Uint8List, Int8List.
  • Add @Index() and @Unique() property annotations
    (thanks @Buggaboo for #123).
  • Add Query.remove() to remove all objects matching the query.
  • Fix Query.findStream() to only rerun on changes to the queried type
    (thanks @RTrackerDev and @Buggaboo for #152).
  • Mark offset and limit query parameters deprecated, use offset() and limit() instead.
  • Update to objectbox-swift 1.4.1
  • Internal changes in preparation for null-safety (still waiting for our dependencies to migrate).
objectbox-dart - v0.9.0

Published by vaind almost 4 years ago

  • Update to objectbox-c 0.11.0
  • Update to objectbox-android 2.8.0
  • Change box.get(id) to return null instead of throwing when trying to read a non-existent object.
  • Change the generator to skip read-only fields (getters)
  • Add SyncClient to enable the new ObjectBox Sync
  • Add "empty" query support using box.query().
    (thanks @Buggaboo for #132)
  • Expose lib/observable.dart to avoid linter isues in apps using objectbox.
    (thanks @cmengler for bringing this up in #141)
  • Documentation and examples updates & improvements.
  • Switch C-API binding code generation to package ffigen.
objectbox-dart -

Published by greenrobot-team about 4 years ago

  • Update to objectbox-c 0.10.0.
  • Update to objectbox-android 2.7.1.
  • Update to objectbox-swift 1.4.0.
  • String startsWith and endsWith condition: removed unused descending parameter, add caseSensitive parameter.
  • String greaterThan/lessThan condition: withEqual is deprecated, use the greaterOrEqual/lessOrEqual condition instead.
  • Query find/findIds offset and limit parameters are deprecated, set them using the equally named methods instead.
  • New support to create a Dart Stream from a Query (thanks @Buggaboo for #88).
objectbox-dart - v0.7.0

Published by vaind about 4 years ago

  • Flutter v1.20 support
    (move libs to separate package objectbox_flutter_libs, add it as a new dependency if you use Flutter)
  • New property query support
    (thanks Jasm Sison for #75)
  • New @Transient annotation to skip storing select properties
    (thanks Jasm Sison for #98)
  • Handle Byte property as a signed int8 (was previously unsigned) to align with other bindings
objectbox-dart - v0.6.4

Published by vaind over 4 years ago

  • Update to objectbox-swift 1.3.0
  • Update to objectbox-android 2.5.1
objectbox-dart - v0.6.3

Published by vaind over 4 years ago

  • Update FlatBuffers to 1.12.0
  • Provide error hinting when DB can't be created (e.g. when an app docs directory isn't passed properly on Flutter).