All Versions
27
Latest Version
Avg Release Cycle
62 days
Latest Release
907 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v0.18.0 Changes
October 31, 2022- 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
-
v0.17.0 Changes
June 15, 2022- โ 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
-
v0.16.0 Changes
May 06, 2022- ๐ Allow UTF-8 for database directories on Windows (available for other platforms before)
- Various internal improvements
C++
- Promoted
Options
to a top level class, as nested classes cannot be declared forward - ๐ New
#define
to disable FlatBuffers includes to simplify new project setup - ๐ป Rename
Exception
toDbException
- Minor improvements
-
v0.15.2 Changes
February 15, 2022- โ Add store cloning
- ๐ Fix attaching to a reopened store
-
v0.15.1 Changes
January 25, 2022- ๐ Fix non-unique indexes triggering unique constraint violations in corner cases (introduced in 0.15.0)
- ๐ Minor performance improvements with hashed indexes
- ๐ป Admin UI now supports multiple sessions to the same host using different ports (session ID via HTTP request)
๐ Sync
- ๐ Performance improvements for compression and decompression
-
v0.15.0 Changes
December 09, 2021- ๐ New "Flex" data type that can contain data of various types like integers, floating points, strings, lists and maps
- ๐ New query conditions for Flex lists to find a specific element
- ๐ New query conditions for Flex maps to find elements with a specific key or key/value pair
- New unique on-conflict strategy: replace conflicting objects (OBXPropertyFlags_UNIQUE_ON_CONFLICT_REPLACE)
- ๐ New functions to attach to existing stores using only the file path (in the same process)
- New APIs for ObjectBox Admin, the web based UI (formerly known as Object Browser): obx_admin_*
- ๐ Minor performance improvements for indexed access
- ๐ Major performance improvements for tree/GraphQL queries
- ARM binaries are now built for minimal size reducing the library size significantly
- New "no_reader_thread_locals" store option
- ๐ Enable debug logging (requires a special build)
- API: Type for query offsets and limits was changed from uint64_t to size_t
- API: rarely used obx_txn_mark_success() was removed; use obx_txn_success()
- API: feature checks consolidated to only use obx_has_feature()
- Many internal improvements
- Core version 3.0.1-2021-12-09
๐ Sync
- ๐ New API for embedded server mode: obx_sync_server_* (implementation available on request)
-
v0.14.0 Changes
May 13, 2021- change
obx_query_prop_count()
to respect case-sensitivity setting when counting distinct strings - ๐ change
OBXSyncCredentialsType
values to start at 1 - add
obx_query_find_first()
to get a first object matching the query - add
obx_query_find_unique()
to get the only object matching the query - add
obx_async_put_object4()
accepting a put_mode - โก๏ธ updated ARMv7hf toolchain, now requires GLIBC v2.28 (e.g. Raspbian 10, Ubuntu 20.04)
- semi-internal Dart APIs: add query streaming and finalizers
- change
-
v0.13.0 Changes
March 16, 2021- โ add Sync binary library variants for all supported platforms
- โ add MacOS universal binary library, supporting Intel x64 and Apple Silicon arm64
- ๐ split Sync symbols out of objectbox.h/pp into objectbox-sync.h/pp
- โ add Sync server-time getter, listener and local-to-server diff info - to access server time info on clients
- โ add Sync heartbeat interval configuration and an option to send one immediately
- โก๏ธ semi-internal: update Dart/Flutter SDK to v2.0
-
v0.12.0 Changes
February 05, 2021- โ add Linux ARMv8 (aarch64) native binary library
- ๐ add
obx_sync_*
APIs (actual functionality is only available in a sync-enabled version; see https://objectbox.io/sync/) - add
obx_has_feature()
, andOBXFeature
enum: please use these instead of the following, now deprecated functions:obx_supports_bytes_array()
,obx_supports_time_series()
, andobx_sync_available()
- โ add
obx_remove_db_files()
to delete database files in a given directory - add optional
OBXEntityFlags_SHARED_GLOBAL_IDS
forSYNC_ENABLED
entities - semi-internal: add custom async callback APIs for Dart/Flutter language binding
-
v0.11.0 Changes
November 12, 2020- โก๏ธ update CMakeLists.txt to simplify integration for users, e.g. with
FetchContent
,
โก๏ธ see the updated installation docs - change cursor and box read functions
get/first/current/next
void **
argument toconst void**
- ๐ change multiple query and query builder functions
int count
argument tosize_t count
- change observer signatures (
obx_err
return value andsize_t count
argument) - new obx_model_entity_flags()
- new obx_opt_async_*() to configure async box behavior
- ๐ new greater-or-equal and less-or-equal query conditions for integers and floats
- new obx_query_offset_limit() setter for offset and limit in a single call
- ๐ new obx_sync_available() to check whether the loaded runtime library supports ObjectBox Sync
- ๐ clean up linter warnings in the examples and
objectbox.h(pp)
C++ (only)
- ๐ rename
objectbox-cpp.h
toobjectbox.hpp
- ๐ change C++ Store Options to a "builder" pattern and expose all available options
- ๐ new C++ AsyncBox and Box::async() to expose asynchronous operations
- โก๏ธ update CMakeLists.txt to simplify integration for users, e.g. with