¿Qué es Hoplite y por qué es necesario?
Hoplite es una biblioteca ligera y tiposegura para la configuración de aplicaciones Kotlin. Resuelve el problema del análisis manual de archivos de configuración (YAML, JSON, TOML, HOCON) y su transformación en objetos Kotlin fuertemente tipados. En lugar de escribir decenas de líneas de código para leer application.conf, defines una clase de datos y Hoplite deserializa la configuración con validación en tiempo real.
Cómo instalar
Agrega la dependencia en build.gradle.kts:
repositories { mavenCentral()}
dependencies { implementation("com.sksamuel.hoplite:hoplite-core:2.7.5") implementation("com.sksamuel.hoplite:hoplite-yaml:2.7.5") // para YAML}Funciones principales
- Tiposeguridad: conversión automática de cadenas a Int, Boolean, LocalDate, enum y objetos anidados.
- Validación: anotaciones integradas
@Range,@Pattern,@NotEmptyy validadores personalizados. - Soporte de formatos: YAML, JSON, TOML, HOCON, .properties y variables de entorno.
- Perfiles: cambio entre configuraciones dev/prod sin duplicar código.
- Secretos: integración con Vault y variables de entorno para contraseñas.
Ejemplo de código en Kotlin
import com.sksamuel.hoplite.ConfigLoaderimport com.sksamuel.hoplite.yaml.YamlPropertySource
data class DatabaseConfig( val host: String, val port: Int = 5432, val credentials: Credentials)
data class Credentials( val username: String, @com.sksamuel.hoplite.validator.Secret val password: String)
fun main() { val config = ConfigLoader.Builder() .addSource(YamlPropertySource("config.yaml")) .build() .loadConfigOrThrow<DatabaseConfig>()
println("Connecting to ${config.host}:${config.port}") println("User: ${config.credentials.username}")}Cuándo usar
Hoplite es ideal para: microservicios en Ktor o Spring Boot, utilidades CLI que necesitan tipado estricto, proyectos que requieren separación en perfiles dev/staging/prod, y cualquier aplicación Kotlin donde se quiera evitar ConfigFactory.parseResources() y el mapeo manual. No se recomienda para scripts simples con uno o dos parámetros — ahí basta con System.getenv().
Conclusión
Hoplite hace que la configuración en Kotlin sea tan segura y elegante como el propio lenguaje. Si estás cansado de ClassCastException al leer configuraciones — prueba esta biblioteca.
También en la biblioteca
Envío de SMS en C++: API con biblioteca LibCurl y solicitudes REST
Validación de datos en Java: revisión de bibliotecas y enfoques
Bibliotecas GraphQL para Kotlin: guía completa para desarrolladores backend
Cliente Elasticsearch para Java: guía completa para trabajar con Java Client