


We use cookies to improve your experience
We use essential cookies to make our site work. With your consent, we may also use non-essential cookies to improve user experience.
Definition
YAML (YAML Ain't Markup Language) is a human-readable data serialization format commonly used for configuration files. It uses indentation to represent structure (no brackets or tags) and supports comments. YAML is used by Docker Compose, Kubernetes, GitHub Actions, and many CI/CD tools.
YAML was designed to be maximally readable by humans. Instead of brackets, braces, or tags, it uses whitespace indentation to denote structure. This makes YAML configuration files clean and easy to edit, but also makes them sensitive to indentation errors — a misplaced space can change the meaning of a document.
YAML is the configuration language of choice for DevOps and cloud-native tools: Docker Compose, Kubernetes manifests, Ansible playbooks, GitHub Actions workflows, GitLab CI, CircleCI, and many more. Its readability advantages over JSON (which lacks comments) and XML (which is verbose) make it natural for files that humans edit frequently.
YAML supports advanced features like anchors and aliases (reusing values), multi-line strings (with various folding behaviors), and custom type tags. However, these features can create complexity and security concerns — YAML deserialization vulnerabilities have been found in several languages. For data interchange between systems, JSON is generally preferred over YAML due to simpler parsing and fewer edge cases.