The format that's super! https://duper.dev.br
  • Rust 74.5%
  • C# 8%
  • HTML 7.4%
  • TypeScript 4.8%
  • Python 2.5%
  • Other 2.7%
Find a file
2026-03-17 08:25:59 -03:00
.cargo Use Uniffi for @duper-js/wasm bindings 2025-11-17 07:41:27 -03:00
.config Clean up Nix config 2026-03-07 19:32:32 -03:00
.github duperq: Add json output formatter 2026-03-17 08:25:59 -03:00
.vscode Fix key formatting and tree-sitter error 2025-11-24 22:36:15 -03:00
axum_duper Improvements to duper_rpc and add doc tests 2026-01-05 20:12:21 -03:00
duper Clean up Nix config 2026-03-07 19:32:32 -03:00
duper-js-node [skip ci] Break apart Rust release workflows 2026-01-04 07:20:05 -03:00
duper-js-wasm duperq: Add json output formatter 2026-03-17 08:25:59 -03:00
duper-python [skip ci] Break apart Rust release workflows 2026-01-04 07:20:05 -03:00
duper-vs-code [skip ci] Update date for licenses 2026-01-01 18:00:39 -03:00
duper_lsp [skip ci] Break apart Rust release workflows 2026-01-04 07:20:05 -03:00
duper_rpc duperq: Add json output formatter 2026-03-17 08:25:59 -03:00
duper_uniffi [skip ci] Break apart Rust release workflows 2026-01-04 07:20:05 -03:00
duper_website Add Zed extension to website 2026-01-05 18:56:10 -03:00
duper_zed [skip ci] Break apart Rust release workflows 2026-01-04 07:20:05 -03:00
duperfmt duperq: Add json output formatter 2026-03-17 08:25:59 -03:00
duperq duperq: Add json output formatter 2026-03-17 08:25:59 -03:00
nix duperq: Add json output formatter 2026-03-17 08:25:59 -03:00
npins duperq: Add json output formatter 2026-03-17 08:25:59 -03:00
serde_duper duperq: Add json output formatter 2026-03-17 08:25:59 -03:00
serde_duper_macros [skip ci] Break apart Rust release workflows 2026-01-04 07:20:05 -03:00
tracing_duper [skip ci] Break apart Rust release workflows 2026-01-04 07:20:05 -03:00
tree-sitter-duper Prepare release batch 2026-01-03 13:58:52 -03:00
.envrc [skip ci] Migrate to npins 2026-02-14 14:24:52 -03:00
.gitignore Add Nix flake and improve workspace 2025-12-23 14:15:15 -03:00
ATTRIBUTIONS.md Add a logo! Also touch up the documentation 2025-10-21 23:57:36 -03:00
biome.json Improve spec text and add embedded highlighting to markdown 2025-11-23 22:28:48 -03:00
Cargo.lock duperq: Add json output formatter 2026-03-17 08:25:59 -03:00
Cargo.toml duper_rpc: Add Axum test 2026-01-03 13:45:44 -03:00
CODE_OF_CONDUCT.md Add duperq tests and use color-eyre 2025-12-14 18:41:23 -03:00
CONTRIBUTING.md [skip ci] Remove testing requirements from CONTRIBUTING.md 2025-11-19 18:36:54 -03:00
default.nix Clean up Nix config 2026-03-07 19:32:32 -03:00
duper.cow [skip ci] Add duper.cow 2026-01-04 20:47:38 -03:00
flake.lock [skip ci] Migrate to npins 2026-02-14 14:24:52 -03:00
flake.nix Clean up Nix config 2026-03-07 19:32:32 -03:00
justfile Add Nix flake and improve workspace 2025-12-23 14:15:15 -03:00
LICENSE [skip ci] Update date for licenses 2026-01-01 18:00:39 -03:00
README.md [skip ci] Update README 2026-01-05 19:06:59 -03:00
SECURITY.md New website 2025-10-24 22:50:55 -03:00
shell.nix Clean up Nix config 2026-03-07 19:32:32 -03:00

The Duper logo, with a confident spectacled mole wearing a flailing blue cape.

Duper: The format that's super!

GitHub stars GitHub license

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 examples, quick start guides, and more.

UserProfile({
  id: Uuid("f111c275-b4ce-4392-8e5b-19067ce39b53"),
  username: "EpicEric",
  email: EmailAddress("eric@duper.dev.br"),
  settings: {
    "dark mode": true,
    language: Locale("pt-BR"),
    metadata: null,
  },
  score: 120.25,
  // Support for bytes, woohoo!
  avatar: Png(b64"iVBORw0KGgoAAAANSUhEUgAAAGQ="),
  bio: r#"Hello! I'm a super "duper" user!"#,
  last_logins: [
    (IPv4Address("192.168.1.100"), Instant('2024-03-20T14:30:00Z')),
  ],
})

Why Duper?

Duper excels in a variety of use cases:

  • In configuration files, where users are expected to swap out values, its explicit types can be a helpful guide.
  • Thanks to its extended type support and self-documenting identifiers, Duper feels right at home in REST APIs.
  • With a simple and readable syntax for logs, Duper is a breath of fresh air for both manual and tool-assisted debugging.

For implementers

See the specification for more details.

Workspace structure

  • duper: Core implementation of the Duper parser and serializer in Rust, as well as Serde support. Used by Rust libraries and bindings in other languages.
  • duperq: A fast Duper and JSON filter/processor.
  • duper_lsp: Duper LSP.
  • duper_website: Official website for Duper, including the specification and WebAssembly-based playground.
  • tree-sitter-duper: tree-sitter implementation of Duper.
    • duperfmt: Duper formatter based on Topiary.