Most Python developers pick Pydantic (or msgspec) and never benchmark it seriously. Most benchmarks only test the happy path — valid data going in, valid data coming out. But at real API boundaries, webhooks, and data pipelines, a meaningful percentage of incoming requests are malformed, incomplete, or outright malicious. In those cases, how fast you can reject bad data matters a lot. I ran a benchmark focused on this reality. TL;DR On valid data, Pydantic v2 and msgspec perform well. On invalid data, many libraries become significantly slower due to full error collection and type coercion. validatedata 's validator() fast path (with early exit) is dramatically faster at rejection — in some cases even beating hand-written checks.…