![Page is in English](img/Flag-GreatBritain.png)
![Seite auf deutsch verfügbar](img/Flagge-Deutschland.png)
GlobalObjects
GlobalObjects is a C++ object-oriented database
(OODB, ODBMS,
NoSQL)
for maintaining C++ objects persistence. Single and multi-user operation via a server is possible.
C++ objects can be saved, loaded and deleted easily. This can also be done in transactions,
which can be confirmed (actions are executed) or cancelled (actions are not executed).
The ACID principle
principle is consistently adhered to.
GlobalObjects understands C++ class declarations with support for encapsulation, inheritance,
polymorphism, object identity, and object references.
There is an extensive locking mechanism to protect stored objects.
In order to "notice" changes to the object inventory, a simple notification system, implemented
by passing a callback function, can be used.
The main focus is on the easy saving and loading of even complex C++ objects with their
references and the updating of loaded objects in memory when they are changed in the
database.
GlobalObjects is therefore not a speed-optimized database. Each class has its table (a simple text file) with at least one object ID index. Objects of a class with many superclasses are "assembled" by reading in the respective data records or "broken down" when saved. Complex objects with references to other objects that must also be saved or deleted can therefore have a negative impact on the timing. Indexes are read from the file system into objects of the type std::map<T> or written back to the file system when the application is closed.
The name GlobalObjects was chosen because it helps the developer to automatically
synchronize objects across multiple clients. The application developed with GlobalObjects
still works without any changes in single-user operation.
The current version GlobalObjects 1.1.0 is implemented in the C ++ programming language and
has so far been used with:
- Microsoft Visual Studio 2010 C++ 98 (32 bit)
- Microsoft Visual Studio 2015 C++ 98 (32 and 64 bit)
- Microsoft Visual Studio 2017 C++ 14/C++ 17 (32 and 64 bit)
- Microsoft Visual Studio 2019 C++ 14/C++ 17/C++ 20 (32 and 64 bit)
- Microsoft Visual Studio 2022 C++ 14/C++ 17/C++ 20 (32 and 64 bit)
- MinGW Version 5.3.0 (32 bit)
- MinGW Version 7.3.0 (32 and 64 bit)
- MinGW Version 8.x (compiler error in "filesystem", see here)
- MinGW Version 9.0.0 (64 bit)
- MinGW Version 11.2.20 (64 bit)
- gcc 4.8.3 (32 bit)
- gcc 5.4.0 (32 bit)
- gcc 7.4.40 (64 bit)
- gcc 9.3.30 (64 bit)
- gcc 11.3.30 (64 bit)
- clang 6.0.0 (64 bit)
- clang 10.0.0 (64 bit)
- clang 14.0.0 (64 bit)
Windows
Linux
One can e.g. install a GloServer on any supported operating system and
access it from any supported operating system.
The GUI was realized with the C ++ library Qt.
GlobalObjects User Guides (online)
Download GlobalObjects
Licenses
A dual licensing model was chosen for GlobalObjects.
Open Source License
GlobalObjects is free software.
GNU Affero General Public License usage:
You can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
Please review the following information to ensure the GNU Affero General Public License version 3 requirements will be met:
https://www.gnu.org/licenses/agpl-3.0.en.html
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
Commercial Lizenze
If GlobalObjects is to be used in proprietary software, a commercial license is available.
The texts were translated into English with the support of www.DeepL.com and translate.google.de.