Recently, I’ve begun creating a new C++ database library, codenamed ADB (for A Database … I know, I know …). I’m not sure yet whether I’ll add features from my super-fast Natter/Adder/Natrix database concepts. The API will be ridiculously simple to use, yet powerful enough to provide database functionality for any application. It will be 64-bits, as Natter was, and hence scale well. I’ll GPLv3 it, most certainly. The C++ code will be mostly portable, supporting advanced compilers like Comeau C/C++ which support the “export” keyword for templates. Workarounds for some missing C++ features will be included (requires some POSIX APIs and 64-bit arithmetic).
Sie müssen als angemeldet sein, um einen Kommentar schreiben zu können.
2008-11-14 bei 17:38
ADB is making good progress, I have finished a lot of components and the basic (on-disk) memory management is already working. The resulting database files are entirely architecture-independent.
64-bit arithmetic is required, however. But this is no problem on any current platform.
Data type support for records include 8 to 64 bit integers, signed and unsigned, and multibyte and wide character strings. Floating-point is not inherently supported, because it is not necessary (fixed-point arithmetic does a better job for business applications). There is also the problem that representing floating-point in a platform-independent manner is somewhat difficult, character strings being arguably the best form. Wide characters are only supported as 16-bit and 32-bit representations.
2008-11-15 bei 16:34
BTW, in the meantime, I have used a more traditional solution to templates. The support of “export” has been removed. Instead, the template implementation is included only where needed, and there’s exactly one module for every template instance. In all other cases, templates are just declared, not implemented, when #included. This achieves the greatest possible portability.
Use of namespaces is optional. Compilers without “stdint.h” and “stdbool.h” are supported.