Collections-C is a library of generic data structures for the C language.
The library addresses the need for reusable, well-tested data structure implementations in C by providing a collection of containers that store data as void pointers. It includes dynamic arrays, linked lists, hash tables, trees, sets, queues, stacks, priority queues, ring buffers, and ternary search trees. The library also offers sized containers that store arbitrary-length data directly and memory pool implementations for pre-allocated contiguous memory management. Each structure is designed with specific performance characteristics, such as amortized constant-time operations for hash-based containers and logarithmic-time operations for tree-based ones.
Projects using C that need standard data structures without implementing them from scratch should consider this library. It suits applications where developers want to avoid reinventing common containers and prefer a single, tested dependency. The library supports both static and shared library builds on Linux and Windows, with installation to standard system directories available through cmake.
The project maintains a stable codebase with infrequent but deliberate updates to core functionality. Pull requests receive careful review with attention to implementation details and edge cases. Issues are addressed methodically, with maintainers providing detailed feedback on proposed changes. The project prioritizes code quality and correctness over rapid feature addition, with a measured approach to accepting contributions.