Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/neil-edelman/boxes

Independent data structure headers.
https://github.com/neil-edelman/boxes

b-tree c89 data-structures generics hash-table memory-pool metaprogramming paramterization templates testing traits trie type-safety

Last synced: 4 months ago
JSON representation

Independent data structure headers.

Awesome Lists containing this project

README

        

Mostly independent `C89` data structure headers that use compile-time
polymorphism to generate lightweight and statically type-safe
containers. The documented parameters in each project are pre-processor
macros. All the public functions are documented in `doc/.md`.

## Design papers ##

The implementation is fairly standard. Some rationales of the more
complex containers documented here.

memory pool
A slab-allocator for similar objects

hash table
Allocation-conscious chained hash-table

B-tree
Practical in-memory B-tree design

trie
Compact binary prefix trees

## Compatibility ##

The testing framework in `test/` is much less multi-platform then
the headers in `src/`, requiring `C13` anonymous unions, assuming
a `union` is in the usual order, uses non-standard `pragma` (in
`test_trie.h`.) The `Makefile` provided assumes the `gcc` suite and
uses `clang`.

## License ##

2016 Neil Edelman, distributed under the terms of the [MIT
License](https://opensource.org/licenses/MIT).