O que é Hoplite e para que serve?
Hoplite é uma biblioteca leve e type-safe para configuração de aplicações Kotlin. Ela resolve o problema de parsing manual de arquivos de configuração (YAML, JSON, TOML, HOCON) e sua conversão em objetos Kotlin estritamente tipados. Em vez de escrever dezenas de linhas de código para ler application.conf, você define uma data class, e o Hoplite desserializa a configuração com validação em tempo real.
Como instalar
Adicione a dependência no 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}Funcionalidades principais
- Type-safety: conversão automática de strings para Int, Boolean, LocalDate, enum e objetos aninhados.
- Validação: anotações embutidas
@Range,@Pattern,@NotEmptye validadores personalizados. - Suporte a formatos: YAML, JSON, TOML, HOCON, .properties e variáveis de ambiente.
- Perfis: alternância entre configurações dev/prod sem duplicação de código.
- Segredos: integração com Vault e variáveis de ambiente para senhas.
Exemplo de código em 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}")}Quando usar
Hoplite é ideal para: microsserviços em Ktor ou Spring Boot, utilitários de linha de comando que precisam de tipagem estrita, projetos que exigem separação em perfis dev/staging/prod, e qualquer aplicação Kotlin onde se queira evitar ConfigFactory.parseResources() e mapeamento manual. Não é recomendado para scripts simples com um ou dois parâmetros — nesses casos, System.getenv() é suficiente.
Conclusão
Hoplite torna a configuração em Kotlin tão segura e elegante quanto a própria linguagem. Se você está cansado de ClassCastException ao ler configurações — experimente esta biblioteca.
Também na biblioteca
GraphQL Java: ferramenta poderosa para criar APIs modernas em Java
Envio de email em PHP: Guia completo da biblioteca PHPMailer
Filas de tarefas em Node.js: Bull, Bee-Queue e Kue
OpenCV para C++: guia completo com exemplos
Trabalhando com CSV em JavaScript (Node.js): bibliotecas, parsing e geração de dados