Home of Kazlib
NOTE: This project is currently hosted
on the GNU project's
Savannah site.
The source code is in a git repository.
It's amazing: people have continued to find and use this library,
even though for so many years it appeared to
have dropped off from the
face of the earth!
Donations are welcome: show your appreciation and support!
Kazlib is a collection of program modules portably written in ANSI C.
There is a dictionary module based on red-black trees, an extendible
hashing module, and a system for emulating exception handling.
Modules from Kazlib have come to be used in many programs and libraries. Here
are some of them:
- Ethereal, a packet capture,
analysis and display tool with a graphical interface uses the exception
module from Kazlib to liberate packet dissector modules from the
responsibility of having to check for truncated or corrupt packets.
Ethereal is now called Wireshark.
- e2fsck,
the system file system checker for Linux's main file system uses the
dictionary module from Kazlib to make it work faster over some
severely corrupted filesystems.
- VeeJay,
a live performance tool featuring non-linear editing and
mixing from multiple audio/video sources.
- Webbase,
an open-source web crawler that is ``efficiently able to crawl millions
of URLs'' and stores the crawler information in a MySQL database,
uses the hashing module over URLs.
- OpenIsis, software for
publishing ISIS databases. CDS/ISIS is a storage and retrieval
system developed by UNESCO.
- ISISd, an
implementation of the IS-IS routing protocol, for the Zebra platform.
This has nothing to do with OpenIsis or CDS/ISIS!
Implementing ISISd was the subject of the
Master of
Science Thesis of one Sampo Saaristo. I think this might be the same
project that is now the Quagga Software Routing Suite.
- Camserv, an open-source
program for streaming video to web clients.
- NeoStats IRC software.
- TA-LIB, a set of C and C++ libraries to manage
and process stock and future market data.
- vlog, a curses-based real-time logfile viewer.
- PCP (Pattern Classification Program).
- ruby-rbtree integrates the dictionary module from Kazlib into the Ruby scripting language, providing Ruby programmers with a high-performance ordered associative container.
- C-Pluff, a plug-in
framework for C programs. C-Pluff is used by other projects, like supporting
addons to the XBMC media player.
- MoSync, an open
cross-platform mobile development SDK.
- LCI, Lambda Calculus
Interpreter, uses the linked lists from Kazlib, for better or worse.
- FIDAL, a Financial Data
Access Library.
- Augeas, a generic configuraton file
editing tool which parses configuration files in their native formats to an
internal syntax tree, manipulates the internal representation, and
re-synthesizes to the original format.
- openvpn-auth-ldap,
an LDAP authentication plugin for OpenVPN.
- recordstream,
a set of tools for manipulating data in the JSON format.
- Q3Asm,
an assembler for the Quake 3 Virtual Machine found in
various projects in the Quake community, uses the hashing
function from Kazlib.
- Zeugma Services Node, whose
infrastructure software relies on the dictionary module from Kazlib for
maintaining indexes over the shared memory run-time database, and as
an efficient alternative to the C++ map template in numerous places in the
code base.
For years now the NIST Dictionary of Algorithms and Data Structures
(DADS) has referred to Kazlib
under its entries for linked list, hash table and
red-black tree. (Note: this is not currently the case since
this site had been out of existence for so long!)
The authors of the academic paper Design and Implementation of a
High-Performance Distributed Web Crawler write about the use of
the hashing module from Kazlib in their implementation.
You can surf the documentation which
is generated from a slightly modified version of the LaTeX source using
LaTeX2html. Note that this is a currently link to the Way Back Machine's archive
You will find that rather than being written as a programming manual, the
documentation is actually written in the form of a standard which tries to
capture a precise interface contract between a Kazlib implementor and
the programmer. Caution: the online documentation is not kept up to date,
and may not quite match the latest version.
These are the historic releases of Kazlib:
Return to Home page.