ObjectBox C/C++ database v0.18.0 Release Notes
Release Date: 2022-10-31 // over 1 year ago-
- Date properties can now be tagged as expiration time; which can be then be easily evicted
- ๐ง Tree API: various additions and improvements, e.g. OBXTreeOptionFlags to configure the tree behavior
- ๐ New query condition to match objects that have a given number of relations
- ๐ New "max data size" store setting
- Enabled stricter compiler settings
- โ Added stacktraces on errors (Linux only; very lightweight as it uses external addr2line or llvm-symbolizer)
- โ Added log callback for most important logs
- Consolidated "user data" passing as the last parameter
- Various internal improvements
C++
- โ Added BoxTypeless, QueryBuilderBase and QueryBase: these can be used without generated code and template types.
- ๐ New APIs to get the schema IDs for entity types and properties
- โ Added two methods to Store to await asynchronous processing
- โ Added "internal" namespace so that internal members do not spill into the obx namespace
- Move more implementations to OBX_CPP_FILE
๐ Sync
- ๐ Custom protocols for Sync: plugin your own messaging protocol, which ObjectBox Sync will run on
- ๐ Improvements to run Sync Server with limited disk space (e.g. on small devices)
- ๐ Tree Sync improvements; e.g. consolidate conflicts
- ๐ WebSockets (sync protocol) is now a feature, which can be turned off (special build version)
- ๐ Performance optimizations
Previous changes from v0.17.0
-
- โ Added a "weak store" API providing weak reference for stores (typically used by background threads)
- โ Added Store ID API, e.g. getting a store by its ID
- ๐ Various internal improvements including minor optimizations for binary size and performance
C++
- New "OBX_CPP_FILE" define to place declarations in a single .cpp/.cc file: improves compilation time and results
- ๐ New "Exception" base class for all thrown exceptions
- ๐ Various internal improvements, e.g. a "internal" namespace to better distinguish from userland API