Please start with a use case description for a USER of this work
[Who] As an embedded developer
[What] I need to run my C++ GroundUpDB on a platform like Zephyr which doesn't have dynamic memory or the full cpp stdlib
[Value] In order to run the same database on a smartwatch as I do in my datacentre
Describe the solution you'd like
Rework the current code such that the DB can be ran on any platform, not just full OS. This means practically removing dynamic memory allocation (or including our own within limits), and removing dependencies on the stdlib, especially the collections.
Describe alternatives you've considered
No real way around the lack of a comprehensive stdlib or dynamic memory allocation. We've done this successfully with Herald with in-memory data page handling and rolling basic containers for primitive types. We may wish to consider including our own memory allocator to abstract these pages away from the C++ code itself. It also means removing support for std exceptions.
Additional context
See Herald code:-
Please start with a use case description for a USER of this work
[Who] As an embedded developer
[What] I need to run my C++ GroundUpDB on a platform like Zephyr which doesn't have dynamic memory or the full cpp stdlib
[Value] In order to run the same database on a smartwatch as I do in my datacentre
Describe the solution you'd like
Rework the current code such that the DB can be ran on any platform, not just full OS. This means practically removing dynamic memory allocation (or including our own within limits), and removing dependencies on the stdlib, especially the collections.
Describe alternatives you've considered
No real way around the lack of a comprehensive stdlib or dynamic memory allocation. We've done this successfully with Herald with in-memory data page handling and rolling basic containers for primitive types. We may wish to consider including our own memory allocator to abstract these pages away from the C++ code itself. It also means removing support for std exceptions.
Additional context
See Herald code:-