rtbrick / libdict

C library of key-value data structures.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

libdict

Test GitHub release (latest SemVer) Doxygen documentation GitHub

libdict is a C library that provides the following data structures with efficient insert, lookup, and delete routines:

All data structures in this library support insert, search, and remove, and have bidirectional iterators. The sorted data structures (everything but hash tables) support near-search operations: searching for the key greater or equal to, strictly greater than, lesser or equal to, or strictly less than, a given key. The tree data structures also support the selecting the nth element; this takes linear time, except in path-reduction and weight-balanced trees, where it only takes logarithmic time.

The API and code are written with efficiency as a primary concern. For example, an insert call returns a boolean indicating whether or not the key was already present in the dictionary (i.e. whether there was an insertion or a collision), and a pointer to the location of the associated data. Thus, an insert-or-update operation can be supported with a single traversal of the data structure. In addition, almost all recursive algorithms have been rewritten to use iteration instead.

Documentation is generated by Doxygen on every commit to master and is available here.

Installing

On every release, Debian packages are automatically built. You can download the latest packages from here.

To install, run this:

wget https://github.com/rtbrick/libdict/releases/latest/download/libdict-debian.zip
unzip libdict-debian.zip
sudo apt install -y ./*.deb

This will install the library, along with headers and tools.

Building

Both GNU Make and CMake are supported. To use the CMake build system, ensure that you have a recent version of CMake installed (version 3.10 or greater). Then, from within this repository, run:

mkdir build
cd build
cmake ..
make -j16

If you want to run unit tests, you can run:

make test

If you want to generate Debian packages, you can run:

cpack -G DEB

To build with the included GNU Makefile, simply run make in the repository.

License

libdict is released under the simplified BSD license.

About

C library of key-value data structures.

License:BSD 2-Clause "Simplified" License


Languages

Language:C 96.3%Language:CMake 2.0%Language:Makefile 1.5%Language:Shell 0.1%