GDSL - The Generic Data Structures Library

GDSL - The Generic Data Structures Library


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 and heaps.

The current version is GDSL-1.8. It was released on February, 12 2015.

You can download it from

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
Lists Queues
Stacks Permutations
Heaps Interval heaps

Further information can be found in the GDSL Documentation.


The GDSL Reference Manual is available online, in following formats:

Supported Platforms

GSL 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 the following platforms,

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!

Download it

You can download the latest version of the distribution from the following site:

CVS Access

You can also check out the very latest version via anonymous cvs. Here's how:

 cvs co gdsl
Once you have it checked out, you can update it with cvs update.

You can also view the cvs archive via cvsweb.

Note: if you use anonymous CVS, you will need some GNU tools that usually only developers use, and which are not required to build GNU packages from tarballs. These are automake, autoconf, libtool, GNU m4, GNU make, and others which might escape me now. They all come with recent GNU/Linux distributions, and for other OSes they can be found at

To begin the build process from a CVS checkout, start with:

which will prepare the package for compilation. You can then use ./configure and make in the usual way.

Mailing lists

There are several mailing lists available, These mailing lists are archived here,

To subscribe to the gdsl-announce mailing list, go to

To subscribe to the gdsl-general mailing list, go to

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:

Contact Information

If you have a problem, or have found a bug, please visit the Gna! GDSL homepage at to send a note to the authors.

Last modified: Wed Jun 12 18:29:57 CEST 2013