ObjectBox C/C++ database v0.18.0 Release Notes
Release Date: 2022-10-31 // about 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