Software that
knows how to fail
The Waddling Diagnostic Protocol (WDP) defines structured, semantic error codes that work across any language. Plus Rust libraries for error handling and diagnostic tooling.
The WDP Protocol
A universal specification for structured diagnostic codes.
WDP Specification
ProtocolThe Waddling Diagnostic Protocol defines structured error codes with semantic meaning. Language-agnostic specification with 5-part structure: Severity, Component, Primary, Sequence, and Compact ID.
Protocol Features
- Human-readable semantic structure
- Machine-efficient 5-char compact IDs
- Multilingual display with unified hashes
- Secure by design with PII separation
- Works everywhere - language agnostic
Implementations
Libraries that implement the WDP specification.
waddling-errors
StableProduction-ready Rust implementation of WDP. Type-safe error codes, zero dependencies, no_std compatible. Full catalog support, metadata handling, and i18n capabilities.
Why WDP?
WDP is language-agnostic by design. The specification ensures consistent error handling patterns regardless of your tech stack. Same semantic structure, same compact IDs, everywhere.
Quick Start
Add waddling-errors to your Cargo.toml and go.
[dependencies]
waddling-errors = "0.5"use waddling_errors::{WdpCode, Severity};
// Define your error
let code = WdpCode::new( Severity::Error, "Auth", "Token", 1 );
// Get both representations
println!("", code); // E.Auth.Token.001
println!("", code.compact()); // Xy8QzReady to build better errors?
Read the WDP specification to understand the protocol, or jump into the Rust implementation to start coding.