Skip to main content

ObjectBox C / C++ Database

Create super-fast C and C++ applications with the embedded database and sync engine. Get started here with these two pages:

Alternatively, you can also dive into some examples on GitHub right away.

Your opinion matters to us! To make ObjectBox better for our users, we have set up an Anonymous Feedback Form. Please do fill this in (it only takes 2 minutes). Every response is highly appreciated. To rate this documentation, you can use the "Was this page helpful?" smiley at the end of each page.

Otherwise, feel free to open an issue on GitHub or send us your comments to contact[at]objectbox.io - Thank you! - and if you like what you see, we also appreciate a shoutout :)

Latest Versions (Changelogs)

5.3.0 (2026-03-23)

  • 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" now only counts all objects on click to preserve resources
  • Admin: Status tab "Count and Sizes" now has a sum row at the bottom
  • Admin: Status tab "System and Info" now shows additional information
    • Process memory / RSS
    • Database size and free disk size
    • CPU counts and loads

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

5.2.0 (2026-03-06)

  • 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

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

5.0.0 (2025-11-27)

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

Earlier Versions

Changelogs for versions before 5.0 are now in Earlier Versions.

ObjectBox Generator

Check the ObjectBox Generator releases for details.