Something went wrong. Try again.
The format that's super!
Something went wrong. Try again.
duper duper
1 folder · 4 files
README.md
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('PT30H'),
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.
- Extended with extra types: integers, tuples, bytes, raw strings, raw bytes, and Temporal values.
- 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.