Releases: objectbox/objectbox-c
Releases · objectbox/objectbox-c
ObjectBox C and C++ 5.3.1
- Critical fix for sync clock handling without preset clock values (null)
- Helper functions to extract timestamps from sync clock values
Check older changelogs
ObjectBox C and C++ 5.3.0
- Change log level at runtime, i.e.
obx_log_level_set()/obx_log_level_get() - New log level "trace" for most internal details
- Log level "verbose" can now be enabled (debug log builds only)
- Breaking:
OBXLogLevelenum values changed; recompile with new header if you used these
(previously 10/20/30/40/50 for Verbose..Error, now 0-10 matching the runtime log level). - Admin: Status tab "Count and Sizes" and "System and Info" improved
Sync
- Conflict resolution via sync clock and sync precedence (allows last win with custom conflict resolution)
- Fix bad Sync client state after multiple full sync messages were interrupted
- Fix adding indexes to Sync types
Check changelog for details
ObjectBox C and C++ 5.2.0
- Admin: new "Counts and Sizes" view (via Status page) to give an overview over all types their object counts and sizes
- Admin: refresh button for the data view
- Admin: fix reload via browser to stay on the page
- Admin: schema view to display flags as text
- (Minor) performance improvements of HNSW vector search on Linux ARM targets
Sync
- Sync protocol version 10
- Update client sync filters variables when online
- Clients report errors to the server
- Add OBXSyncFlags_SkipInvalidTxOps
See changelog for previous versions.
ObjectBox C and C++ 5.1.0
5.1.0 (2026-01-19)
- Fix for deleting transactions in non-owner threads with open relation cursors
- Admin: the Schema view now shows if external name of types and properties if configured
- Admin: the Schema view now shows the type as text (e.g. "String") instead of the internal type ID
- Internal updates
Sync
- New Sync protocol V8: using new clients also require a server update
- Remove-operations with object content for Sync filters (optional setting; sync flag)
- Introduce options based Sync client creation (new C API)
- Add DebugLogTxLogs sync flag to log TX log processing on the client side
- Add SkipInvalidTxOps sync flag to skip invalid operations in a TX log on the client side;
errors are logged and the TX is only partially applied. - Remove superfluous sync listener triggers when sync filters "report updates" (SKIP_TX)
- Sync clients compress earlier: reduces disk storage for outgoing data
- Reworked SSL certificates for Apple platforms
- Removed support for older Sync protocol versions before 2024-09; protocol V5+ is now required
Check changelog for details
ObjectBox C and C++ 5.0.0
User-Specific Data Sync
- Sync filters: define server-side filter expression to sync individual data for each sync user.
This is also known as "user-specific data sync" and requires Sync clients version 5.0. - Client variables: clients may define key/value pairs that can be used in sync filters
New supported platform: Windows ARM64
- Besides x86 and x64, ObjectBox for Windows now also supports ARM64
Sync
- Sync clients may now provide certificate locations for SSL (TLS) connections
Fixes
- Fixed clearing 1:N backlinks for IDs larger than 32-bit (setting backlink ID to 0 on the "1" side)
- In-memory with WAL file: improved error handling
- Safeguard against undefined behavior by panicking in rare illegal usage patterns that are not recoverable.
I.e. deleting a (write) transaction in a non-owner thread cannot be safely handled in any other way. - Various small improvements and updates under the hood.
Examples
- Make each example self-contained, you can e.g. copy an example's directory as a starting point for your own app
- Add a convenient
build.shscript to each example that works the same way across examples,
e.g../build.sh runto build and run the example in one step - Make sources more readable (refactorings, added additional comments)
- The Task sync example moved to ObjectBox Sync Examples
Check changelog for details
ObjectBox C and C++ 5.0.0 RC
Release candidate.
ObjectBox C and C++ 4.3.1
Bug fix release
- Cursor/Query: deleting a cursor (e.g. in a non-creator thread) waits for any query to finish
- Query: added safety check to detect using a deleted query instance
- Admin: fix displaying some string values twice
- Add a few missing allocation failure checks
- Internal improvements, e.g. updated dependencies and compiler to new major versions
ObjectBox C and C++ 4.3.0
- Windows: msvc runtime is now embedded to avoid incompatible msvcp140.dll (e.g. those shipped with some JDKs)
- External property types (via MongoDB connector): JsonToNative to support sub (embedded/nested) documents/arrays in MongoDB, and more
- Admin: various new features
Sync
- Add "Log Events" for important server events, which can be viewed on new Admin page
- Detect and ignore changes for objects that were put but were unchanged
- The limit for message size was raised
Check changelog for details
ObjectBox C and C++ 4.2.0
- Extended the model by external names and types:
allows defining a different name for an external database, which ObjectBox syncs with.
This prepares upcoming features for our MongoDB Sync Connector.
Check changelog for details
ObjectBox C and C++ 4.1.0
- New query conditions for map properties (via flex properties)
- Vector search: add "Geo" distance type for longitude/latitude pairs
- Various internal improvements
Sync
- Add JWT authentication
- Sync clients can now send multiple credentials for login
Check changelog for details