๐Ÿฆ†Waddling
Protocol + LibrariesBuilding blocks for robust software

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.

5-Part
Structure
MIT
License
i18n
Ready
Language
Agnostic

The WDP Protocol

A universal specification for structured diagnostic codes.

๐Ÿ“‹

WDP Specification

Protocol

The Waddling Diagnostic Protocol defines structured error codes with semantic meaning. Language-agnostic specification with 5-part structure: Severity, Component, Primary, Sequence, and Compact ID.

// One error, two representations[E.Auth.Token.001] โ†’ Xy8Qz
โœจ

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

Stable

Production-ready Rust implementation of WDP. Type-safe error codes, zero dependencies, no_std compatible. Full catalog support, metadata handling, and i18n capabilities.

// Rust implementationuse waddling_errors::WdpCode;
๐Ÿ’ก

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.

// Same everywhereE.Auth.Token.001 โ†’ Xy8Qz

Quick Start

Add waddling-errors to your Cargo.toml and go.

TOML
[dependencies]
waddling-errors = "0.5"
RUST
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()); // Xy8Qz

Ready to build better errors?

Read the WDP specification to understand the protocol, or jump into the Rust implementation to start coding.

Theme Color
๐ŸŒˆ Auto Cycle
HUE: 239.0
CYCLING: ON