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.7. It was released on June, 12 2013.
You can download it from http://download.gna.org/gdsl/.
GDSL is free software distributed under the terms of the GNU General Public License.
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|
Further information can be found in the GDSL Documentation.
The GDSL Reference Manual is available online, in following formats:
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!
You can also check out the very latest version via anonymous cvs. Here's how:
cvs -d:pserver:firstname.lastname@example.org:/cvs/gdsl co gdslOnce 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 ftp://ftp.gnu.org/pub/gnu/
To begin the build process from a CVS checkout, start with:
./autogen.shwhich will prepare the package for compilation. You can then use
makein the usual way.
To subscribe to the
gdsl-announce mailing list, go to http://mail.gna.org/listinfo/gdsl-announce/.
To subscribe to the
gdsl-general mailing list, go to http://mail.gna.org/listinfo/gdsl-general/.
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:
If you have a problem, or have found a bug, please visit the Gna! GDSL homepage at
to send a note to the authors.