An API for loading and using configuration files, see the project site for more information.

Typically you would load configuration with a static method from {@link com.typesafe.config.ConfigFactory} and then use it with methods in the {@link com.typesafe.config.Config} interface.

An application can simply call {@link com.typesafe.config.ConfigFactory#load()} and place its configuration in "application.conf" on the classpath. If you use the default configuration from {@link com.typesafe.config.ConfigFactory#load()} there's no need to pass a configuration to your libraries and frameworks, as long as they all default to this same default, which they should.

A library or framework should ship a file "reference.conf" in its jar, and allow an application to pass in a {@link com.typesafe.config.Config} to be used for the library. If no {@link com.typesafe.config.Config} is provided, call {@link com.typesafe.config.ConfigFactory#load()} to get the default one. Typically a library might offer two constructors, one with a Config parameter and one which uses {@link com.typesafe.config.ConfigFactory#load()}.

You can find an example app and library on GitHub.