# sksamuel/hoplite

A boilerplate-free Kotlin config library for loading configuration files as data classes

Repository: https://github.com/sksamuel/hoplite
Canonical: https://ross.abutalabs.com/products/hoplite
Language: Kotlin
License: Apache-2.0
License Family: permissive
Topics: kotlin, configuration, yaml, config, library, config-loader
Last push: 2026-07-27T04:34:58+00:00

## Health v2 (maintenance only)
Score: 90/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 94, release rhythm 78, longevity 100
- inputs: {"age_days": 2662, "days_push": 37, "days_rel": 150, "gap_med": 9, "n_releases_24m": 8}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1045, forks 89 (observed 2026-08-28T04:03:21.539235+00:00)

## What it is
Hoplite is a boilerplate-free Kotlin library for loading configuration files into typesafe data classes. It supports multiple formats (YAML, JSON, TOML, HOCON, properties), cascading config layers, environment variable and system property overrides, and detailed error reporting.

## Use cases
- load yaml config into kotlin data classes
- type-safe configuration loading for jvm apps
- layer environment-specific config files over defaults
- resolve secrets from aws secrets manager in config
- fail fast on missing or invalid config values
- reload configuration at runtime
- override config values via environment variables

## When to choose
- you write Kotlin/JVM apps and want config mapped directly to data classes with no boilerplate
- you need to mix multiple config formats or stack cascading config files
- you want clear, detailed errors for missing or mistyped config values
- you need preprocessors for secrets managers or reloadable config

## When to avoid
- you are not on the JVM or not using Kotlin
- you need config loading at compile time rather than runtime
- you only need simple key-value properties without type conversion

## Facets
- artifact type: library
- maturity: active
- function: configuration-management, serialization, json, yaml
- domain: developer-tools, backend
- platform: jvm, cross-platform
- tags: kotlin, config-loader, data-classes, hocon, toml, type-safe-config, secrets-manager, environment-variables, jvm

## Member repositories
- sksamuel/hoplite (main) score 90

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:21.539235+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:02:08.670972+00:00, confidence not recorded.
  - readme: https://github.com/sksamuel/hoplite (fetched 2026-08-28T04:03:21.539235+00:00, sha ba25985cde1c)
- Data as of 2026-08-30T08:39:29.467469+00:00.
