In contrast to the popular arena based allocators (which target quickly allocating/freeing short lived per-request allocations), I am targeting an allocator for build very large in-memory dbs or caches with almost no garbage collection cost.
There's a little no-gc string interner package in there as well.
https://github.com/fmstephe/gossert
A library for adding runtime assertions to Go code. It's developed so that when the assertions are switched off the compiler should be able to completely eliminate the assertions. But this requires build tags to switch the assertions on.
In contrast to the popular arena based allocators (which target quickly allocating/freeing short lived per-request allocations), I am targeting an allocator for build very large in-memory dbs or caches with almost no garbage collection cost.
There's a little no-gc string interner package in there as well.
https://github.com/fmstephe/memorymanager
It's somewhat on pause right now as I have just started a new job. (but it has been a very fun project, nerdy joy).
Related to the memorymanager, as in intending to support it are
https://github.com/fmstephe/fuzzhelper A library for setting up fuzz tests for complex data structures.
https://github.com/fmstephe/gossert A library for adding runtime assertions to Go code. It's developed so that when the assertions are switched off the compiler should be able to completely eliminate the assertions. But this requires build tags to switch the assertions on.