YINI Cheat Sheet
Based on the official YINI Specification (v1.0 Release Candidate)
A quick reference for writing clean, readable YINI configuration files.
YINI makes data files (such as configuration files and application settings) easy for humans to read
and predictable for machines to process — like INI, but with real structure, lists (arrays), objects, and comments.
More structured than INI, less noisy than JSON, and less fragile than YAML.
🧱 Basic Syntax
| Element | YINI Syntax |
|---|---|
| Section heading: level 1 | ^ App |
| Section heading: level 2 | ^^ Database |
| Section heading: level 3 | ^^^ Pool |
| String | "text" or 'text' |
| Number | 42, 3.14, 1e4 |
| Boolean | true, false, on, off, yes, no (case-insensitive) |
| Null | null, Null, (or blank in lenient mode) |
| List / Array | [1, 2, 3] |
| Inline object (map/dict) | { a: 1, b: 2 } |
| Comment | // Default comment |
| Alt. comment | # Comment (must be #␠ or #\t)❌ #Missing space before comment start✅ # This is an OK comment |
| Multi-line (block) comment | /* ... */ |
| Full-line comment | ; This is a full-line comment (only full lines) |
| Disable line | --debug = true |
🧩 Inline Objects & Nested Data
(Objects are also called maps or dictionaries in general sense.)
Simple object
db = { host: "localhost", port: 5432 }Nested objects
service = {
http: { port: 8080, secure: true },
limits: { rpm: 1000 }
}🧭 Important Rules
- Indentation is only for humans — structure is defined by section markers (
^,^^,^^^, etc). - Strings must always be quoted using
'...'or"...". - In directly inside a section, not in an inline object:
name: "John"creates a list, not a single value. Usename = "John"for single values. - Trailing commas are allowed in lists and objects (lenient mode).
- Duplicate keys are disallowed by default (behavior may vary in lenient mode).
#is a comment only if followed by space or tab.
🔢 Number Formats
YINI supports multiple numeric formats:
| Format | Example |
|---|---|
| Integer | 42❌ 01 (Don’t use zero before a digit)✅ 1✅ 0 |
| Float | 3.14❌ 3,14✅ 0.14 |
| Scientific | 1e6, 5.2E-3 |
| Hexadecimal | #FFAA00❌ # FFAA00 (Parsed as a comment)✅ #ffaa00 (Hex color literal) |
| Binary | 0b101010 |
| Octal | 0o755 |
All numeric forms are parsed as real numbers — no quotes required.
🧪 Minimal Example (Realistic App Config)
^ App
name = "Nebula"
version = "2.3.1"
^^ Network
ports = [80, 443]
ssl = on
^^ Limits
requests = { perMinute: 1200, burst: 60 }Next Steps
- ➡️ YINI Code Examples
Explore real-world configurations. - ➡️ Get YINI Tools
CLI, parser libraries, and editor tools.
