Popularity
4.2
Declining
Activity
0.0
Stable
81
7
6

Programming language: Kotlin
License: Apache License 2.0
Tags: Configuration    
Latest version: v0.9.41

cfg4k alternatives and similar libraries

Based on the "Configuration" category.
Alternatively, view cfg4k alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of cfg4k or a related project?

Add another 'Configuration' Library

README

Build Status Coverage Status License Download

Overview

Cfg4k is a configuration library made for Kotlin in Kotlin!

Features

  • Automatic reload
  • Interface binding
  • Ability to handle data classes automatically
  • All the complex types and generics are supported
  • Huge flexibility, custom sources
  • Easy to use
  • Bytebuddy provider will be able to compile your bindings at runtime (You will need to add the cfg4k-bytebuddy to your dependencies.)

For further information, use the wiki

Quick start

  1. Add the Bintray repository:

    repositories {
    jcenter()
    }
    
  2. Add the dependency for the module(s) that you are going to use

    compile 'com.jdiazcano.cfg4k:cfg4k-core:$VERSION'
    
fun main(args: Array<String>) {
    val source = ClassPathConfigSource("global.properties")         // Create source
    val loader = PropertyConfigLoader(source)                       // Create loader
    val provider = ProxyConfigProvider(loader)                      // Create provider
    val databaseConfig = provider.bind<DatabaseConfig>("database")  // bind and use

    println("Name: ${databaseConfig.name()}")
    println("Url: ${databaseConfig.url()}")
    println("Port: ${databaseConfig.port()}")
}

/**
 * This interface defines a database configuration
 */
interface DatabaseConfig {
    /**
     * You can have javadocs inside your properties and this is really cool
     */
    fun url(): String
    fun port(): Int
    fun name(): String

    // if you have an unused property you know it and you can delete it
    val unused: String

    @Deprecated("You can even deprecate properties!")
    fun deprecated(): Boolean

    val youCanuseValuesToo: String
    val andNullables: Int?
}

Architeture overview

Lightbox

License

Licensed under the Apache License, Version 2.0. See LICENSE file.


*Note that all licence references and agreements mentioned in the cfg4k README section above are relevant to that project's source code only.