ghalkes:~# command line tools

Tilde Terminal Toolkit


The libt3config library provides functions for reading and writing simple structured configuration files. libt3config provides the following features:

  • Simple structured syntax.
  • Simple API for reading and manipulating configurations.
  • Parsed configurations use typed data (boolean, integer, floating point number string, list, section).
  • Schema definitions, allowing verification of the structure of loaded configuration data.
  • No use of global variables, allowing easy use in threaded programs (with the exception that if uselocale is not available, setlocale should not be called at the same time in another thread while reading or writing configuration data).


libt3config version 0.2.10 released

This release uses the password file entry for the home directory instead of the HOME environment variable to determine the location of the configuration file.


libt3config version 0.2.9 released

This release fixes a crashing bug in getting an XDG path if the corresponding variable is not set and there is no relative path available.


libt3config version 0.2.8 released

This release is more restrictive when using the T3_CONFIG_CLEAN_NAME flag to limit permissible names.



Documentation is available for libt3config, and is included in the source package and the development binary packages. Documentation for the latest version can also be found here. It includes descriptions of both the syntax of configuration files and the API.


The source for libt3config is available here. Older releases are available here. libt3config requires GNU libtool to be compiled.

Binary packages for libt3config are available from the Tilde repositories.

For converting a text file to a set of character constants for inclusion in a C source, this script may be useful. In libt3config, the file meta_schema.bytes is generated with this script from meta_schema.schema.


You can reach me at: libt3config @ REMOVE

Copyright Notice

Copyright © 2011-2015 G.P. Halkes
libt3config is distributed under the GNU General Public License version 3.