https://github.com/madmann91/overture
A small data structures and algorithms library in C
https://github.com/madmann91/overture
c23 data-structures-and-algorithms header-only
Last synced: 4 months ago
JSON representation
A small data structures and algorithms library in C
- Host: GitHub
- URL: https://github.com/madmann91/overture
- Owner: madmann91
- License: mit
- Created: 2024-04-06T15:34:25.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-04-21T13:47:19.000Z (7 months ago)
- Last Synced: 2025-04-21T14:53:28.053Z (7 months ago)
- Topics: c23, data-structures-and-algorithms, header-only
- Language: C
- Homepage:
- Size: 146 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README


# Overture
A small data structures and algorithm library in C, mostly header-only. This contains the following
algorithms and data structures:
- Vector and small vector,
- Span,
- Hash set,
- Hash map,
- Priority queue,
- Unique stack,
- Strings and string views,
- Graph with various traversal algorithms,
- String pool,
- Memory pool,
- Thread pool,
- Union-find,
- Heap sort,
- Minstd0 random generator,
- FNV-1a hash function,
- Log and error message system,
- Command-line argument parsing,
- Testing framework with process isolation,
- ANSI terminal code helpers,
- Allocation routines,
- Simple IO routines,
- Bit manipulation routines
> [!IMPORTANT]
> This library is not intended to be used for public APIs, as there is no attempt at using namespaces
> to protect from name collisions. It also uses less portable constructs such as `#pragma once` and
> requires C23 for function and variable attributes.
## Building
This project requires a C23-compliant compiler and CMake. The following commands build the project:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE= ..
make
## Testing
Once built, the project can be tested via:
make test
or, alternatively, when trying to debug memory leaks or other memory errors with a memory checker:
make memcheck
## Documentation
The project supports the doxygen code documentation generator. It can be invoked manually from the
`doc` directory or by typing `make doc` using the CMake-generated Makefile (see instructions above
to build using CMake).
## License
This project is distributed under the [MIT license](LICENSE.txt).