The Generic Data Structures Library (GDSL) is a collection of routines for generic data structures manipulation. It is a portable and re-entrant library fully written from scratch in pure ANSI C. It is designed to offer for C programmers common data structures with powerful algorithms, and hidden implementation. Available structures are lists, queues, stacks, hash tables, binary trees, binary search trees, red-black trees, 2D arrays, permutations, heaps and interval heaps.
The current version is GDSL-1.8. It was released on February, 12 2015.
You can download it from http://ndarnis.free.fr/gdsl/gdsl-1.8.tar.gz.
GDSL was hosted on Gna!, but as Gna! closed its doors, someone has moved GDSL on GitHub: https://github.com/sjchao/GDSL.
GDSL is free software distributed under the terms of the GNU General Public License.
GDSL provides a modern Applications Programming Interface (API) for C programmers, while allowing wrappers to be written for very high level languages. The library covers the following data structures:
- Low-level doubly-linked nodes
- Low-level doubly-linked low-level lists
- Low level binary trees
- Low level binary search trees
- Binary search trees
- Red-black trees
- 2D arrays
- Hash tables
- Interval heaps
The GDSL Reference Manual is available online, in following formats:
GDSL is developed on Debian GNU/Linux with gcc. It should build on any GNU/linux distribution with gcc. GDSL has been tested with success under the following distributions:
It has also been compiled on FreeBSD.
We require that GDSL should build on any system with an ANSI C compiler, so if doesn’ t, that’ s a bug and we would love a patch!
Authors and Credits
This list of authors who have directly contributed to GDSL is available in the AUTHORS file.
The THANKS file also contains list of people who have contributed to GDSL.
GDSL is distributed under the terms of the GNU General Public License (GPL).
The reasons why GDSL uses the GPL are described in the following articles:
- Copyleft: Pragmatic Idealism by Richard Stallman
- Why you should not use the Library GPL for your next library by Richard Stallman
If you have a problem, or have found a bug, please send a note to the authors.