13 releases (5 breaking)
Uses new Rust 2024
| 0.6.1 | Jan 3, 2026 |
|---|---|
| 0.6.0 | Dec 23, 2025 |
| 0.5.0 | Dec 7, 2025 |
| 0.4.3 | Nov 30, 2025 |
| 0.1.1 | Oct 22, 2025 |
#1017 in Parser implementations
Used in 6 crates
375KB
9K
SLoC
Duper: The format that's super!
Duper aims to be a human-friendly extension of JSON with quality-of-life improvements, extra types, and semantic identifiers.
Check out the official website for Duper.
An example
Product({
product_id: Uuid("1dd7b7aa-515e-405f-85a9-8ac812242609"),
name: "Wireless Bluetooth Headphones",
brand: "AudioTech",
price: Decimal("129.99"),
dimensions: (18.5, 15.2, 7.8), // In centimeters
weight: Kilograms(0.285),
in_stock: true,
specifications: {
battery_life: Duration("30h"),
noise_cancellation: true,
connectivity: ["Bluetooth 5.0", "3.5mm Jack"],
},
image_thumbnail: Png(b64"iVBORw0KGgoAAAANSUhEUgAAAGQ="),
tags: ["electronics", "audio", "wireless"],
release_date: Date("2023-11-15"),
/* Warranty is optional */
warranty_period: null,
customer_ratings: {
latest_review: r#"Absolutely ""astounding""!! 😎"#,
average: 4.5,
count: 127,
},
created_at: Instant('2023-11-17T21:50:43+00:00'),
})
- Similar to JSON, but with support for unquoted keys, trailing commas, and comments.
- It includes support for extra types: integers, tuples, bytes, raw strings, raw bytes, and Temporal.
- Finally, Duper has the notion of identifiers: optional type-like annotations (
MyIdentifier(...)) to help with readability, or to suggest that the parser handles/validates the data in a specific manner.
See also:
serde_duper:serdeserialization / deserialization support for Duper.axum_duper: Duper extractor / response foraxum.
Dependencies
~5–17MB
~166K SLoC