Skip to content

Commit e3c1dd9

Browse files
committed
Extract earlier-versions.mdx from README.mdx
1 parent f96acdf commit e3c1dd9

3 files changed

Lines changed: 156 additions & 148 deletions

File tree

docs/README.mdx

Lines changed: 4 additions & 142 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ import TabItem from "@theme/TabItem"
2020
import { TechnicalArticleSchema } from '@site/src/components/Schema';
2121

2222
<TechnicalArticleSchema
23-
headline="ObjectBox C / C++ Database"
24-
description="This is the ObjectBox documentation for our C and C++ APIs. We strive to provide you with the easiest and fastest solution to store and retrieve data."
23+
headline="ObjectBox C and C++ Database"
24+
description="This is the ObjectBox documentation for our C and C++ APIs. Persist your objects and structs in a fast, embedded database."
2525
url="https://cpp.objectbox.io/README"
2626
datePublished="2025-07-21"
2727
dateModified="2025-07-21"
@@ -166,150 +166,12 @@ Note: 4.0.3 the first 4.0.x version working with ObjectBox Generator 4.0 and thu
166166
* Made Box API more robust when racing against store closing
167167
* Add "vectorsearch-cities" example
168168

169-
### 0.21.0 (2024-02-13)
170-
171-
* In-memory databases (simply provide a "memory:" prefixed "directory")
172-
173-
#### Sync:
174-
175-
* New client/server statistics API
176-
* New server API to enable authenticators
177-
* Sync server: support for sync permissions, blocks client updates with no write permission
178-
* Added sync-level login/write permissions for Admin Users DB and Web-UI
179-
* New authenticator "ObjectBox Admin" with support for authorization
180-
* New client API for username/password credentials
181-
* New client-side error listener API; initially reports "receive-only" downgrade due to no write permissions.
182-
183-
### 0.20.0 (2023-12-11)
184-
185-
* Added OBXFeature\_Backup to query for the feature's availability
186-
* Internal: added a DB store abstraction layer (another announcement about this will follow)
187-
* Tree API: fix for meta IDs vs. IDs
188-
* Various internal improvements
189-
190-
#### Sync
191-
192-
* 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.
193-
194-
### 0.19.0 (2023-09-04)
195-
196-
* New K/V validation option on opening the store
197-
* Additions cursor API: get current ID, ID-based seeks (seek to first ID, seek to next ID)
198-
* Support scalar vector types with basic queries (APIs only, no generator support)
199-
* Various tree API improvements, e.g. introspection
200-
* Minor API clean up: e.g. using int types for bit flags not enums
201-
* Fixes query link condition in combination with some "or" conditions
202-
* Fixes query "less" condition for case-sensitive strings with value indexes (default is hashed index)
203-
* 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)
204-
* Various internal improvements
205-
* Sync: various additions and improvements (client and server)
206-
207-
### 0.18.1 (2023-01-30)
208-
209-
Recommended bugfix release; please update.
210-
211-
* Fixes "Could not put (-30786)", which may occur in some corner cases on some platforms.
212-
213-
### 0.18.0 (2022-10-31)
214-
215-
* Date properties can now be tagged as expiration time; which can be then be easily evicted
216-
* Tree API: various additions and improvements, e.g. OBXTreeOptionFlags to configure the tree behavior
217-
* New query condition to match objects that have a given number of relations
218-
* New "max data size" store setting
219-
* Enabled stricter compiler settings
220-
* Added stacktraces on errors (Linux only; very lightweight as it uses external addr2line or llvm-symbolizer)
221-
* Added log callback for most important logs
222-
* Consolidated "user data" passing as the last parameter
223-
* Various internal improvements
224-
225-
#### C++
226-
227-
* Added BoxTypeless, QueryBuilderBase and QueryBase: these can be used without generated code and template types.
228-
* New APIs to get the schema IDs for entity types and properties
229-
* Added two methods to Store to await asynchronous processing
230-
* Added "internal" namespace so that internal members do not spill into the obx namespace
231-
* Move more implementations to OBX\_CPP\_FILE
232-
233-
#### Sync
234-
235-
* Custom protocols for Sync: plugin your own messaging protocol, which ObjectBox Sync will run on
236-
* Improvements to run Sync Server with limited disk space (e.g. on small devices)
237-
* Tree Sync improvements; e.g. consolidate conflicts
238-
* WebSockets (sync protocol) is now a feature, which can be turned off (special build version)
239-
* Performance optimizations
240-
241-
### 0.17.0 (2022-06-15)
242-
243-
* Added a "weak store" API providing weak reference for stores (typically used by background threads)
244-
* Added Store ID API, e.g. getting a store by its ID
245-
* Various internal improvements including minor optimizations for binary size and performance
246-
247-
#### C++
248-
249-
* New "OBX\_CPP\_FILE" define to place declarations in a single .cpp/.cc file: improves compilation time and results
250-
* New "Exception" base class for all thrown exceptions
251-
* Various internal improvements, e.g. a "internal" namespace to better distinguish from userland API
252-
253-
### 0.16.0 (2022-05-06)
254-
255-
* Allow UTF-8 for database directories on Windows (available for other platforms before)
256-
* Various internal improvements
257-
258-
#### C++
259-
260-
* Promoted `Options` to a top level class, as nested classes cannot be declared forward
261-
* New `#define` to disable FlatBuffers includes to simplify new project setup
262-
* Rename `Exception` to `DbException`
263-
* Minor improvements
264-
265-
### V0.15.2 (2022-02-15)
266-
267-
* Add store cloning
268-
* Fix attaching to a reopened store
269-
270-
### V0.15.1 (2022-01-26)
271-
272-
* 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)
273-
* Admin UI now supports multiple sessions to the same host using different ports (session ID via HTTP request)
274-
* Minor performance improvements with hashed indexes
275-
276-
#### Sync
277-
278-
* Performance improvements for compression and decompression
279-
280-
### V0.15.0 (2021-12-09)
281-
282-
* New "Flex" data type that can contain data of various types like integers, floating points, strings, lists and maps
283-
* New query conditions for Flex lists to find a specific element
284-
* New query conditions for Flex maps to find elements with a specific key or key/value pair
285-
* New unique on-conflict strategy: replace conflicting objects (OBXPropertyFlags\_UNIQUE\_ON\_CONFLICT\_REPLACE)
286-
* New functions to attach to existing stores using only the file path (in the same process)
287-
* New APIs for ObjectBox Admin, the web based UI (formerly known as Object Browser): obx\_admin\_\*
288-
* Minor performance improvements for indexed access
289-
* Major performance improvements for tree/GraphQL queries
290-
* ARM binaries are now built for minimal size reducing the library size significantly
291-
* New "no\_reader\_thread\_locals" store option
292-
* Enable debug logging (requires a special build)
293-
* API: Type for query offsets and limits was changed from uint64\_t to size\_t
294-
* API: rarely used obx\_txn\_mark\_success() was removed; use obx\_txn\_success()
295-
* API: feature checks consolidated to only use obx\_has\_feature()
296-
* Many internal improvements
297-
* Core version 3.0.1-2021-12-09
298-
299-
#### Sync
300-
301-
* New API for embedded server mode: obx\_sync\_server\_\* (implementation available on request)
302-
303169
### Earlier Versions
304170

