libConfuse is a configuration file parser library, licensed under the terms of the LGPL, and written in C. It supports sections and (lists of) values (strings, integers, floats, booleans or other sections), as well as some other features (such as single/double-quoted strings, environment variable expansion, functions and nested include statements). It makes it very easy to add configuration file capability to a program using a simple API.

The goal of libConfuse is not to be the configuration file parser library with a gazillion of features. Instead, it aims to be easy to use and quick to integrate with your code. libConfuse was called libcfg before, but was changed to not confuse with other similar libraries.

Please send bug reports or questions to You might also want to check out the project page at Savannah.


Example configuration files:


If there is no RPM package for your distribution, you can easily create one from the SRPM with: rpm --rebuild confuse-<version>.src.rpm.

The latest development sources can be found on the Savannah CVS repository. It can be browsed here. To download the sources through anonymous CVS do the following:

export CVS_RSH="ssh"
cvs -z3 co confuse
The public key fingerprints, as well as further instructions, are available here.


There is a manual (actually an API reference) available. It's generated from the sources with doxygen.

There is now also a tutorial available. However, it is still work in progress.

The documentation is also included in the source package.