Brussels / 3 & 4 February 2018


Configuration Revolution

Why it Needed 13 Years and How it Will be Done

Free software is proud of its diversity, choices, and resulting variety, including but not limited to configuration. In this talk we will reflect on the last 13 years of experiences based on a user survey (286 answers), code analysis of 16 projects (comprising about 50 million lines of code), and our experience with Elektra.

Elektra aims at keeping the diversity and modularity of the FLOSS ecosystem but also unifies configuration access by abstracting access to any configuration source using key/value pairs. Participating applications do not use any hard-coded configuration. Developers, maintainers, and system administrator can declaratively specify location and syntax of configuration files, how to validate configuration, and how to derive default values.

Elektra follows the trend to a more declarative no-futz system (a system where no experimental tinkering or fiddling is needed). Getting and setting a configuration value is trivial, and possible in any programming language. Elektra currently supports C++, Python, Haskell, Lua, Shell, Ruby, Puppet, and Java. It fulfils necessities long overdue, not only for configuration management, but also for better defaults. We provide many essential utilities for system administrators and developers, such validation before serializing and command-line tools with support for tab completion of configuration. But no worries: Elektra still leaves developers the fun parts, like inventing new configuration file formats.


Photo of Markus Raab Markus Raab