I made something similar to it being inspired by the C++ standard library. But it is for C89:
https://github.com/d26900/JamaisVu
I use tombstones for my hash table (unordered_map) though.
Another drawback of my lib: for each hash table entry, I allocate an extra byte for the tombstones.
I don't know much about hashmaps but the disadvantage with tombstones is if you add/remove a lot, then you have to rehash your map at some point right?
I really like tiny libs anyway, yours looks good, very readable :)
However, I also don't shrink my table, once it grows. It stays grown. (Another drawback of my lib I suppose).
Thank you for the feedback, I really appreciate it! :)
But mine are very close to the STL with generic iterators/ranges and algorithms over containers.