Qu'est-ce que Hoplite et pourquoi en avez-vous besoin ?
Hoplite est une bibliothèque légère et typée pour la configuration d'applications Kotlin. Elle résout le problème de l'analyse manuelle des fichiers de configuration (YAML, JSON, TOML, HOCON) et de leur transformation en objets Kotlin strictement typés. Au lieu d'écrire des dizaines de lignes de code pour lire application.conf, vous définissez une data-class, et Hoplite désérialise lui-même la configuration avec une validation à la volée.
Comment installer
Ajoutez la dépendance dans build.gradle.kts :
repositories { mavenCentral()}
dependencies { implementation("com.sksamuel.hoplite:hoplite-core:2.7.5") implementation("com.sksamuel.hoplite:hoplite-yaml:2.7.5") // pour YAML}Fonctionnalités principales
- Type-safe : conversion automatique des chaînes en Int, Boolean, LocalDate, enum et objets imbriqués.
- Validation : annotations intégrées
@Range,@Pattern,@NotEmptyet validateurs personnalisés. - Support des formats : YAML, JSON, TOML, HOCON, .properties et variables d'environnement.
- Profils : basculement entre les configurations dev/prod sans duplication de code.
- Secrets : intégration avec Vault et variables d'environnement pour les mots de passe.
Exemple de code 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}")}Quand l'utiliser
Hoplite est idéal pour : les microservices sur Ktor ou Spring Boot, les utilitaires CLI nécessitant un typage strict, les projets nécessitant une séparation en profils dev/staging/prod, et toute application Kotlin où l'on souhaite éviter ConfigFactory.parseResources() et le mapping manuel. Il n'est pas recommandé pour les scripts simples avec un ou deux paramètres — System.getenv() suffit dans ce cas.
Conclusion
Hoplite rend la configuration en Kotlin aussi sûre et élégante que le langage lui-même. Si vous en avez assez des ClassCastException lors de la lecture des configurations — essayez cette bibliothèque.
Aussi dans la bibliothèque
Parsing HTML en PHP : Guide complet des bibliothèques et outils
Client OAuth pour C# (.NET) : bibliothèque IdentityModel et intégration OAuth 2.0