Loading...
Searching...
No Matches
libConfuse

libConfuse is a configuration file parser library written in C. It supports sections and (lists of) values, as well as other features such as single/double quoted strings, environment variable expansion, functions and nested include statements. Values can be strings, integers, floats, booleans, and sections.

The goal 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.

> Ensure you download a versioned archive from the official releases page.

## Documentation

- Doxygen Documentation, regenerated on every commit
  - API Reference
  - Tutorial
- simple.c and simple.conf show how to use the "simple" versions of options
- cfgtest.c and test.conf show most of the features of confuse, including lists and functions

## Build & Install

libConfuse employs the GNU configure and build system. To list available build options, start by unpacking the tarball:

$ tar xf confuse-3.2.2.tar.xz
$ cd confuse-3.2.2/
$ ./configure --help
...

For most users the following commands configures, builds and installs the library to /usr/local/:

$ ./configure && make -j9
...
$ sudo make install
$ sudo ldconfig

See the INSTALL file (included in versioned release archives) for the full installation instructions.

When checking out the code from GitHub, use `./autogen.sh` to generate a configure script. This means you also need the following tools:

- autoconf
- automake
- libtool
- gettext
- autopoint
- flex

To build the documentation you also need the following tool:

- doxygen

This is an optional step, so you must build it explicitly from its directory:

$ cd doc/
$ make documentation
...

## Origin & References

libConfuse was created by Martin Hedenfalk and released as open source software under the terms of the ISC license. It was previously called libcfg, but the name was changed to not confuse with other similar libraries. It is currently developed and maintained at GitHub. Please use the issue tracker to report bugs and feature requests.