YINI β Simple to Read, Structured by Design
YINI is a human-friendly, INI-inspired text-based configuration format for software projects: readable like INI, structured like JSON, without YAML's surprises. It offers clear nesting, comments, and predictable parsing, so your configuration stays easy to read and reason about as it grows. Suitable for configuration files, application settings, and general data storage.
Example of YINI code:
Source file: config.yini
How YINI is used in practice
Use YINI wherever you need structured configuration β without the usual complexity.
-
π Validate and convert YINI files from the command line with
the YINI CLI tool.
It can export parsed data as JSON, YAML, XML, or JavaScript.
- π¦ Load YINI directly in TypeScript/JavaScript applications with the YINI Parser for TypeScript.
- π Load YINI directly in Python scripts, tools, and applications with the YINI Parser for Python.
- π§© Use YINI for configuration files, data files, tooling, and CI workflows.
π The YINI Ecosystem
| π§ Core | π Implementation | π Adoption |
|---|---|---|
| β Language Specification (RC) | | |
| β Parsing Rules (Lenient & Strict) (RC) | β TypeScript Parser (Primary) | |
| β Formal Grammar (ANTLR) (RC) | β CLI Tool (Parse & Convert YINI) | β Homepage & Docs |
| | β Editor Syntax Highlighting grammar (VS Code / TextMate) | β Cheat Sheet (Quick Syntax Guide) |
| | β Python Parser (Alpha) | β Example Projects |
π Example
YINI code:
Source file: settings.yini
Parsed output (JSON):
{
"Settings": {
"serviceId": "NebulaService",
"release": "3.2.1",
"debugMode": false,
"tagline": ""Nebula" is a cloud of gas and dust in outer space.",
"Network": {
"bindAddress": "127.0.0.1",
"bindPort": 8080,
"allowedOrigins": [
"https://myapp.com",
"http://localhost:3000"
]
},
"Capabilities": {
"enableSearch": true,
"experimental": [
"new-ui",
"streaming-api"
],
"pools": {
"min_units": 2,
"max_units": 5,
"size_mb": 128,
"timeout_sec": 90
}
},
"DB Config": {
"host": "db.internal",
"ssl": true,
"Security": {
"username": "service_user",
"password": "****"
}
}
}
} New to YINI? Read a short learn the YINI format.
βοΈ How YINI compares to other config formats
YINI supports both lenient and strict parsing modes, depending on how much enforcement you need. Lenient mode is the default.
| Feature | YINI (lenient) | YINI (strict) | INI | JSON | YAML | TOML |
|---|---|---|---|---|---|---|
| Human readability by default | β | β | β | β | β | β |
| Readability at scale | β | β | β | β | β | β |
| Predictable parsing | β | β | β | β | β | β |
| Formal specification / grammar | β | β | β | β | β | β |
| Nested structure | β | β | β | β | β | β |
| Comments | β | β | β | β | β | β |
| Syntax overhead | β | β | β | β | β | β |
| Configuration-oriented design | β | β | β | β | β | β |
| Diagnostic clarity | β | β | β | β | β | β |
| Tolerance for incomplete or hand-edited input | β | β | β | β | β | β |
| Strength of structural validation | β | β | β | β | β | β |
| Suitability for larger configurations | β | β | β | β | β | β |
| Industry familiarity | Low | Low | Very strong | Very strong | Very strong | Moderate |
| Native tooling availability | Limited / growing | Limited / growing | Moderate | Very strong | Very strong | Strong |
| Ecosystem maturity | Limited / growing | Limited / growing | Mature but fragmented | Very strong | Very strong | Strong |
Lenient = flexibility & convenience Β· Strict = safety & predictability
β Strong support Β· β Partial / debated Β· β Poor or not supported
The final three rows use text labels to describe ecosystem and adoption maturity.
About
The format is defined by a formal, versioned specification and maintained as an open-source project under the YINI-lang organization on GitHub.
Contribute & Get Involved
YINI is open-source and actively maintained. You can get involved by trying it, reporting issues, contributing code, or starring the project on GitHub.
π Next steps
- Get Started
Learn how to install and parse your first config in minutes.
- Quick Tutorial
5-minute guided walkthrough of the YINI format and validation basics.
- Code Examples
Real-world YINI examples showing common configuration patterns.
- FAQ
Common questions about using YINI in real projects.
- Specification
Official YINI format rules with full technical details of the YINI format.
