Earlier Versions
Changelogs for versions before 5.0 are kept here. For even earlier releases, check the GitHub releases.
4.3.0 (2025-05-12)
- 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
- External property types (via MongoDB connector): support ID mapping to UUIDs (v4 and v7)
- Admin: add class and dependency diagrams to the schema page (view and download)
- Admin: improved data view for large vectors by displaying only the first elements and the full vector in a dialog
- Admin: detects images stored as bytes and shows them as such (PNG, GIF, JPEG, SVG, WEBP)
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 to 32 MB
- Transactions above the message size limit will already fail on the client now (to better enforce the limit)
- C++: add missing APIs for JWT token credentials
4.2.0 (2025-03-04)
- 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.
4.1.0 (2025-01-28)
- New query conditions for map properties (via flex properties): now supports key/value pairs for inequality conditions (e.g. greater than, less than) for string, integer and floating point values
- 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
4.0 (2024-11-11)
Note: 4.0.3 the first 4.0.x version working with ObjectBox Generator 4.0 and thus is the first full 4.0 release. For individual changes in the runtime library check the GitHub release notes: 4.0.0, 4.0.1 and 4.0.2.
- CMake stubs to easily integrate with ObjectBox Generator 4.0
- ObjectBox now supports vector search ("vector database") to enable efficient similarity searches.
This is particularly useful for AI/ML/RAG applications, e.g. image, audio, or text similarity.
Other use cases include semantic search or recommendation engines.
See https://docs.objectbox.io/ann-vector-search for details. - Adjusting the version number to match the core version (4.0); we will be aligning on major versions from now on.
- Made closing the store more robust; e.g. it waits for ongoing queries and transactions to finish
(please still ensure to clean up properly on your side, this is an additional safety net) - Made Box API more robust when racing against store closing
- Add "vectorsearch-cities" example
0.21.0 (2024-02-13)
- In-memory databases (simply provide a "memory:" prefixed "directory")
Sync:
- New client/server statistics API
- New server API to enable authenticators
- Sync server: support for sync permissions, blocks client updates with no write permission
- Added sync-level login/write permissions for Admin Users DB and Web-UI
- New authenticator "ObjectBox Admin" with support for authorization
- New client API for username/password credentials
- New client-side error listener API; initially reports "receive-only" downgrade due to no write permissions.
0.20.0 (2023-12-11)
- Added OBXFeature_Backup to query for the feature's availability
- Internal: added a DB store abstraction layer (another announcement about this will follow)
- Tree API: fix for meta IDs vs. IDs
- Various internal improvements
Sync
- Sync clients may now supply multiple URLs; for each connection attempt a random one is chosen. This allows for client-side load balancing and failover with an ObjectBox Sync cluster.
0.19.0 (2023-09-04)
- New K/V validation option on opening the store
- Additions cursor API: get current ID, ID-based seeks (seek to first ID, seek to next ID)
- Support scalar vector types with basic queries (APIs only, no generator support)
- Various tree API improvements, e.g. introspection
- Minor API clean up: e.g. using int types for bit flags not enums
- Fixes query link condition in combination with some "or" conditions
- Fixes query "less" condition for case-sensitive strings with value indexes (default is hashed index)
- Updated Linux toolchain; now requires glibc 2.28 or higher (and GLIBCXX_3.4.25); e.g. the following minium versions are fine: Debian Buster 10 (2019), Ubuntu 20.04, RHEL 8 (2019)
- Various internal improvements
- Sync: various additions and improvements (client and server)
0.18.1 (2023-01-30)
Recommended bugfix release; please update.
- Fixes "Could not put (-30786)", which may occur in some corner cases on some platforms.
0.18.0 (2022-10-31)
- 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
0.17.0 (2022-06-15)
- 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
0.16.0 (2022-05-06)
- Allow UTF-8 for database directories on Windows (available for other platforms before)
- Various internal improvements
C++
- Promoted
Optionsto a top level class, as nested classes cannot be declared forward - New
#defineto disable FlatBuffers includes to simplify new project setup - Rename
ExceptiontoDbException - Minor improvements
V0.15.2 (2022-02-15)
- Add store cloning
- Fix attaching to a reopened store
V0.15.1 (2022-01-26)
- Fix non-unique indexes triggering unique constraint violations in corner cases (requires at least two unique constraints in an entity and a specific order; introduced in 0.15.0)
- Admin UI now supports multiple sessions to the same host using different ports (session ID via HTTP request)
- Minor performance improvements with hashed indexes
Sync
- Performance improvements for compression and decompression
V0.15.0 (2021-12-09)
- 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)