A human-friendly extension of JSON with quality-of-life improvements, extra types, and semantic identifiers.
🎨
Ergonomic
Optional quotes for keys, trailing commas, comments, and clean syntax.
🔧
Rich types
Tuples, bytes, raw strings, and more beyond basic JSON.
🔄
JSON-compatible
Every valid JSON file is automatically valid Duper.
📝
Self-documenting
Identifiers provide guidance, readability, and validation.
Why Duper?
Duper excels in a variety of use cases:
- Configuration files: Duper's explicit types and identifiers serve as helpful guides when users need to modify values.
- REST APIs: Self-documenting identifiers make Duper feel natural in API payloads and responses.
- Data interchange: With support for bytes, raw data, minimal syntax, and JSON compatibility, Duper is ideal for data exchange between systems.
Playground
Comparison
| Comments | ✅ | ❌ | ✅ | ✅ | ✅ |
| Trailing commas | ✅ | ❌ | ✅ | ✅ | ✅ |
| Unquoted keys | ✅ | ❌ | ✅ | ✅ | ✅ |
| Integers | ✅ | ❌ | ❌ | ✅ | ✅ |
| Tuples | ✅ | ❌ | ❌ | ❌ | ❌ |
| Bytes | ✅ | ❌ | ❌ | ✅[1] | ❌ |
| Date and time | ❌ | ❌ | ❌ | ✅ | ✅ |
| Raw strings | ✅ | ❌ | ❌ | ✅ | ✅ |
| Identifiers | ✅ | ❌ | ❌ | ❌ | ❌ |
| Unambiguous | ✅ | ✅ | ✅ | ❌[2] | ⚠️[3] |
| Simple | ✅ | ✅ | ✅ | ❌ | ✅ |
| JSON-compatible | ✅ | ✅ | ✅ | ✅ | ❌ |
| Popular | ❌ | ✅ | ⚠️ | ✅ | ✅ |
- [1] Using the !!binary scalar type and base64 text; limited support in implementations.
- [2] Unquoted strings can get confused with other scalars and vice-versa.
- [3] Tabs in strings.
.png)