305-
The changelogs of earlier versions are available as part of the [GitHub releases](https://github.com/objectbox/objectbox-c/releases).
306-
307-
Provides native dynamic/shared library (.so/.dylib/.dll)
308-
309-
* Provides C & C++ headers (objectbox.h & objectbox.hpp)
171+
Changelogs for versions before 4.0 are now in [Earlier Versions](/earlier-versions).
310172

311173
## ObjectBox Generator
312174

313175
<div align="left"><img src="https://img.shields.io/github/v/release/objectbox/objectbox-generator?style=for-the-badge" alt=""/></div>
314176

315-
Check the [ObjectBox Generator](https://github.com/objectbox/objectbox-generator/releases) releases for details.
177+
Check the [ObjectBox Generator](https://github.com/objectbox/objectbox-generator/releases) releases for details.

docs/earlier-versions.mdx

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
---
2+
title: Earlier Versions
3+
description: Changelog entries for ObjectBox versions before 4.0.
4+
---
5+
6+
# Earlier Versions
7+
8+
Changelogs for versions before 4.0 are kept here. For even earlier releases, check the [GitHub releases](https://github.com/objectbox/objectbox-c/releases).
9+
10+
### 0.21.0 (2024-02-13)
11+
12+
* In-memory databases (simply provide a "memory:" prefixed "directory")
13+
14+
#### Sync:
15+
16+
* New client/server statistics API
17+
* New server API to enable authenticators
18+
* Sync server: support for sync permissions, blocks client updates with no write permission
19+
* Added sync-level login/write permissions for Admin Users DB and Web-UI
20+
* New authenticator "ObjectBox Admin" with support for authorization
21+
* New client API for username/password credentials
22+
* New client-side error listener API; initially reports "receive-only" downgrade due to no write permissions.
23+
24+
### 0.20.0 (2023-12-11)
25+
26+
* Added OBXFeature\_Backup to query for the feature's availability
27+
* Internal: added a DB store abstraction layer (another announcement about this will follow)
28+
* Tree API: fix for meta IDs vs. IDs
29+
* Various internal improvements
30+
31+
#### Sync
32+
33+
* 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.
34+
35+
### 0.19.0 (2023-09-04)
36+
37+
* New K/V validation option on opening the store
38+
* Additions cursor API: get current ID, ID-based seeks (seek to first ID, seek to next ID)
39+
* Support scalar vector types with basic queries (APIs only, no generator support)
40+
* Various tree API improvements, e.g. introspection
41+
* Minor API clean up: e.g. using int types for bit flags not enums
42+
* Fixes query link condition in combination with some "or" conditions
43+
* Fixes query "less" condition for case-sensitive strings with value indexes (default is hashed index)
44+
* 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)
45+
* Various internal improvements
46+
* Sync: various additions and improvements (client and server)
47+
48+
### 0.18.1 (2023-01-30)
49+
50+
Recommended bugfix release; please update.
51+
52+
* Fixes "Could not put (-30786)", which may occur in some corner cases on some platforms.
53+
54+
### 0.18.0 (2022-10-31)
55+
56+
* Date properties can now be tagged as expiration time; which can be then be easily evicted
57+
* Tree API: various additions and improvements, e.g. OBXTreeOptionFlags to configure the tree behavior
58+
* New query condition to match objects that have a given number of relations
59+
* New "max data size" store setting
60+
* Enabled stricter compiler settings
61+
* Added stacktraces on errors (Linux only; very lightweight as it uses external addr2line or llvm-symbolizer)
62+
* Added log callback for most important logs
63+
* Consolidated "user data" passing as the last parameter
64+
* Various internal improvements
65+
66+
#### C++
67+
68+
* Added BoxTypeless, QueryBuilderBase and QueryBase: these can be used without generated code and template types.
69+
* New APIs to get the schema IDs for entity types and properties
70+
* Added two methods to Store to await asynchronous processing
71+
* Added "internal" namespace so that internal members do not spill into the obx namespace
72+
* Move more implementations to OBX\_CPP\_FILE
73+
74+
#### Sync
75+
76+
* Custom protocols for Sync: plugin your own messaging protocol, which ObjectBox Sync will run on
77+
* Improvements to run Sync Server with limited disk space (e.g. on small devices)
78+
* Tree Sync improvements; e.g. consolidate conflicts
79+
* WebSockets (sync protocol) is now a feature, which can be turned off (special build version)
80+
* Performance optimizations
81+
82+
### 0.17.0 (2022-06-15)
83+
84+
* Added a "weak store" API providing weak reference for stores (typically used by background threads)
85+
* Added Store ID API, e.g. getting a store by its ID
86+
* Various internal improvements including minor optimizations for binary size and performance
87+
88+
#### C++
89+
90+
* New "OBX\_CPP\_FILE" define to place declarations in a single .cpp/.cc file: improves compilation time and results
91+
* New "Exception" base class for all thrown exceptions
92+
* Various internal improvements, e.g. a "internal" namespace to better distinguish from userland API
93+
94+
### 0.16.0 (2022-05-06)
95+
96+
* Allow UTF-8 for database directories on Windows (available for other platforms before)
97+
* Various internal improvements
98+
99+
#### C++
100+
101+
* Promoted `Options` to a top level class, as nested classes cannot be declared forward
102+
* New `#define` to disable FlatBuffers includes to simplify new project setup
103+
* Rename `Exception` to `DbException`
104+
* Minor improvements
105+
106+
### V0.15.2 (2022-02-15)
107+
108+
* Add store cloning
109+
* Fix attaching to a reopened store
110+
111+
### V0.15.1 (2022-01-26)
112+
113+
* 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)
114+
* Admin UI now supports multiple sessions to the same host using different ports (session ID via HTTP request)
115+
* Minor performance improvements with hashed indexes
116+
117+
#### Sync
118+
119+
* Performance improvements for compression and decompression
120+
121+
### V0.15.0 (2021-12-09)
122+
123+
* New "Flex" data type that can contain data of various types like integers, floating points, strings, lists and maps
124+
* New query conditions for Flex lists to find a specific element
125+
* New query conditions for Flex maps to find elements with a specific key or key/value pair
126+
* New unique on-conflict strategy: replace conflicting objects (OBXPropertyFlags\_UNIQUE\_ON\_CONFLICT\_REPLACE)
127+
* New functions to attach to existing stores using only the file path (in the same process)
128+
* New APIs for ObjectBox Admin, the web based UI (formerly known as Object Browser): obx\_admin\_\*
129+
* Minor performance improvements for indexed access
130+
* Major performance improvements for tree/GraphQL queries
131+
* ARM binaries are now built for minimal size reducing the library size significantly
132+
* New "no\_reader\_thread\_locals" store option
133+
* Enable debug logging (requires a special build)
134+
* API: Type for query offsets and limits was changed from uint64\_t to size\_t
135+
* API: rarely used obx\_txn\_mark\_success() was removed; use obx\_txn\_success()
136+
* API: feature checks consolidated to only use obx\_has\_feature()
137+
* Many internal improvements
138+
* Core version 3.0.1-2021-12-09
139+
140+
#### Sync
141+
142+
* New API for embedded server mode: obx\_sync\_server\_\* (implementation available on request)

sidebars.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,16 @@ const sidebars: SidebarsConfig = {
7272
id: 'dev-tools-and-debugging',
7373
label: 'Dev Tools and Debugging', // Clean label
7474
},
75+
{
76+
type: 'doc',
77+
id: 'earlier-versions',
78+
label: 'Earlier Versions',
79+
},
7580
{
7681
type: 'doc',
7782
id: 'faq',
7883
label: 'FAQ', // Clean label
7984
},
80-
// --- External Links Section ---
8185
{
8286
type: 'html',
8387
value: '<hr class="sidebar-divider">', // Optional: Adds a visual separator
@@ -101,6 +105,11 @@ const sidebars: SidebarsConfig = {
101105
type: 'html',
102106
value: '<hr class="sidebar-divider">', // Optional: Adds a visual separator
103107
},
108+
{
109+
type: 'link',
110+
label: 'Database Docs',
111+
href: 'https://docs.objectbox.io/',
112+
},
104113
{
105114
type: 'link',
106115
label: 'Golang Database',
@@ -111,11 +120,6 @@ const sidebars: SidebarsConfig = {
111120
label: 'Swift Database',
112121
href: 'https://swift.objectbox.io/',
113122
},
114-
{
115-
type: 'link',
116-
label: 'Java Database',
117-
href: 'https://docs.objectbox.io/',
118-
},
119123
],
120124
};
121125

0 commit comments

Comments
 (0)