Skip to content

Releases: objectbox/objectbox-c

ObjectBox C and C++ 5.3.1

26 Mar 12:57

Choose a tag to compare

  • 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

24 Mar 07:05

Choose a tag to compare

  • 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: OBXLogLevel enum 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

09 Mar 13:24

Choose a tag to compare

  • 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

20 Jan 09:48

Choose a tag to compare

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

27 Nov 15:45

Choose a tag to compare

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.sh script to each example that works the same way across examples,
    e.g. ./build.sh run to 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

30 Sep 08:10

Choose a tag to compare

Pre-release

Release candidate.

ObjectBox C and C++ 4.3.1

29 Jul 09:12

Choose a tag to compare

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

12 May 21:04

Choose a tag to compare

  • 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

04 Mar 19:30

Choose a tag to compare

  • 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

28 Jan 11:16

Choose a tag to compare

  • 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