AutoKonfig
Kotlin configuration library with batteries included.
Website
Features overview
- Support for JSON, HOCON and Java properties config files
- Loading config files from resources and remote URLs
- Reading configuration from system properties and environment variables
- Parsing command-line parameters
- Merging properties loaded from multiple sources
- Automatically finding config files
- Type-safe properties
- Many useful property types, including dates (
2020-02-02
), times (10:15:30
), durations (20s
) and memory sizes (256 MB
) - Type-specific parsing, a value of
1
can be the string"1"
, the integer1
, or the booleantrue
depending on which type is asked for - Collection types
- 100% unit test coverage
Quick start
Gradle
implementation "dev.nohus:AutoKonfig:1.0.3"
Maven
<dependency>
<groupId>dev.nohus</groupId>
<artifactId>AutoKonfig</artifactId>
<version>1.0.3</version>
</dependency>
The artifacts are available on Maven Central.
Simple example
Create a config file:
app.conf
host = nohus.dev
port = 80
Create variables for your properties:
Main.kt
fun main() {
val host by StringSetting()
val port by IntSetting()
println("Host: $host, port: $port")
}
That's it! AutoKonfig automatically loaded your config file, because it had a well-known name. It knew which properties to load based on the variable names, and it mapped them to types based on the specified StringSetting
and IntSetting
delegates.
To see more, continue reading on the website.