---
key: pl/pkl
kind: plang
name: "PKL"
url: https://plangs.page/pkl
---

# PKL

> Configuration language for defining data structures and generating JSON or YAML outputs.

Configuration language designed to define data structures and generate multiple output formats such as JSON and YAML. It supports embedded configurations in applications across various languages like Java, Kotlin, Swift, and Go, and provides integrations to enhance usability.

## Facts

- Appeared: 2021
- GitHub: https://github.com/apple/pkl
- Languish ranking: #381

## Relationships

### Paradigms

- [Data Exchange](https://plangs.page/paradigm/data-exchange)
- [Data-Centric](https://plangs.page/paradigm/data-driven)
- [Declarative](https://plangs.page/paradigm/declarative)
- [Functional](https://plangs.page/paradigm/functional)
- [Multi](https://plangs.page/paradigm/multi)
- [Scripting](https://plangs.page/paradigm/scripting)
- [Validation](https://plangs.page/paradigm/validation)

### Platforms

- [Cross-Platform](https://plangs.page/platform/cross)
- [Linux](https://plangs.page/platform/linux)
- [Windows](https://plangs.page/platform/windows)

### Type Systems

- [Dynamic](https://plangs.page/type-system/dynamic)
- [Strong](https://plangs.page/type-system/strong)

### Compiles To

- [JSON](https://plangs.page/json)
- [YAML](https://plangs.page/yaml)

### Written With

- [Python](https://plangs.page/python)

### Licenses

- [MIT](https://plangs.page/license/mit)

### Tags

- [Automation](https://plangs.page/tag/automation)
- [Interpreter](https://plangs.page/tag/interpreters)
- [Scripting](https://plangs.page/tag/scripting)
