Skip to content

Fix schemas that check less than specified, and test that they don't - #185

Draft
DZakh wants to merge 4 commits into
open-circle:mainfrom
DZakh-forks:claude/ata-validator-parsing-cum6at
Draft

Fix schemas that check less than specified, and test that they don't#185
DZakh wants to merge 4 commits into
open-circle:mainfrom
DZakh-forks:claude/ata-validator-parsing-cum6at

Conversation

@DZakh

@DZakh DZakh commented Jul 26, 2026

Copy link
Copy Markdown

Three libraries were benchmarked against schemas that checked less than specified, and nothing caught it: errorData breaks many constraints at once, so a library that misses one is still reported as invalid.

Benchmark corrections

  • ata-validator — dropped the parsing benchmark. validate(data) returns { valid, data, errors } where data is the input by reference, typed unknown, so it validates without producing a value — the same reason ajv has no parsing entry. Its only value-producing API, validateAndParse, takes a JSON string. It was ranking Add benchmarks for typia/compile #1 in parsing at ~5× the runner-up.
  • ata-validatorformat: "url" never ran (no such format in the library, and unknown formats are silently ignored); now "uri". Validation moved from isValidObject to validate(...).valid, because instanceof comes from @ata-project/keywords, which only patches validate — the boolean API never checked created was a Date.
  • typiatags constrained the array to 1–30 items instead of each tag to 1–30 characters, so no per-tag length was checked.
  • typebox — in Type.Script, with { minimum: 1, maximum: 100 } on number | null applied to neither member, so discount: 0 passed. Now parenthesised around number.

Consistency

stars and quantity had a minimum of 1 in a third of the libraries and 0 in the rest, so they weren't all validating the same schema. Now 0 everywhere — the majority spelling, and a product with none left or a zero-star rating is data the schema should accept. Touches arktype, decoders, typebox, typia, valibot and effect.

Tests

Two datasets in schemas/src/data.ts, asserted against every validation, parsing and standard schema config:

  • constraintViolations — 23 copies of successData each breaking exactly one constraint, all of which must be rejected
  • constraintBoundaries — 17 copies sitting exactly on a bound, all of which must be accepted, so a schema stricter than specified fails too

Values are chosen so coercion can't rescue them ("abc", not "252"), which keeps joi and yup honest without special-casing them.

Deviations a library provably cannot express live in constraintGaps, with a reason, and are asserted to still deviate — so an upstream fix retires the entry instead of hiding in it. One entry today: @ata-project/keywords doesn't recurse into arrays, so ata-validator can't check created is a Date inside images/ratings in any of its APIs.

3734 tests pass; typecheck and lint are clean.

Results

Download sizes are regenerated (raw bytes unchanged — "1" and "0" are the same length — gzip shifts a few bytes). Runtime results in bench/bench.json need a full re-run: I removed only the rows whose config no longer exists, and deliberately didn't re-measure, since numbers from my machine shouldn't be mixed with the committed set.

claude added 3 commits July 26, 2026 14:20
`schema.validate(data)` returns `{ valid, data, errors }` where `data` is the
input by reference, typed `unknown` (`withKeywords()` returns `Validator`, so
the inferred type is erased). It validates and reports errors without producing
a value, which is what the parsing category measures - the same reason `ajv`
has no parsing benchmark. Its only value-producing API, `validateAndParse`,
takes a JSON string.

Also switch the url field to `format: "uri"`. ata-validator has no "url"
format, and unknown formats are silently ignored, so the constraint never ran
in either benchmark while every other library validated it.

Stale ata-validator rows are dropped from the committed parsing results; the
remaining numbers are regenerated by CI.
Silently skipped checks are how a library ends up winning a benchmark it isn't
comparable in, and nothing caught them: `errorData` breaks many constraints at
once, so one unchecked constraint is still reported as invalid.

Add `constraintViolations` - copies of `successData` that each break exactly one
constraint - and assert every validation, parsing and standard schema config
rejects all of them. Values avoid the disagreements between libraries (coercion,
and minimums some set to 0 and others to 1) so a failure always means a missing
check. Deviations a library provably cannot express go in `constraintGaps` with
a reason, and are asserted to still deviate, so an upstream fix retires the
entry instead of hiding in it.

That found two schemas checking something other than what was specified:

- typia constrained `tags` to 1-30 *items* rather than each tag to 1-30
  characters, so no per-tag length was checked
- typebox's `Type.Script` schemas attached `with { minimum: 1, maximum: 100 }`
  to `number | null`, where it applies to neither member, so `discount: 0`
  passed

Both now match the other libraries. Also switch ata-validator's validation
benchmark from `isValidObject` to `validate(...).valid`: the `instanceof`
keyword comes from @ata-project/keywords, which only patches `validate`, so the
boolean API never checked `created` was a Date. Its remaining gap - that keyword
doesn't recurse into arrays - is documented in `constraintGaps`.

Download sizes are updated for the changed schemas. Stale ata-validator
validation rows are dropped from the committed results, since they measured a
call the config no longer makes.
Two thirds of the libraries specified `stars` as 0-5 and `quantity` as 0-10,
the rest as 1-5 and 1-10, so they weren't validating the same schema. 0 matches
the majority - and a product with none left, or a rating of zero stars, is data
the schema should accept.

Updated arktype, decoders, typebox (object and script), typia and valibot for
both fields, and effect (v3 and beta) for `quantity`.

Add `constraintBoundaries` to lock it in: copies of `successData` sitting
exactly on a bound, which every config must accept. A schema stricter than
specified now fails the suite the same way a schema missing a check does. This
is also what makes the violation set stricter - it no longer has to dodge the
disagreement, so `stars: 0` and `quantity: 0` are boundaries rather than
untestable.

Download sizes are regenerated for the changed schemas (raw bytes are identical,
gzip shifts by a few bytes).
@netlify

netlify Bot commented Jul 26, 2026

Copy link
Copy Markdown

Deploy Preview for schemabenchmarks ready!

Name Link
🔨 Latest commit 7452179
🔍 Latest deploy log https://app.netlify.com/projects/schemabenchmarks/deploys/6a6629df00d3210008061768
😎 Deploy Preview https://deploy-preview-185--schemabenchmarks.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 21fa6b2189

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread bench/bench.json Outdated
{"initialization":[{"id":"6f2f1e3b-94d6-4844-80ce-d5bd447a36b6","libraryName":"typia","version":"13.2.0","note":"createIs","snippet":"typia.createIs<TypiaSchema>()","mean":0.00007571029275360306,"optimizeType":"precompiled","type":"initialization"},{"id":"de50d944-c0bd-49ff-8a48-9f74e3481ec2","libraryName":"typia","version":"13.2.0","note":"createValidate","snippet":"typia.createValidate<TypiaSchema>()","mean":0.0001522200314547988,"optimizeType":"precompiled","type":"initialization"},{"id":"8139bc93-4064-4689-9549-330b6fd14101","libraryName":"@paseri/compiler","version":"0.7.7","snippet":"// const source = toSource(schema.toIR(), { name: \"Product\" });\nimport { Product } from \"./product.gen.ts\";","mean":0.0009881057223148978,"optimizeType":"precompiled","type":"initialization"},{"id":"7d06159e-bd7e-40a5-834c-d6adc5771e14","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"object(...)","mean":0.0011235980721305617,"optimizeType":"none","type":"initialization"},{"id":"c13f387d-2a8e-4f0f-a484-47c1659d0639","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.object(...)","mean":0.0030916852517727106,"optimizeType":"none","type":"initialization"},{"id":"3c5cf9b6-5241-4e46-8a37-0a096839f294","libraryName":"io-ts","version":"2.2.22","snippet":"t.type(...)","mean":0.003108596952335549,"optimizeType":"none","type":"initialization"},{"id":"577d9de7-e64e-43ce-8bc3-7f36a3ecfe08","libraryName":"superstruct","version":"2.0.2","snippet":"object(...)","mean":0.003509090758838293,"optimizeType":"none","type":"initialization"},{"id":"52b133e4-ff80-44e1-8a4e-b7d1fa5a4c42","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"S.schema(...)","mean":0.0055959882316727935,"optimizeType":"jit","type":"initialization"},{"id":"d7961939-e000-4c89-b9b3-7db6cd5bacf0","libraryName":"decoders","version":"2.9.3","snippet":"object(...)","mean":0.006572434016207285,"optimizeType":"none","type":"initialization"},{"id":"723ed559-d63f-42ec-9650-3df99c64f9c3","libraryName":"typebox","version":"1.3.8","snippet":"Type.Object(...)","mean":0.011459588123398555,"optimizeType":"jit","type":"initialization"},{"id":"7b999db2-b1a6-479a-b200-8504dc261cc0","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"s.object(...)","mean":0.03806065989190863,"optimizeType":"none","type":"initialization"},{"id":"c6f9ba16-da75-4301-9480-d42e2739fc1c","libraryName":"zod/v3","version":"4.4.3","snippet":"z.object(...)","mean":0.04498907036170382,"optimizeType":"none","type":"initialization"},{"id":"77b096b0-23ad-4c90-acb1-597b6fab33d8","libraryName":"valibot","version":"1.4.2","snippet":"v.object(...)","mean":0.06155937677467153,"optimizeType":"none","type":"initialization"},{"id":"af7f09c9-3994-4fdd-bec9-59ed9032745f","libraryName":"sury","version":"11.0.0-alpha.11","note":"parser","snippet":"S.parser(S.schema(...))","mean":0.0748623479562792,"optimizeType":"jit","type":"initialization"},{"id":"779c39d5-5cc0-485c-86a8-bfb6c0a942a3","libraryName":"yup","version":"1.7.1","snippet":"object(...)","mean":0.10727536333404594,"optimizeType":"none","type":"initialization"},{"id":"3929b2ae-9632-467f-b03d-267d414f9f1a","libraryName":"ata-validator","version":"1.2.1","snippet":"new Validator({...})","mean":0.12854446401027558,"optimizeType":"jit","type":"initialization"},{"id":"c98270ae-a575-4e6b-95df-368b5b3d08eb","libraryName":"typebox","version":"1.3.8","note":"schema compile","snippet":"Schema.Compile(Type.Object(...))","mean":0.17486402413013774,"optimizeType":"jit","type":"initialization"},{"id":"170ae4cf-9573-4d11-a962-d13b6e54b403","libraryName":"effect@beta","version":"4.0.0-beta.101","snippet":"Schema.struct(...)","mean":0.1879699488721742,"optimizeType":"none","type":"initialization"},{"id":"3c7036a1-28c8-4e81-a11a-c79a27b59140","libraryName":"typebox","version":"1.3.8","note":"compile","snippet":"Compile(Type.Object(...))","mean":0.18830009131989234,"optimizeType":"jit","type":"initialization"},{"id":"f633468f-5783-4b81-ab11-285d30e292b6","libraryName":"effect@beta","version":"4.0.0-beta.101","note":"decodeUnknownOption","snippet":"Schema.decodeUnknownOption(\n Schema.struct(...)\n)","mean":0.19283544282425136,"optimizeType":"none","type":"initialization"},{"id":"1ec9d5f2-b364-4d5c-ae3c-af8a4fe67940","libraryName":"zod/mini","version":"4.4.3","snippet":"z.object(...)","mean":0.22754106052333994,"optimizeType":"jit","type":"initialization"},{"id":"5ce53faa-ec17-464a-92aa-03cf4119262f","libraryName":"joi","version":"18.2.3","snippet":"object(...)","mean":0.23355952685661233,"optimizeType":"none","type":"initialization"},{"id":"fa2a487b-9825-45a6-bc28-40a1408d7ce6","libraryName":"effect","version":"3.22.0","snippet":"Schema.struct(...)","mean":0.45054435093168443,"optimizeType":"none","type":"initialization"},{"id":"85de238e-71f3-4407-a3de-8bafe6341857","libraryName":"zod","version":"4.4.3","snippet":"z.object(...)","mean":0.5286926728329909,"optimizeType":"jit","type":"initialization"},{"id":"33421d5d-af94-4b89-9573-37aaddbd96e4","libraryName":"effect","version":"3.22.0","note":"decodeUnknownEither","snippet":"Schema.decodeUnknownEither(\n Schema.struct(...)\n)","mean":0.5377282978494697,"optimizeType":"none","type":"initialization"},{"id":"38bfe517-066a-48c4-8b3a-e571827ed210","libraryName":"arktype","version":"2.2.3","snippet":"type(...)","mean":0.5476887376779902,"optimizeType":"jit","type":"initialization"},{"id":"34168c1b-71a7-4abd-b995-98667c5fd76e","libraryName":"runtypes","version":"7.0.4","snippet":"Object({...})","mean":1.1004139262926282,"optimizeType":"none","type":"initialization"},{"id":"2fcf272e-48fb-4735-91a5-c5f54e9c6396","libraryName":"typebox","version":"1.3.8","note":"script compile","snippet":"Schema.Compile(Type.Script(...))","mean":1.9638066823529288,"optimizeType":"jit","type":"initialization"},{"id":"0413ef9b-59b4-4520-9ce0-f910e050d9da","libraryName":"typebox","version":"1.3.8","note":"script","snippet":"Type.Script(...)","mean":2.1222931864406727,"optimizeType":"jit","type":"initialization"},{"id":"3620e084-c338-4446-8d31-fe7978300843","libraryName":"ajv","version":"8.20.0","snippet":"ajv.compile({...})","mean":4.006750392000013,"optimizeType":"jit","type":"initialization"}],"parsing":{"valid":[{"id":"98c5cd1b-e055-44b8-807e-0063c8bef2d2","libraryName":"@paseri/compiler","version":"0.7.7","note":"safeParse","snippet":"Product.safeParse(data)","mean":0.0010396926232785256,"optimizeType":"precompiled","type":"parsing","errorType":"allErrors"},{"id":"c9d7ee2c-5678-45b6-92ca-060fe922b799","libraryName":"@paseri/compiler","version":"0.7.7","note":"parse","snippet":"Product.parse(data)","throws":true,"mean":0.0010479424878777734,"optimizeType":"precompiled","type":"parsing","errorType":"allErrors"},{"id":"23897de7-2079-44d2-bc96-59e9177d22f4","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"// const parser = S.parser(S.schema(...));\nparser(data);","throws":true,"mean":0.0026686185185996894,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"0863971f-a34b-4d11-859d-08529a5b272a","libraryName":"sury","version":"11.0.0-alpha.11","note":"safe","snippet":"S.safe(() => parser(data))","mean":0.0026825505606524603,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"10578283-5ce4-4aa6-b85a-b274f74a1d78","libraryName":"@paseri/paseri","version":"1.9.7","note":"parse","snippet":"p.object(...).parse(data)","throws":true,"mean":0.0032745367484522145,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"84c30e1c-5083-4baa-9b98-1f4527869dd1","libraryName":"@paseri/paseri","version":"1.9.7","note":"safeParse","snippet":"p.object(...).safeParse(data)","mean":0.0033203136926098936,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"31e496f5-67af-427e-8afd-cfe8f3fb2c41","libraryName":"typebox","version":"1.3.8","note":"script compile","snippet":"// const compiledScriptSchema = Schema.Compile(scriptSchema);\ncompiledScriptSchema.Parse(data);","throws":true,"mean":0.003920227631253393,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"e323afea-65ac-48b7-ba6f-fdf8ecaa03a3","libraryName":"typebox","version":"1.3.8","note":"schema compile","snippet":"// const compiledSchema = Schema.Compile(schema);\ncompiledSchema.Parse(data);","throws":true,"mean":0.003934214764284694,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"b248ce8b-5296-4d3b-8e08-d53230d9ae7f","libraryName":"typebox","version":"1.3.8","note":"compile","snippet":"// const compiled = Compile(schema);\ncompiled.Parse(data);","throws":true,"mean":0.003947892021320737,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"6a992fb2-cd39-4d67-8701-98966ae83974","libraryName":"io-ts","version":"2.2.22","snippet":"schema.decode(data)","mean":0.006009218447100706,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"d5dcccdd-c435-4590-b2b4-dd4c5dfe9299","libraryName":"typia","version":"13.2.0","note":"createValidate","snippet":"// const validate = typia.createValidate<TypiaSchema>();\nvalidate(data);","mean":0.006212374510772094,"optimizeType":"precompiled","type":"parsing","errorType":"allErrors"},{"id":"d857bb73-a7d6-4e93-9a82-f7d85b30e159","libraryName":"arktype","version":"2.2.3","snippet":"schema(data)","mean":0.007055023154581098,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"d3814d58-5bee-4eee-8808-612a8286a265","libraryName":"typia","version":"13.2.0","note":"validate","snippet":"typia.validate<TypiaSchema>(data)","mean":0.008399280434759303,"optimizeType":"precompiled","type":"parsing","errorType":"allErrors"},{"id":"2123cb60-c06a-43c6-a3b8-e673c64182be","libraryName":"zod","version":"4.4.3","snippet":"schema.safeParse(data)","mean":0.009494852678950371,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"bfa89b79-8703-4dca-8c5b-f42712ff68e9","libraryName":"valibot","version":"1.4.2","snippet":"v.safeParse(schema, data, { abortEarly: true })","mean":0.012241131591831102,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"f28fe746-64dd-49f1-96b9-6b6075fdf5a9","libraryName":"valibot","version":"1.4.2","snippet":"v.safeParse(schema, data)","mean":0.012272239504200921,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"6bb32d86-d49a-4982-9da1-8876c0d2a801","libraryName":"valibot","version":"1.4.2","note":"abortPipeEarly only","snippet":"v.safeParse(schema, data, { abortPipeEarly: true })","mean":0.012283680760110426,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"090d3fb3-b93d-462d-9372-65192df33f42","libraryName":"zod/v3","version":"4.4.3","snippet":"schema.safeParse(data)","mean":0.01418337428020218,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"68782322-00ea-4590-ba92-303b79b9ddce","libraryName":"zod/mini","version":"4.4.3","note":"jitless","snippet":"schema.safeParse(data, { jitless: true })","mean":0.0154290300094161,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"23469d70-cf1e-48c2-966f-eead3a0b08f8","libraryName":"decoders","version":"2.9.3","snippet":"schema.decode(data)","mean":0.015576463520249962,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"503488ea-8c2e-4cd3-a643-b787434125ac","libraryName":"zod/mini","version":"4.4.3","snippet":"schema.safeParse(data)","mean":0.01566234312742587,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"12caae38-be08-4317-9ae7-3e1b259d444d","libraryName":"zod","version":"4.4.3","note":"jitless","snippet":"schema.safeParse(data, { jitless: true })","mean":0.015853390532354048,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"695145b8-fb52-4297-81d5-0221ae2ceac2","libraryName":"effect@beta","version":"4.0.0-beta.101","snippet":"// const decode = Schema.decodeUnknownOption(schema);\ndecode(data, { errors: \"first\" })","mean":0.01704211827059111,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"5b9f0db7-bbe0-456b-8288-9dd3d94cea69","libraryName":"effect@beta","version":"4.0.0-beta.101","snippet":"// const decode = Schema.decodeUnknownOption(schema);\ndecode(data, { errors: \"all\" })","mean":0.01728738057946969,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"98c1991a-7e01-4150-8946-e6449b23a2af","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"validate(data, schema, { abortEarly: true })","mean":0.017553918164585066,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"da6767f0-5897-4ee3-be80-d9d82fa2704d","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"validate(data, schema)","mean":0.017659495593976365,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"634c5bbb-f800-46eb-9f36-3bc2a0d1e5d4","libraryName":"effect","version":"3.22.0","snippet":"// const decodeFirst = Schema.decodeUnknownEither(\n// schema, \n// { errors: \"first\" }\n// );\ndecodeFirst(data)","mean":0.01891834508787444,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"4986152d-7788-4ffd-8edc-2424d381bbc3","libraryName":"effect","version":"3.22.0","snippet":"// const decodeAll = Schema.decodeUnknownEither(\n// schema, \n// { errors: \"all\" }\n// );\ndecodeAll(data)","mean":0.018939713162878923,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"dcf16548-d888-43a7-b8c4-571626d9ccaf","libraryName":"@sapphire/shapeshift","version":"4.0.0","note":"run","snippet":"schema.run(data)","mean":0.025350442253090872,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"af3214b7-be78-4bde-8559-78ba38a7b651","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"schema.parse(data)","throws":true,"mean":0.025394422001573304,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"03681fa0-a23d-487f-a28b-941ea83e34c4","libraryName":"joi","version":"18.2.3","snippet":"schema.validate(data, { abortEarly: false })","mean":0.039784116207830324,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"90d1037f-a518-4090-ad0a-fa64460913a9","libraryName":"joi","version":"18.2.3","snippet":"schema.validate(data, { abortEarly: true })","mean":0.03985644577737475,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"e033ddfe-1ed2-441a-8e74-d9b59d62b3ea","libraryName":"superstruct","version":"2.0.2","snippet":"const [error] = schema.validate(data);\nfor (const failure of error.failures()) {\n // ...\n}","mean":0.053814636980030015,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"1c046765-df3b-490d-ba37-953507065ff8","libraryName":"superstruct","version":"2.0.2","note":"schema.validate","snippet":"schema.validate(data)","mean":0.05390263208106915,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"603ac18f-4485-45e5-9314-ff3007c22449","libraryName":"superstruct","version":"2.0.2","snippet":"const [error] = validate(data, schema);\nfor (const failure of error.failures()) {\n // ...\n}","mean":0.05402062143474601,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"3353b869-3105-4b8a-832c-84bc2fdeab35","libraryName":"superstruct","version":"2.0.2","snippet":"validate(data, schema)","mean":0.05405878085301417,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"e5f68d21-0b97-434f-9795-6277855c7730","libraryName":"runtypes","version":"7.0.4","snippet":"schema.parse(data)","throws":true,"mean":0.07226960687960275,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"1966f843-e792-4c91-b82a-8c50ab7babe5","libraryName":"runtypes","version":"7.0.4","snippet":"schema.inspect(data)","mean":0.07248478283559918,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"93791904-7ce8-40ea-ab3e-595a530271b1","libraryName":"typebox","version":"1.3.8","note":"schema","snippet":"Schema.Parse(schema, data)","throws":true,"mean":0.08218337845165787,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"ef585f52-c391-4765-8447-d1d86a067840","libraryName":"typebox","version":"1.3.8","snippet":"Value.Parse(schema, data)","throws":true,"mean":0.08427113044580756,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"dea96e81-1ce8-4e7f-84cc-04ea123aa2de","libraryName":"yup","version":"1.7.1","snippet":"schema.validateSync(data, { abortEarly: false })","throws":true,"mean":0.14035314708771796,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"0fe3bf3a-4264-4cd2-91f0-5d32c99a103e","libraryName":"yup","version":"1.7.1","snippet":"schema.validateSync(data, { abortEarly: true })","throws":true,"mean":0.14057323573234803,"optimizeType":"none","type":"parsing","errorType":"abortEarly"}],"invalid":[{"id":"29a620d2-c0e8-4fda-940f-fbf51eaae1b5","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"validate(data, schema, { abortEarly: true })","mean":0.0006627416521101919,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"638432e0-4ff2-4207-a224-53ebfce4ad6e","libraryName":"valibot","version":"1.4.2","snippet":"v.safeParse(schema, data, { abortEarly: true })","mean":0.0007261166011959119,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"9948ac4a-016c-44a1-9ba8-ff69cbf33991","libraryName":"effect@beta","version":"4.0.0-beta.101","snippet":"// const decode = Schema.decodeUnknownOption(schema);\ndecode(data, { errors: \"first\" })","mean":0.0012343592614581169,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"3015eecd-8d77-4636-8edb-1a5c1a5d285f","libraryName":"@paseri/compiler","version":"0.7.7","note":"safeParse","snippet":"Product.safeParse(data)","mean":0.0015266402064631473,"optimizeType":"precompiled","type":"parsing","errorType":"allErrors"},{"id":"6671958f-334d-4d66-96c6-0ea11e905dc9","libraryName":"joi","version":"18.2.3","snippet":"schema.validate(data, { abortEarly: true })","mean":0.0040243990582923585,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"b4114415-08d1-4dcc-993f-e2942f79002c","libraryName":"@paseri/paseri","version":"1.9.7","note":"safeParse","snippet":"p.object(...).safeParse(data)","mean":0.004105149771959927,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"5a644c2a-157e-4e23-b897-379325a64de2","libraryName":"io-ts","version":"2.2.22","snippet":"schema.decode(data)","mean":0.005876646427600232,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"e5f04a56-daa2-4f77-9c40-80d791642c7b","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"// const parser = S.parser(S.schema(...));\nparser(data);","throws":true,"mean":0.007342767492233977,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"24e3351b-66b9-4b63-8489-efc6d88d546e","libraryName":"@paseri/compiler","version":"0.7.7","note":"parse","snippet":"Product.parse(data)","throws":true,"mean":0.00755595886539962,"optimizeType":"precompiled","type":"parsing","errorType":"allErrors"},{"id":"bf7c8580-a9c1-4d81-bd52-5c36ab143402","libraryName":"sury","version":"11.0.0-alpha.11","note":"safe","snippet":"S.safe(() => parser(data))","mean":0.007599261406470865,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"62ccaa44-6c6f-48d7-97bc-41319f099b57","libraryName":"effect","version":"3.22.0","snippet":"// const decodeFirst = Schema.decodeUnknownEither(\n// schema, \n// { errors: \"first\" }\n// );\ndecodeFirst(data)","mean":0.009406320189623976,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"e23f8df4-0c18-4335-bc59-56c0a628749b","libraryName":"@paseri/paseri","version":"1.9.7","note":"parse","snippet":"p.object(...).parse(data)","throws":true,"mean":0.010218996525541786,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"ce9ecad1-ad81-43b4-bd12-ef8444e17208","libraryName":"superstruct","version":"2.0.2","note":"schema.validate","snippet":"schema.validate(data)","mean":0.01034929979818651,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"6673cd61-de05-43bf-87c2-73d807c2647a","libraryName":"superstruct","version":"2.0.2","snippet":"validate(data, schema)","mean":0.010361305575418657,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"d859c4bf-d476-408c-98df-328697c1cb42","libraryName":"typia","version":"13.2.0","note":"createValidate","snippet":"// const validate = typia.createValidate<TypiaSchema>();\nvalidate(data);","mean":0.017388692691592694,"optimizeType":"precompiled","type":"parsing","errorType":"allErrors"},{"id":"cac1b769-c712-43a4-ac74-4826eb4b3fe4","libraryName":"typia","version":"13.2.0","note":"validate","snippet":"typia.validate<TypiaSchema>(data)","mean":0.018355216112048225,"optimizeType":"precompiled","type":"parsing","errorType":"allErrors"},{"id":"69ac0504-dbe3-4ca8-b7cd-990fcd195239","libraryName":"effect@beta","version":"4.0.0-beta.101","snippet":"// const decode = Schema.decodeUnknownOption(schema);\ndecode(data, { errors: \"all\" })","mean":0.0213749034071541,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"65059b40-b914-4205-9e90-cc65588e6a97","libraryName":"valibot","version":"1.4.2","note":"abortPipeEarly only","snippet":"v.safeParse(schema, data, { abortPipeEarly: true })","mean":0.028853237081265408,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"3bafc052-a97a-4e5b-9fa2-532f30f4f5e8","libraryName":"valibot","version":"1.4.2","snippet":"v.safeParse(schema, data)","mean":0.02930507047825308,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"98ebb3a7-3ed7-46ee-8bfe-be6fc51ca71e","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"validate(data, schema)","mean":0.030930534997364693,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"fa20eb8f-d2fb-454a-9911-dbc580503623","libraryName":"effect","version":"3.22.0","snippet":"// const decodeAll = Schema.decodeUnknownEither(\n// schema, \n// { errors: \"all\" }\n// );\ndecodeAll(data)","mean":0.03186323256332233,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"18c10501-89d1-4f6b-ad28-5c71fb9b9e5d","libraryName":"zod/v3","version":"4.4.3","snippet":"schema.safeParse(data)","mean":0.04065524472179876,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"c76647d1-3a32-4175-9101-ed95579a0b4c","libraryName":"decoders","version":"2.9.3","snippet":"schema.decode(data)","mean":0.05975558739169269,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"18655c95-36ab-4e03-b52e-8995be4ff709","libraryName":"joi","version":"18.2.3","snippet":"schema.validate(data, { abortEarly: false })","mean":0.062435961041400645,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"fca66cce-2425-481e-9a14-771b2cb60035","libraryName":"zod/mini","version":"4.4.3","note":"jitless","snippet":"schema.safeParse(data, { jitless: true })","mean":0.06542269246368568,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"6ed2991a-d2b7-4c0b-8fe7-a4ec995c5a87","libraryName":"zod/mini","version":"4.4.3","snippet":"schema.safeParse(data)","mean":0.06578309656624395,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"eb0a0a57-c860-49b8-9d03-8a75b2e0b087","libraryName":"zod","version":"4.4.3","snippet":"schema.safeParse(data)","mean":0.07474085650225337,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"8e3e97ba-27b6-454a-91c1-766c54faa8a2","libraryName":"superstruct","version":"2.0.2","snippet":"const [error] = validate(data, schema);\nfor (const failure of error.failures()) {\n // ...\n}","mean":0.08070915059317567,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"a0483208-518a-46ed-9901-2d30fceb2e27","libraryName":"superstruct","version":"2.0.2","snippet":"const [error] = schema.validate(data);\nfor (const failure of error.failures()) {\n // ...\n}","mean":0.08097391198378562,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"2e6fbd57-1b37-4a15-99a7-6fe5f576048e","libraryName":"zod","version":"4.4.3","note":"jitless","snippet":"schema.safeParse(data, { jitless: true })","mean":0.08101679236876337,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"f4d15c40-a55c-49c1-9914-9703342be49a","libraryName":"typebox","version":"1.3.8","note":"schema compile","snippet":"// const compiledSchema = Schema.Compile(schema);\ncompiledSchema.Parse(data);","throws":true,"mean":0.08144930550578584,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"4f150224-ca12-4de6-8539-61c169ee0e22","libraryName":"typebox","version":"1.3.8","note":"schema","snippet":"Schema.Parse(schema, data)","throws":true,"mean":0.08613978837208508,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"802e1db1-cdeb-4ffa-b636-fc652f882944","libraryName":"typebox","version":"1.3.8","note":"compile","snippet":"// const compiled = Compile(schema);\ncompiled.Parse(data);","throws":true,"mean":0.09081090565697462,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"b9cb4d8e-7ee0-435b-b4d4-94fcddf19935","libraryName":"typebox","version":"1.3.8","note":"script compile","snippet":"// const compiledScriptSchema = Schema.Compile(scriptSchema);\ncompiledScriptSchema.Parse(data);","throws":true,"mean":0.09120100948467721,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"8bdbdcf9-7435-4a30-a1b4-541c6ebc168b","libraryName":"yup","version":"1.7.1","snippet":"schema.validateSync(data, { abortEarly: true })","throws":true,"mean":0.09600396774503893,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"34beed80-dd93-4bf6-ac81-fbcbd12730a4","libraryName":"typebox","version":"1.3.8","snippet":"Value.Parse(schema, data)","throws":true,"mean":0.09781493476130487,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"62de17b2-789d-493e-9d84-da063fdf9233","libraryName":"arktype","version":"2.2.3","snippet":"schema(data)","mean":0.10109919348968527,"optimizeType":"jit","type":"parsing","errorType":"allErrors"},{"id":"8418b396-c518-4eda-92c7-b3d201daf542","libraryName":"runtypes","version":"7.0.4","snippet":"schema.inspect(data)","mean":0.18906857485821885,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"aaa44f98-dcb6-48b9-9b85-4d314723dc36","libraryName":"runtypes","version":"7.0.4","snippet":"schema.parse(data)","throws":true,"mean":0.20321268055271996,"optimizeType":"none","type":"parsing","errorType":"abortEarly"},{"id":"83b42e6a-e6fc-4f44-babb-1a6bee328fa9","libraryName":"@sapphire/shapeshift","version":"4.0.0","note":"run","snippet":"schema.run(data)","mean":0.27589988882757466,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"f2ae845d-893d-41c2-a104-5c93358a6ec2","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"schema.parse(data)","throws":true,"mean":0.27658947511062815,"optimizeType":"none","type":"parsing","errorType":"allErrors"},{"id":"d0e07b9c-24a8-46a0-9cdc-2599a3a6714d","libraryName":"yup","version":"1.7.1","snippet":"schema.validateSync(data, { abortEarly: false })","throws":true,"mean":0.5381033426573071,"optimizeType":"none","type":"parsing","errorType":"allErrors"}]},"validation":{"valid":[{"id":"e633cb09-dfd4-4600-8a8e-ebe7677626f7","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"S.is(S.schema(...), data)","mean":0.00307994724976381,"optimizeType":"jit","type":"validation"},{"id":"18feead2-c2ba-4c7a-9919-4373fd87aaa6","libraryName":"io-ts","version":"2.2.22","snippet":"schema.is(data)","mean":0.0033463654193659907,"optimizeType":"none","type":"validation"},{"id":"309c7e2d-2c75-4208-88db-140c94ef7001","libraryName":"ajv","version":"8.20.0","note":"validate","snippet":"ajv.validate(schema, data)","mean":0.003569398379497505,"optimizeType":"jit","type":"validation"},{"id":"bca70660-ef1a-4f48-aece-be15cb66b7c6","libraryName":"ajv","version":"8.20.0","note":"compile","snippet":"// const validate = ajv.compile(schema);\nvalidate(data);","mean":0.003733456320539301,"optimizeType":"jit","type":"validation"},{"id":"188f5ce6-d8c2-4c4a-ab0b-3780555ca591","libraryName":"typebox","version":"1.3.8","note":"script compile","snippet":"// const compiledScriptSchema = Schema.Compile(scriptSchema);\ncompiledScriptSchema.Check(data);","mean":0.003949691944625206,"optimizeType":"jit","type":"validation"},{"id":"2526a06d-f36f-41cc-958f-9e445530a090","libraryName":"typebox","version":"1.3.8","note":"schema compile","snippet":"// const compiledSchema = Schema.Compile(schema);\ncompiledSchema.Check(data);","mean":0.003978365424095202,"optimizeType":"jit","type":"validation"},{"id":"348caa15-73c5-4dc6-b935-d0a030a1b6b7","libraryName":"typebox","version":"1.3.8","note":"compile","snippet":"// const compiled = Compile(schema);\ncompiled.Check(data);","mean":0.004010351033668038,"optimizeType":"jit","type":"validation"},{"id":"977e4295-36dd-4595-8488-381615a2fe6c","libraryName":"typia","version":"13.2.0","note":"createIs","snippet":"// const is = typia.createIs<TypiaSchema>();\nis(data);","mean":0.006087900725066242,"optimizeType":"precompiled","type":"validation"},{"id":"95782c34-1113-414f-a40f-4a139e5025a7","libraryName":"typia","version":"13.2.0","note":"is","snippet":"typia.is<TypiaSchema>(data)","mean":0.006445218383028091,"optimizeType":"precompiled","type":"validation"},{"id":"615b4a64-66a4-4ec9-aa59-53c8cdebabfd","libraryName":"arktype","version":"2.2.3","snippet":"schema.allows(data)","mean":0.007039910473922672,"optimizeType":"jit","type":"validation"},{"id":"4e0756c3-fbbb-4c6f-887f-a4ed9f363432","libraryName":"valibot","version":"1.4.2","snippet":"v.is(schema, data)","mean":0.012627116484623786,"optimizeType":"none","type":"validation"},{"id":"e90dba19-a205-4e8b-85eb-bb2fb1b95fd1","libraryName":"effect@beta","version":"4.0.0-beta.101","snippet":"// const is = Schema.is(schema);\nis(data);","mean":0.017103305854383823,"optimizeType":"none","type":"validation"},{"id":"3e843cdb-0b7c-4e1e-93ed-6bc0a4fc6f6c","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"is(data, schema)","mean":0.01757760760050486,"optimizeType":"none","type":"validation"},{"id":"af154ccd-173c-4fdb-9bff-2b639453827a","libraryName":"effect","version":"3.22.0","snippet":"// const is = Schema.is(schema);\nis(data);","mean":0.019706470410877665,"optimizeType":"none","type":"validation"},{"id":"7a65a521-16c3-41ba-9a64-d7e94d0a72b8","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"schema.is(data)","mean":0.025738705369096285,"optimizeType":"none","type":"validation"},{"id":"d0dad9bb-a363-438e-abb3-5982e7bd7177","libraryName":"superstruct","version":"2.0.2","note":"schema.is","snippet":"schema.is(data)","mean":0.054527361777540376,"optimizeType":"none","type":"validation"},{"id":"47b9926d-280a-401b-85d0-aa7ca6a23e18","libraryName":"superstruct","version":"2.0.2","snippet":"is(data, schema)","mean":0.05475998663891695,"optimizeType":"none","type":"validation"},{"id":"7c8ef97b-1bd2-454e-bcbc-55c504f91e1b","libraryName":"runtypes","version":"7.0.4","snippet":"schema.guard(data)","mean":0.0726284359067486,"optimizeType":"none","type":"validation"},{"id":"9e52f75a-12b0-42c0-9743-d9b82f93a9a1","libraryName":"typebox","version":"1.3.8","note":"schema","snippet":"Schema.Check(schema, data)","mean":0.08099898614937152,"optimizeType":"jit","type":"validation"},{"id":"5f5f982d-0aea-48b9-96ef-9ed8dbf4736f","libraryName":"typebox","version":"1.3.8","snippet":"Value.Check(schema, data)","mean":0.08118097004627475,"optimizeType":"jit","type":"validation"},{"id":"859c9a59-a6fc-4c4b-b464-bdd2b1c23e39","libraryName":"yup","version":"1.7.1","snippet":"schema.isValidSync(data)","mean":0.1448946680672276,"optimizeType":"none","type":"validation"}],"invalid":[{"id":"fa715189-08e9-4a5f-83f1-2a124a59a568","libraryName":"typia","version":"13.2.0","note":"createIs","snippet":"// const is = typia.createIs<TypiaSchema>();\nis(data);","mean":0.0000532930468990879,"optimizeType":"precompiled","type":"validation"},{"id":"aa3bb20b-3894-4885-bad0-01b6002284ef","libraryName":"typebox","version":"1.3.8","note":"compile","snippet":"// const compiled = Compile(schema);\ncompiled.Check(data);","mean":0.00006555381433691555,"optimizeType":"jit","type":"validation"},{"id":"ba48fc29-3e57-432f-ae7a-106616acc129","libraryName":"typebox","version":"1.3.8","note":"schema compile","snippet":"// const compiledSchema = Schema.Compile(schema);\ncompiledSchema.Check(data);","mean":0.000068186832387174,"optimizeType":"jit","type":"validation"},{"id":"1e10a42a-d35b-4c55-b353-99f594d611be","libraryName":"typebox","version":"1.3.8","note":"script compile","snippet":"// const compiledScriptSchema = Schema.Compile(scriptSchema);\ncompiledScriptSchema.Check(data);","mean":0.000077743273769124,"optimizeType":"jit","type":"validation"},{"id":"0278147d-d4ca-4f6c-a896-c322b71a925e","libraryName":"ajv","version":"8.20.0","note":"compile","snippet":"// const validate = ajv.compile(schema);\nvalidate(data);","mean":0.00008043286433750655,"optimizeType":"jit","type":"validation"},{"id":"57819d48-508c-4482-b991-74b0592522f3","libraryName":"typia","version":"13.2.0","note":"is","snippet":"typia.is<TypiaSchema>(data)","mean":0.00008584632392756445,"optimizeType":"precompiled","type":"validation"},{"id":"0c8430b2-f5e0-40ea-b2f5-7ee2063d94aa","libraryName":"io-ts","version":"2.2.22","snippet":"schema.is(data)","mean":0.00012591327472060278,"optimizeType":"none","type":"validation"},{"id":"caaf6c54-0cf4-4430-9654-48a5363591e2","libraryName":"ajv","version":"8.20.0","note":"validate","snippet":"ajv.validate(schema, data)","mean":0.00012968140145653778,"optimizeType":"jit","type":"validation"},{"id":"4ab385e1-826a-4c15-910a-52d906272016","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"is(data, schema)","mean":0.0006607448461920817,"optimizeType":"none","type":"validation"},{"id":"d7aaf9cd-e777-4078-b096-3aa8c19096d0","libraryName":"valibot","version":"1.4.2","snippet":"v.is(schema, data)","mean":0.0006972169906171695,"optimizeType":"none","type":"validation"},{"id":"ce82ba4b-1b63-42ae-a013-11adda9edd21","libraryName":"effect","version":"3.22.0","snippet":"// const is = Schema.is(schema);\nis(data);","mean":0.0007563872321919954,"optimizeType":"none","type":"validation"},{"id":"7b84ce08-10b4-4791-bdc4-1264e138ec43","libraryName":"arktype","version":"2.2.3","snippet":"schema.allows(data)","mean":0.0008007290084897703,"optimizeType":"jit","type":"validation"},{"id":"af5baf2d-44cd-4710-81b5-afee5a05c04e","libraryName":"effect@beta","version":"4.0.0-beta.101","snippet":"// const is = Schema.is(schema);\nis(data);","mean":0.0013942457036345208,"optimizeType":"none","type":"validation"},{"id":"5248ccd7-9a5a-476a-b669-41807b564076","libraryName":"typebox","version":"1.3.8","snippet":"Value.Check(schema, data)","mean":0.004374029900751912,"optimizeType":"jit","type":"validation"},{"id":"e8dbb455-74a7-45b0-94ad-67bc49d151f7","libraryName":"typebox","version":"1.3.8","note":"schema","snippet":"Schema.Check(schema, data)","mean":0.004753952080323217,"optimizeType":"jit","type":"validation"},{"id":"e9653fbf-42e8-4c5a-b73e-5f332ac01cdd","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"S.is(S.schema(...), data)","mean":0.007885463245962468,"optimizeType":"jit","type":"validation"},{"id":"342f6448-5e73-4bca-ad37-2ee598aab99e","libraryName":"superstruct","version":"2.0.2","note":"schema.is","snippet":"schema.is(data)","mean":0.01112830127641415,"optimizeType":"none","type":"validation"},{"id":"d88accdc-60d5-4b8f-9e23-69b0d6091e86","libraryName":"superstruct","version":"2.0.2","snippet":"is(data, schema)","mean":0.011153721192991566,"optimizeType":"none","type":"validation"},{"id":"d2f2b1ca-b2ab-48f8-a886-4851892d706a","libraryName":"yup","version":"1.7.1","snippet":"schema.isValidSync(data)","mean":0.09675574845200971,"optimizeType":"none","type":"validation"},{"id":"1437ec33-bd9b-4c0b-8f65-e4d92aeb6244","libraryName":"runtypes","version":"7.0.4","snippet":"schema.guard(data)","mean":0.19473326616043074,"optimizeType":"none","type":"validation"},{"id":"89b70d02-1fde-4091-ad6b-c77557747c1c","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"schema.is(data)","mean":0.2796883238255117,"optimizeType":"none","type":"validation"}]},"standard":{"valid":[{"id":"96cd7e16-63a7-47fd-93a4-8edfd9d6be56","libraryName":"ata-validator","version":"1.2.1","snippet":"upfetch(url, { schema })","mean":0.00022864327653887348,"optimizeType":"jit","errorType":"allErrors","type":"standard"},{"id":"9c289479-5378-431f-81f1-a7a34cd19d34","libraryName":"@paseri/compiler","version":"0.7.7","snippet":"upfetch(url, { schema })","mean":0.0010497100336433773,"optimizeType":"precompiled","errorType":"allErrors","type":"standard"},{"id":"c70db93d-6f34-4ae9-b8e1-c5dda5462cb2","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"upfetch(url, { schema })","mean":0.0030112278441756955,"optimizeType":"jit","errorType":"allErrors","type":"standard"},{"id":"84d1d14a-8672-4149-a4bc-6782628ed0e6","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"upfetch(url, { schema })","mean":0.003274984964548222,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"1b143f34-2087-452f-867a-40efd6a96864","libraryName":"typia","version":"13.2.0","snippet":"// const validate = typia.createValidate<TypiaSchema>();\nupfetch(url, { schema: validate })","mean":0.006185548556296484,"optimizeType":"precompiled","errorType":"allErrors","type":"standard"},{"id":"3637f1c9-47bc-4854-9711-20fffb3fb4d9","libraryName":"arktype","version":"2.2.3","snippet":"upfetch(url, { schema })","mean":0.007050963236384622,"optimizeType":"jit","errorType":"allErrors","type":"standard"},{"id":"0a3abb7b-fea5-4c7f-ba9e-784697fef09f","libraryName":"zod","version":"4.4.3","snippet":"upfetch(url, { schema })","mean":0.009376458467340507,"optimizeType":"jit","errorType":"allErrors","type":"standard"},{"id":"5e58bb74-781a-47bc-8e73-ceddd6d83676","libraryName":"valibot","version":"1.4.2","snippet":"upfetch(url, { schema })","mean":0.01242464122954055,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"5ae5b75d-0fae-481b-858b-d98717ae4803","libraryName":"zod/v3","version":"4.4.3","snippet":"upfetch(url, { schema })","mean":0.014223731018693704,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"2b50ccb8-2f16-44fd-ba98-ec85d4ddc382","libraryName":"decoders","version":"2.9.3","snippet":"upfetch(url, { schema })","mean":0.015477298602403574,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"c3cf3809-467c-447a-862f-1c853080eef9","libraryName":"zod/mini","version":"4.4.3","snippet":"upfetch(url, { schema })","mean":0.015510611955578714,"optimizeType":"jit","errorType":"allErrors","type":"standard"},{"id":"7c10ac4f-f8e3-4dbb-a012-f52192847f9d","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"upfetch(url, { schema })","mean":0.0176920353832155,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"7645dac6-033a-4535-8e72-ed5234e8f5e6","libraryName":"effect@beta","version":"4.0.0-beta.101","snippet":"// const standardSchema = Schema.toStandardSchemaV1(\n// schema, \n// { parseOptions: { errors: \"first\" } }\n// );\nupfetch(url, { schema: standardSchema });","mean":0.018128521663464625,"optimizeType":"none","errorType":"abortEarly","type":"standard"},{"id":"ada3cb19-96dc-4d50-a7a5-43126e6eb997","libraryName":"effect@beta","version":"4.0.0-beta.101","snippet":"// const standardSchema = Schema.toStandardSchemaV1(\n// schema, \n// { parseOptions: { errors: \"all\" } }\n// );\nupfetch(url, { schema: standardSchema });","mean":0.018491665175020756,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"d130409e-02f4-4bc7-bac0-41631d0a3e96","libraryName":"effect","version":"3.22.0","snippet":"// const standardSchema = Schema.standardSchemaV1(\n// schema, \n// { errors: \"all\" }\n// );\nupfetch(url, { schema: standardSchema });","mean":0.019238381646786446,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"8c038034-91a5-4207-ad76-6f227c10b766","libraryName":"effect","version":"3.22.0","snippet":"// const standardSchema = Schema.standardSchemaV1(\n// schema, \n// { errors: \"first\" }\n// );\nupfetch(url, { schema: standardSchema });","mean":0.019418030175342948,"optimizeType":"none","errorType":"abortEarly","type":"standard"},{"id":"ac938bb2-c28f-4b93-b904-96fae5269a16","libraryName":"joi","version":"18.2.3","snippet":"upfetch(url, { schema })","mean":0.04074654628799047,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"84a858b8-1830-4238-ab88-f04ed0000556","libraryName":"yup","version":"1.7.1","snippet":"upfetch(url, { schema })","mean":0.1442317352177818,"optimizeType":"none","errorType":"allErrors","type":"standard"}],"invalid":[{"id":"a404f0cf-56b1-4a0b-b7a7-52a324e0486e","libraryName":"@paseri/compiler","version":"0.7.7","snippet":"upfetch(url, { schema })","mean":0.0033265372322550226,"optimizeType":"precompiled","errorType":"allErrors","type":"standard"},{"id":"e64e7688-6a6a-4da3-9d07-d769ef13c03b","libraryName":"joi","version":"18.2.3","snippet":"upfetch(url, { schema })","mean":0.004548024181811862,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"adf19745-ca7b-4e9a-b115-62c615a0f2a9","libraryName":"effect","version":"3.22.0","snippet":"// const standardSchema = Schema.standardSchemaV1(\n// schema, \n// { errors: \"first\" }\n// );\nupfetch(url, { schema: standardSchema });","mean":0.005056385058399709,"optimizeType":"none","errorType":"abortEarly","type":"standard"},{"id":"f89685a5-9d42-4f95-9ba5-ffa55e6bf828","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"upfetch(url, { schema })","mean":0.0058514823197618766,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"78a6f9c1-fe5c-48fa-8949-f240c6c18455","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"upfetch(url, { schema })","mean":0.008036106550197352,"optimizeType":"jit","errorType":"allErrors","type":"standard"},{"id":"6df535bb-2231-4e3e-ba3a-f2a77d63209b","libraryName":"typia","version":"13.2.0","snippet":"// const validate = typia.createValidate<TypiaSchema>();\nupfetch(url, { schema: validate })","mean":0.020992565622624755,"optimizeType":"precompiled","errorType":"allErrors","type":"standard"},{"id":"947cc7eb-7962-4d4b-b286-9d021f179773","libraryName":"valibot","version":"1.4.2","snippet":"upfetch(url, { schema })","mean":0.029096091856039945,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"85b43cfe-f01e-404a-b3e2-04bc81c7c956","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"upfetch(url, { schema })","mean":0.031218526862916894,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"84f45e48-5273-4a29-a0a5-7a5eab31965e","libraryName":"effect@beta","version":"4.0.0-beta.101","snippet":"// const standardSchema = Schema.toStandardSchemaV1(\n// schema, \n// { parseOptions: { errors: \"first\" } }\n// );\nupfetch(url, { schema: standardSchema });","mean":0.03219011140798112,"optimizeType":"none","errorType":"abortEarly","type":"standard"},{"id":"4b6a2964-2917-4208-83a7-e64c51c48126","libraryName":"effect@beta","version":"4.0.0-beta.101","snippet":"// const standardSchema = Schema.toStandardSchemaV1(\n// schema, \n// { parseOptions: { errors: \"all\" } }\n// );\nupfetch(url, { schema: standardSchema });","mean":0.0323073958259288,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"e0324cec-a3b9-43ac-bcfa-9dbeffec25fb","libraryName":"zod/v3","version":"4.4.3","snippet":"upfetch(url, { schema })","mean":0.0348716023991335,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"250dd366-974e-4e37-bf64-362bfa5d5a2f","libraryName":"ata-validator","version":"1.2.1","snippet":"upfetch(url, { schema })","mean":0.06456005597158629,"optimizeType":"jit","errorType":"allErrors","type":"standard"},{"id":"cd8002e1-7e0e-4425-8481-c9cdccfdd460","libraryName":"zod","version":"4.4.3","snippet":"upfetch(url, { schema })","mean":0.06534787662549087,"optimizeType":"jit","errorType":"allErrors","type":"standard"},{"id":"733d6cbe-c540-4bb2-8f26-1c7b5c0c3477","libraryName":"zod/mini","version":"4.4.3","snippet":"upfetch(url, { schema })","mean":0.0659503923107426,"optimizeType":"jit","errorType":"allErrors","type":"standard"},{"id":"6ef0a40b-5654-4194-aac3-9e6ffcf2e528","libraryName":"decoders","version":"2.9.3","snippet":"upfetch(url, { schema })","mean":0.07353188183823153,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"e87fde76-c0e4-4276-a01f-2a53cf2b4e1e","libraryName":"effect","version":"3.22.0","snippet":"// const standardSchema = Schema.standardSchemaV1(\n// schema, \n// { errors: \"all\" }\n// );\nupfetch(url, { schema: standardSchema });","mean":0.07451174927354581,"optimizeType":"none","errorType":"allErrors","type":"standard"},{"id":"e8cc2d98-5877-4deb-aeb3-bb256c56a85f","libraryName":"arktype","version":"2.2.3","snippet":"upfetch(url, { schema })","mean":0.0986178428163056,"optimizeType":"jit","errorType":"allErrors","type":"standard"},{"id":"489684a1-a3ff-4bca-9c1d-a74072d09a7c","libraryName":"yup","version":"1.7.1","snippet":"upfetch(url, { schema })","mean":0.5675514341657011,"optimizeType":"none","errorType":"allErrors","type":"standard"}]},"string":{"date-time":{"valid":[{"id":"22d6b033-db1e-4de9-b1bc-36b64a086686","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"S.isoDateTime","mean":0.00010561192466322754,"optimizeType":"jit","type":"string"},{"id":"84d03db6-0360-4dd8-8345-ea377d59e391","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().datetime()","mean":0.00011935548897383198,"optimizeType":"none","type":"string"},{"id":"be7a0af5-8d27-49a2-9602-3fefe0dc650d","libraryName":"zod/mini","version":"4.4.3","snippet":"z.iso.datetime()","mean":0.00024053071047420418,"optimizeType":"jit","type":"string"},{"id":"cd22a560-8310-484c-9fe5-338307f5fada","libraryName":"zod","version":"4.4.3","snippet":"z.iso.datetime()","mean":0.00024876692653666313,"optimizeType":"jit","type":"string"},{"id":"491ad6a0-5729-4bc5-843a-4a43b65377b4","libraryName":"arktype","version":"2.2.3","snippet":"type(\"string.date.iso\")","mean":0.00025826269909827085,"optimizeType":"jit","type":"string"},{"id":"df639194-1633-48fe-b15f-e3971110012a","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"date-time\" }","mean":0.000341219531742059,"optimizeType":"jit","type":"string"},{"id":"115031e0-14d0-4f94-ad23-6edc3a8d64c7","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"date-time\">","mean":0.0004591723985121907,"optimizeType":"precompiled","type":"string"},{"id":"fadf2c7b-0ae9-4bd8-931d-8de6eb1dbfa6","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"chain(string(), isoDateTime())","mean":0.0014886547782773296,"optimizeType":"none","type":"string"},{"id":"5f41e210-f992-42ce-abb5-6427f415c99c","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().datetime()","mean":0.0015320159681938982,"optimizeType":"none","type":"string"},{"id":"b7fdf9c0-0d2f-4718-8a54-47dfb6efb99c","libraryName":"yup","version":"1.7.1","snippet":"yup.string().datetime()","mean":0.002005386674608316,"optimizeType":"none","type":"string"},{"id":"120675b4-945f-4c80-883e-eb0a0d043ac7","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"date-time\" })","mean":0.002026068693813586,"optimizeType":"jit","type":"string"},{"id":"15aa2867-4ffd-4072-b7af-eef8285f4225","libraryName":"joi","version":"18.2.3","snippet":"Joi.string().isoDate()","mean":0.004339372412115553,"optimizeType":"none","type":"string"}],"invalid":[{"id":"2cf8e770-a585-4715-add9-5616ed1da4f0","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"date-time\" }","mean":0.00007877512346580289,"optimizeType":"jit","type":"string"},{"id":"86dc67d6-22e5-4cb8-9154-107bd96e8334","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"date-time\">","mean":0.00009350078503085228,"optimizeType":"precompiled","type":"string"},{"id":"06c7de43-36af-4c13-9144-9cc0950c053b","libraryName":"arktype","version":"2.2.3","snippet":"type(\"string.date.iso\")","mean":0.00009558184749786089,"optimizeType":"jit","type":"string"},{"id":"3a50b821-41ee-41da-9dbe-b39cd61d698c","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().datetime()","mean":0.00010402905552067245,"optimizeType":"none","type":"string"},{"id":"f9131b85-70cd-48d2-8504-2785b95a3a6b","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"chain(string(), isoDateTime())","mean":0.0001739214090973519,"optimizeType":"none","type":"string"},{"id":"1861ac24-3bc1-4ee0-a750-794136ccd9b5","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"date-time\" })","mean":0.001051715552127634,"optimizeType":"jit","type":"string"},{"id":"3ebbc455-9e38-42f9-954f-ecef3ea8840c","libraryName":"joi","version":"18.2.3","snippet":"Joi.string().isoDate()","mean":0.002146260388425192,"optimizeType":"none","type":"string"},{"id":"50ba9928-ac51-4964-bfef-60ace533bfd0","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().datetime()","mean":0.0027193966441943405,"optimizeType":"none","type":"string"},{"id":"2fc7d66b-c572-4e7f-8bcb-d480c5f4cbb2","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"S.isoDateTime","mean":0.007288456335100668,"optimizeType":"jit","type":"string"},{"id":"a06de385-3795-4fad-a524-a941c4f42608","libraryName":"zod/mini","version":"4.4.3","snippet":"z.iso.datetime()","mean":0.011356248506660659,"optimizeType":"jit","type":"string"},{"id":"9c656d8d-5838-4ca0-92bd-2db781cb2940","libraryName":"zod","version":"4.4.3","snippet":"z.iso.datetime()","mean":0.01582680597935474,"optimizeType":"jit","type":"string"},{"id":"4307c952-16f5-4cae-b909-f1d944368f46","libraryName":"yup","version":"1.7.1","snippet":"yup.string().datetime()","mean":0.021710908250105566,"optimizeType":"none","type":"string"}]},"date":{"valid":[{"id":"2c6087d0-9842-4c2d-a252-35378ce1ea80","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().date()","mean":0.00010012588656433842,"optimizeType":"none","type":"string"},{"id":"fad77f64-56a6-4f27-bb7b-d8dabdc62539","libraryName":"valibot","version":"1.4.2","snippet":"v.pipe(v.string(), v.isoDate())","mean":0.00016947735782793521,"optimizeType":"none","type":"string"},{"id":"78a6cb99-8d19-488c-b658-72cb4b473ecb","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"date\" }","mean":0.00018167871505366488,"optimizeType":"jit","type":"string"},{"id":"e9788cd4-9a0d-4ab5-be59-df5511cbed45","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"s.string().date()","mean":0.0002025310871018349,"optimizeType":"none","type":"string"},{"id":"18aa0e62-1264-449e-9b76-cae4c28a1c6d","libraryName":"zod/mini","version":"4.4.3","snippet":"z.iso.date()","mean":0.00022018476999865422,"optimizeType":"jit","type":"string"},{"id":"46db59af-b48f-42f0-86fb-67509be7192f","libraryName":"zod","version":"4.4.3","snippet":"z.iso.date()","mean":0.0002214062509628996,"optimizeType":"jit","type":"string"},{"id":"72cdef68-b32c-4f61-bfe1-09ccbe5857b6","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"date\">","mean":0.00026095679860532565,"optimizeType":"precompiled","type":"string"},{"id":"1c96e250-2391-4eeb-a7e2-4b59035da49a","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().date()","mean":0.0003172751723676876,"optimizeType":"none","type":"string"},{"id":"20681ae7-f3f3-48ec-b59d-e5acdc30444e","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"chain(string(), isoDate())","mean":0.0012112501447426253,"optimizeType":"none","type":"string"},{"id":"737743b4-079c-45db-9715-2bc9d5c214c1","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"date\" })","mean":0.0015472896848400981,"optimizeType":"jit","type":"string"}],"invalid":[{"id":"52eba248-0c09-4ba1-baf0-c8e42bc2f86b","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"date\" }","mean":0.00006304618996857483,"optimizeType":"jit","type":"string"},{"id":"ec21b9a0-ee73-49cb-9714-43cbd74437de","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"date\">","mean":0.00008001511141422131,"optimizeType":"precompiled","type":"string"},{"id":"5a7eba8a-1d81-42b4-b18c-5d47b7723902","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().date()","mean":0.00010279037806183434,"optimizeType":"none","type":"string"},{"id":"4d7f975a-5c53-4db5-a631-57ce393cc63b","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"chain(string(), isoDate())","mean":0.00014403356154536897,"optimizeType":"none","type":"string"},{"id":"d9f7bf78-ab41-48b3-8c8b-4155c956666d","libraryName":"valibot","version":"1.4.2","snippet":"v.pipe(v.string(), v.isoDate())","mean":0.0002817733632373311,"optimizeType":"none","type":"string"},{"id":"b3d58b87-727a-4ced-aa38-8a7b2238892e","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"date\" })","mean":0.0008765057621475407,"optimizeType":"jit","type":"string"},{"id":"3d45ab0e-b9ac-47a9-9f95-b4ecb87780a6","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().date()","mean":0.0014163888906962385,"optimizeType":"none","type":"string"},{"id":"54473539-afc0-455b-b10c-e938882f80c8","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"s.string().date()","mean":0.007310858944460228,"optimizeType":"none","type":"string"},{"id":"74fe4c8d-94cf-4551-a180-5c99bcce5ee2","libraryName":"zod/mini","version":"4.4.3","snippet":"z.iso.date()","mean":0.011124646939065194,"optimizeType":"jit","type":"string"},{"id":"3f72b421-39dd-4092-ab7f-b85df0317e3e","libraryName":"zod","version":"4.4.3","snippet":"z.iso.date()","mean":0.015697044987197397,"optimizeType":"jit","type":"string"}]},"time":{"valid":[{"id":"1d0e58f7-f984-4aad-b540-27c19c212073","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"time\">","mean":0.00008398397291969748,"optimizeType":"precompiled","type":"string"},{"id":"65eda2d0-9699-466f-8583-59bb1989b363","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().time()","mean":0.00009232748567962191,"optimizeType":"none","type":"string"},{"id":"35b60b39-6823-4f42-890f-bb94f0671997","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"time\" }","mean":0.00010759662876081154,"optimizeType":"jit","type":"string"},{"id":"3befba34-a465-49aa-8e4e-f4da3a1f5361","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"chain(string(), isoTime())","mean":0.00035430265167147847,"optimizeType":"none","type":"string"},{"id":"931c7c84-7911-4f21-b85b-d1e6cb4d7c0b","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"time\" })","mean":0.0017106171129946703,"optimizeType":"jit","type":"string"}],"invalid":[{"id":"82565ccc-5888-43eb-b40d-feb8c9510846","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"time\">","mean":0.00007225786526783393,"optimizeType":"precompiled","type":"string"},{"id":"9b218ecd-5442-4944-a313-61a3efc236ec","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"time\" }","mean":0.00007947013623794921,"optimizeType":"jit","type":"string"},{"id":"023d19a8-0057-4a0d-abcb-b544356d6aeb","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().time()","mean":0.00010146950983359553,"optimizeType":"none","type":"string"},{"id":"739ac3f5-1a03-484b-a992-b09f343fcf86","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"chain(string(), isoTime())","mean":0.00016167294922359225,"optimizeType":"none","type":"string"},{"id":"4a6269f5-3ac0-45f6-82fb-d19626fea16c","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"time\" })","mean":0.0009017123305381774,"optimizeType":"jit","type":"string"}]},"duration":{"valid":[{"id":"e039386b-4ba9-48ec-9db1-76db317689a4","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"duration\" }","mean":0.00011806864840145322,"optimizeType":"jit","type":"string"},{"id":"c31d4dd1-1f86-46c8-bbf3-f068af56f936","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"duration\">","mean":0.00015246485540344265,"optimizeType":"precompiled","type":"string"},{"id":"601e6301-d963-42c0-8544-01a9084c243d","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"chain(string(), duration())","mean":0.00019924423775727823,"optimizeType":"none","type":"string"},{"id":"036bedd6-4977-4eee-9a36-7a10e87e665d","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().duration()","mean":0.00034085388176234116,"optimizeType":"none","type":"string"},{"id":"978309f9-3df8-4a85-9bc2-69e3abde3f2b","libraryName":"zod","version":"4.4.3","snippet":"z.iso.duration()","mean":0.0003415608880034232,"optimizeType":"jit","type":"string"},{"id":"5a6fd032-a8fc-4e3d-903d-26ab7750fd3a","libraryName":"zod/mini","version":"4.4.3","snippet":"z.iso.duration()","mean":0.0003586925434632812,"optimizeType":"jit","type":"string"},{"id":"01523a91-8df9-4c16-a58f-b73d13d5869f","libraryName":"joi","version":"18.2.3","snippet":"Joi.string().isoDuration()","mean":0.0006120968477632861,"optimizeType":"none","type":"string"},{"id":"3edeea0e-9664-444b-817b-dfaea33decce","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"duration\" })","mean":0.0013812102670781945,"optimizeType":"jit","type":"string"}],"invalid":[{"id":"24f8a90f-ac1c-4dab-8053-d6b5af522178","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"duration\">","mean":0.00007617635411355717,"optimizeType":"precompiled","type":"string"},{"id":"ec7d2301-01df-425c-8e5b-3bf7d33fab6b","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"duration\" }","mean":0.00007895571397686677,"optimizeType":"jit","type":"string"},{"id":"edfde5f0-1afc-4671-a8b1-4d6468794f89","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"chain(string(), duration())","mean":0.00015727432699380077,"optimizeType":"none","type":"string"},{"id":"f678d160-e608-4d3f-9c7a-2a1bdf75624d","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"duration\" })","mean":0.0009124634107018433,"optimizeType":"jit","type":"string"},{"id":"487c9a34-d8d2-4b33-a2d6-c2f953adeb6f","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().duration()","mean":0.0014848653957178117,"optimizeType":"none","type":"string"},{"id":"eb36d04d-c734-40bd-8ec7-720eb13aad5c","libraryName":"joi","version":"18.2.3","snippet":"Joi.string().isoDuration()","mean":0.0020819078048590384,"optimizeType":"none","type":"string"},{"id":"b3b10188-dd0f-4a15-bc84-679801b1cdc7","libraryName":"zod/mini","version":"4.4.3","snippet":"z.iso.duration()","mean":0.010997577686135402,"optimizeType":"jit","type":"string"},{"id":"d76f463f-61d0-4b5e-81a6-b0e9f906b027","libraryName":"zod","version":"4.4.3","snippet":"z.iso.duration()","mean":0.015757562226213676,"optimizeType":"jit","type":"string"}]},"email":{"valid":[{"id":"7dadd396-368a-4021-bcfc-c156483caca9","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"email\" }","mean":0.00007900270694844366,"optimizeType":"jit","type":"string"},{"id":"c4601253-309b-4bae-8914-d4b79deb973d","libraryName":"arktype","version":"2.2.3","snippet":"type(\"string.email\")","mean":0.00011986111370101023,"optimizeType":"jit","type":"string"},{"id":"f7c55a43-cf6b-4544-a1dc-b4517a28aacc","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"email\">","mean":0.00012131011061729407,"optimizeType":"precompiled","type":"string"},{"id":"e0731a36-151f-44de-983a-5083707f6a40","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().email()","mean":0.0001542023910933343,"optimizeType":"none","type":"string"},{"id":"02535f85-f49d-4dd6-a639-2ce3f263bc73","libraryName":"valibot","version":"1.4.2","snippet":"v.pipe(v.string(), v.email())","mean":0.00019018708797179288,"optimizeType":"none","type":"string"},{"id":"ac75cac2-cd8d-4e95-acb4-ffe69f771f03","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"S.email","mean":0.00019194980282883782,"optimizeType":"jit","type":"string"},{"id":"16c38702-4677-4500-9736-5e5d73938f7e","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"chain(string(), email())","mean":0.00022571790793816173,"optimizeType":"none","type":"string"},{"id":"7d1ab354-cff3-40b5-84b2-7046ce7e57ef","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().email()","mean":0.00029502334312707205,"optimizeType":"none","type":"string"},{"id":"66c6dc93-d098-40ac-ace7-572b8d0690bd","libraryName":"zod/mini","version":"4.4.3","snippet":"z.email()","mean":0.00030002935606468674,"optimizeType":"jit","type":"string"},{"id":"64f60a96-f47c-4c0a-9459-02db135d2858","libraryName":"zod","version":"4.4.3","snippet":"z.email()","mean":0.00030141944281409527,"optimizeType":"jit","type":"string"},{"id":"de38312a-2151-49f8-906f-ae7841047378","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"s.string().email()","mean":0.0008522712223943703,"optimizeType":"none","type":"string"},{"id":"10ff3754-4e19-4857-a148-1c4e0b7aac95","libraryName":"yup","version":"1.7.1","snippet":"yup.string().email()","mean":0.0011628487100521208,"optimizeType":"none","type":"string"},{"id":"7ad735ce-923b-4f73-808d-40b4a3f42039","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"email\" })","mean":0.0014048899030606374,"optimizeType":"jit","type":"string"},{"id":"1e934e0e-47f3-4e91-b2fc-5af6b376442d","libraryName":"joi","version":"18.2.3","snippet":"Joi.string().email()","mean":0.0023249180839032117,"optimizeType":"none","type":"string"}],"invalid":[{"id":"b0ffe1e5-df5a-4a83-b5b6-3e1566cd60df","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"email\" }","mean":0.00007102243392468381,"optimizeType":"jit","type":"string"},{"id":"3ed7efa7-41d0-4dd1-ae36-34bb39238bd2","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"email\">","mean":0.0001005755657914764,"optimizeType":"precompiled","type":"string"},{"id":"a16d2415-60c3-4999-a2c1-db974acfd2b3","libraryName":"arktype","version":"2.2.3","snippet":"type(\"string.email\")","mean":0.0001014370517681707,"optimizeType":"jit","type":"string"},{"id":"2e51a323-3a60-48d4-8231-9e8b3aaf86d0","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().email()","mean":0.00012624148062438147,"optimizeType":"none","type":"string"},{"id":"4134c675-e935-4381-97a8-2701ce49a081","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"chain(string(), email())","mean":0.00019836127972243454,"optimizeType":"none","type":"string"},{"id":"bff2b377-7e0a-46db-ba26-e60f8b3052b7","libraryName":"valibot","version":"1.4.2","snippet":"v.pipe(v.string(), v.email())","mean":0.00029349772099183154,"optimizeType":"none","type":"string"},{"id":"c1ebabfb-1b95-45e8-b09b-c9a8436f040c","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"email\" })","mean":0.0009841973678658394,"optimizeType":"jit","type":"string"},{"id":"ba643a6c-b9d1-455a-8c05-c60b7455ae02","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().email()","mean":0.0014240109708526913,"optimizeType":"none","type":"string"},{"id":"3867c601-a772-4065-b7fa-b0b8a938a660","libraryName":"joi","version":"18.2.3","snippet":"Joi.string().email()","mean":0.002214898739282777,"optimizeType":"none","type":"string"},{"id":"76e66293-ef57-4385-a65f-ab51f99ced30","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"S.email","mean":0.006799918292427439,"optimizeType":"jit","type":"string"},{"id":"fd6650fa-3b54-4c1c-ba17-118bee27216d","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"s.string().email()","mean":0.007153865185829913,"optimizeType":"none","type":"string"},{"id":"e8d0d04e-779d-4675-b992-880a5991c32e","libraryName":"zod/mini","version":"4.4.3","snippet":"z.email()","mean":0.01123089617140693,"optimizeType":"jit","type":"string"},{"id":"e0411459-fd92-4e31-953f-66496df733ee","libraryName":"zod","version":"4.4.3","snippet":"z.email()","mean":0.0155824714296923,"optimizeType":"jit","type":"string"},{"id":"ca1e1009-89ea-4c8d-a3e0-3a5c78bcc0d7","libraryName":"yup","version":"1.7.1","snippet":"yup.string().email()","mean":0.021796690141469826,"optimizeType":"none","type":"string"}]},"url":{"valid":[{"id":"f2686caf-9553-40bb-933a-30d470ed55a7","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().url()","mean":0.00017140302522898084,"optimizeType":"none","type":"string"},{"id":"21cfd191-9df5-4bfa-9533-cde358b528ed","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"url\">","mean":0.00021320591787363447,"optimizeType":"precompiled","type":"string"},{"id":"3bd995fe-de8f-445a-bda2-0925f20b639a","libraryName":"arktype","version":"2.2.3","snippet":"type(\"string.url\")","mean":0.00029725971697236854,"optimizeType":"jit","type":"string"},{"id":"34d7b8b8-fa58-4930-af68-11fc0c34e9d2","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"S.url","mean":0.0005160801539363119,"optimizeType":"jit","type":"string"},{"id":"5c66dfbb-e46d-4262-8c39-f3d965c70b3f","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"s.string().url()","mean":0.0005174061125307938,"optimizeType":"none","type":"string"},{"id":"2852d48e-4004-4cae-876c-db29a42c0370","libraryName":"valibot","version":"1.4.2","snippet":"v.pipe(v.string(), v.url())","mean":0.0006133989226276691,"optimizeType":"none","type":"string"},{"id":"f24cf60e-4a0c-4986-a2b8-be3570385392","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"chain(string(), url())","mean":0.0006226288386610506,"optimizeType":"none","type":"string"},{"id":"ee057b74-66d3-4fc4-b6aa-8c68b907e74c","libraryName":"zod/mini","version":"4.4.3","snippet":"z.url()","mean":0.0006792895205381303,"optimizeType":"jit","type":"string"},{"id":"f9b3e636-5534-40b6-93ef-cec54d274620","libraryName":"joi","version":"18.2.3","snippet":"Joi.string().uri()","mean":0.0006914531920917924,"optimizeType":"none","type":"string"},{"id":"6ecff02a-47a5-4e1f-83e1-dfbfb2ac4774","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().url()","mean":0.0006985090914405854,"optimizeType":"none","type":"string"},{"id":"29f65397-cb79-4895-a397-e20b82c5d5cd","libraryName":"zod","version":"4.4.3","snippet":"z.url()","mean":0.0007022717628633326,"optimizeType":"jit","type":"string"},{"id":"629d83fa-061d-4efb-a006-16c1615b2695","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"url\" })","mean":0.0014723958457870938,"optimizeType":"jit","type":"string"},{"id":"34e7eefa-b617-4656-b370-2b51fc71c995","libraryName":"yup","version":"1.7.1","snippet":"yup.string().url()","mean":0.0014976168155295987,"optimizeType":"none","type":"string"}],"invalid":[{"id":"286cde58-f27e-4f28-a063-b1628ba8c573","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"url\">","mean":0.00007488923867230877,"optimizeType":"precompiled","type":"string"},{"id":"6f179e9f-f7e7-4eea-b04a-3b3aa4cc8f74","libraryName":"arktype","version":"2.2.3","snippet":"type(\"string.url\")","mean":0.0001476828597959706,"optimizeType":"jit","type":"string"},{"id":"f682855e-7d76-4a78-8644-89d016f99d79","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().url()","mean":0.00023917466279708326,"optimizeType":"none","type":"string"},{"id":"d3ca109e-2b15-47a7-a5ec-e9cad7639f11","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"url\" })","mean":0.000870589322402517,"optimizeType":"jit","type":"string"},{"id":"a813fa1d-4f6b-4bf3-a0dc-8c7aed0a02bc","libraryName":"joi","version":"18.2.3","snippet":"Joi.string().uri()","mean":0.0021809649148403507,"optimizeType":"none","type":"string"},{"id":"6fdcc9a3-2769-4705-bc7f-22de6f43714d","libraryName":"valibot","version":"1.4.2","snippet":"v.pipe(v.string(), v.url())","mean":0.008397115233147089,"optimizeType":"none","type":"string"},{"id":"e89ad56f-835a-4e3a-b253-aa58f4df92c7","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"chain(string(), url())","mean":0.008880571106341831,"optimizeType":"none","type":"string"},{"id":"29381474-0293-4b24-955a-2e620c48621c","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().url()","mean":0.010227597504484674,"optimizeType":"none","type":"string"},{"id":"2ad68b61-96eb-4e0d-b452-94c542bd7761","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"S.url","mean":0.0142101484518403,"optimizeType":"jit","type":"string"},{"id":"2568031e-6d50-4b73-979f-f919ab03981d","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"s.string().url()","mean":0.014939618432257799,"optimizeType":"none","type":"string"},{"id":"9280627b-9ef4-4095-8bb0-824599b71816","libraryName":"zod/mini","version":"4.4.3","snippet":"z.url()","mean":0.019214797421422836,"optimizeType":"jit","type":"string"},{"id":"97bb52e9-4b0b-4c8e-906a-78db080674c9","libraryName":"yup","version":"1.7.1","snippet":"yup.string().url()","mean":0.021854962388262053,"optimizeType":"none","type":"string"},{"id":"fc46b4f3-edc8-4ca1-85e2-4baaad017759","libraryName":"zod","version":"4.4.3","snippet":"z.url()","mean":0.02367281270270003,"optimizeType":"jit","type":"string"}]},"uuid":{"valid":[{"id":"27aae527-a206-4047-a1c7-7f363c627ed6","libraryName":"arktype","version":"2.2.3","snippet":"type(\"string.uuid\")","mean":0.00015842633682440444,"optimizeType":"jit","type":"string"},{"id":"e49b99f4-1452-41e4-81bf-2958424a7edd","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().uuid()","mean":0.00016541319166681883,"optimizeType":"none","type":"string"},{"id":"127e58d9-22c3-41f1-b670-ab2f7edd7a83","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"uuid\">","mean":0.000172324477289745,"optimizeType":"precompiled","type":"string"},{"id":"39b7c88d-259e-435e-9ef8-3ca9777d5b22","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"s.string().uuid()","mean":0.00018175323166297092,"optimizeType":"none","type":"string"},{"id":"d97dbfce-a404-446a-9850-96e2443f0123","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"uuid\" }","mean":0.0001877705224714352,"optimizeType":"jit","type":"string"},{"id":"7451f780-cad9-4965-bbf2-063c9d5897f3","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"S.uuid","mean":0.00019257920002233245,"optimizeType":"jit","type":"string"},{"id":"e047ea04-262d-4e59-a10f-2b0d0a757e19","libraryName":"valibot","version":"1.4.2","snippet":"v.pipe(v.string(), v.uuid())","mean":0.0002607111745744797,"optimizeType":"none","type":"string"},{"id":"08f4aad1-6975-4631-b178-3c2a392828f9","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"chain(string(), uuid())","mean":0.00026222758413742335,"optimizeType":"none","type":"string"},{"id":"8284f885-ff17-487b-a938-4f11e4e57535","libraryName":"zod/mini","version":"4.4.3","snippet":"z.uuid()","mean":0.0002897868745100113,"optimizeType":"jit","type":"string"},{"id":"d1f668e7-c7ff-4c0d-92b8-77ed32246983","libraryName":"zod","version":"4.4.3","snippet":"z.uuid()","mean":0.0003010535779016022,"optimizeType":"jit","type":"string"},{"id":"4225eaa2-8b54-4356-abe5-5876c9029c47","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().uuid()","mean":0.00033713726846728307,"optimizeType":"none","type":"string"},{"id":"489b613c-9965-4e12-9aa9-78becf1075a5","libraryName":"joi","version":"18.2.3","snippet":"Joi.string().uuid()","mean":0.00073795484382229,"optimizeType":"none","type":"string"},{"id":"4d8b0e37-aa11-4df0-8b2f-bc019d1fd7e7","libraryName":"yup","version":"1.7.1","snippet":"yup.string().uuid()","mean":0.0011849357575531994,"optimizeType":"none","type":"string"},{"id":"71a7c35f-1bc6-4584-aff6-524034b1ba02","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"uuid\" })","mean":0.0014186055541176874,"optimizeType":"jit","type":"string"}],"invalid":[{"id":"03d5eb5a-e1bd-4a4a-bce0-0e02159edae8","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"uuid\" }","mean":0.00006335084870217509,"optimizeType":"jit","type":"string"},{"id":"404610b0-c4c1-4faf-af7c-345a3f9c51aa","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"uuid\">","mean":0.00007350114459934193,"optimizeType":"precompiled","type":"string"},{"id":"19b719b7-dd36-4dba-b860-1f8cc6648899","libraryName":"arktype","version":"2.2.3","snippet":"type(\"string.uuid\")","mean":0.00009442211214771089,"optimizeType":"jit","type":"string"},{"id":"bfc89815-2679-4cfb-bc56-e6b9e5f12aba","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().uuid()","mean":0.00010280582489253627,"optimizeType":"none","type":"string"},{"id":"6216a857-e078-4fc7-99c6-d87e5bdffd06","libraryName":"@railway-ts/pipelines","version":"0.1.29","snippet":"chain(string(), uuid())","mean":0.00015310908930518726,"optimizeType":"none","type":"string"},{"id":"b1561f2d-841f-42c0-84d2-1fb76afead66","libraryName":"valibot","version":"1.4.2","snippet":"v.pipe(v.string(), v.uuid())","mean":0.00027295315150654303,"optimizeType":"none","type":"string"},{"id":"8a47b0ca-6100-48c1-a789-08c391247aef","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"uuid\" })","mean":0.0009443506240722131,"optimizeType":"jit","type":"string"},{"id":"cd32987b-ed55-44c7-a789-29fcdedc5340","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().uuid()","mean":0.0013531225995620565,"optimizeType":"none","type":"string"},{"id":"91e1f76e-0dc1-470e-9252-817b9afc1525","libraryName":"joi","version":"18.2.3","snippet":"Joi.string().uuid()","mean":0.0020796902593579933,"optimizeType":"none","type":"string"},{"id":"03fcc315-e77a-4b8e-baf2-6460315a7a03","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"s.string().uuid()","mean":0.007121349401461665,"optimizeType":"none","type":"string"},{"id":"4c3baa49-0695-4520-9f65-aa408984c609","libraryName":"sury","version":"11.0.0-alpha.11","snippet":"S.uuid","mean":0.007142875135706102,"optimizeType":"jit","type":"string"},{"id":"14deda5a-ec07-4188-bdc1-fbefa53c0fc0","libraryName":"zod/mini","version":"4.4.3","snippet":"z.uuid()","mean":0.011073692132216942,"optimizeType":"jit","type":"string"},{"id":"0dd2bcdd-1b09-483f-adf0-5e2c102f36ab","libraryName":"zod","version":"4.4.3","snippet":"z.uuid()","mean":0.015446923692434307,"optimizeType":"jit","type":"string"},{"id":"78980dd4-98b1-4989-b4e9-241f9c59517a","libraryName":"yup","version":"1.7.1","snippet":"yup.string().uuid()","mean":0.021729186845425817,"optimizeType":"none","type":"string"}]},"ipv4":{"valid":[{"id":"b701a708-ae09-4ef6-a721-7f0a1d81219d","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"ipv4\">","mean":0.00008871766092727771,"optimizeType":"precompiled","type":"string"},{"id":"d2271c47-f018-4440-a72d-a09b789a4511","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().ip({ version: 4 })","mean":0.00011151460283605385,"optimizeType":"none","type":"string"},{"id":"064241e9-1e49-4743-8aa7-75c8715efd1a","libraryName":"arktype","version":"2.2.3","snippet":"type(\"string.ip.v4\")","mean":0.00011731287823070229,"optimizeType":"jit","type":"string"},{"id":"7efdcfed-7310-43ee-bd9e-c04dffc18185","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"s.string().ipv4()","mean":0.00013964896444042938,"optimizeType":"none","type":"string"},{"id":"74852a28-ccc9-4fd2-bb7f-887234f534c2","libraryName":"valibot","version":"1.4.2","snippet":"v.pipe(v.string(), v.ipv4())","mean":0.00017021995120323932,"optimizeType":"none","type":"string"},{"id":"27c37ab7-bf88-4f73-aac7-e2b6337929af","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"ipv4\" }","mean":0.00020998779992636126,"optimizeType":"jit","type":"string"},{"id":"5137bb0b-aa70-4402-b985-797c39723d24","libraryName":"zod","version":"4.4.3","snippet":"z.ipv4()","mean":0.0002256161083577187,"optimizeType":"jit","type":"string"},{"id":"023db652-eaa5-476c-9d20-edeedb20d00e","libraryName":"zod/mini","version":"4.4.3","snippet":"z.ipv4()","mean":0.00023117095762435842,"optimizeType":"jit","type":"string"},{"id":"e6d4f360-b296-4cd3-9497-d38b1eaa9ec9","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().ip({ version: \"v4\" })","mean":0.00031196432282779425,"optimizeType":"none","type":"string"},{"id":"e3f72f36-b8aa-4094-912c-e35f7ad9d5c2","libraryName":"joi","version":"18.2.3","snippet":"Joi.string().ip({ version: \"ipv4\" })","mean":0.0005274502667313642,"optimizeType":"none","type":"string"},{"id":"921cd330-04b4-4465-9dfd-3a76be756049","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"ipv4\" })","mean":0.0012944516664823748,"optimizeType":"jit","type":"string"}],"invalid":[{"id":"3c4c8fb1-5674-44ac-ad5d-2871f903f631","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"ipv4\">","mean":0.00007345244450099152,"optimizeType":"precompiled","type":"string"},{"id":"3dd9dfc3-2e68-480d-b36f-ace90f5347db","libraryName":"arktype","version":"2.2.3","snippet":"type(\"string.ip.v4\")","mean":0.0000826853921787239,"optimizeType":"jit","type":"string"},{"id":"10734ae6-331e-4510-8892-65434a340e40","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().ip({ version: 4 })","mean":0.00010116405653313964,"optimizeType":"none","type":"string"},{"id":"b7e1b753-95a6-4bd0-8272-865806d4a522","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"ipv4\" }","mean":0.00011669795688770624,"optimizeType":"jit","type":"string"},{"id":"3340189e-2976-443b-99e8-8e1c6de1c839","libraryName":"valibot","version":"1.4.2","snippet":"v.pipe(v.string(), v.ipv4())","mean":0.0002720019850690222,"optimizeType":"none","type":"string"},{"id":"6cdbf886-db36-4db5-b9bf-49dae2b7adfd","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"ipv4\" })","mean":0.0008551178035419483,"optimizeType":"jit","type":"string"},{"id":"21834457-42d8-4f4a-b0d6-859f6ef553c5","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().ip({ version: \"v4\" })","mean":0.0014228853767392132,"optimizeType":"none","type":"string"},{"id":"3c02da8d-d4dc-4dbb-aed0-d36be56adf41","libraryName":"joi","version":"18.2.3","snippet":"Joi.string().ip({ version: \"ipv4\" })","mean":0.002737194948239327,"optimizeType":"none","type":"string"},{"id":"f4d26d91-5693-43cb-8275-a4be96f36509","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"s.string().ipv4()","mean":0.007168435867847069,"optimizeType":"none","type":"string"},{"id":"57d65a37-378d-4135-8973-9ed4c5fa7e72","libraryName":"zod/mini","version":"4.4.3","snippet":"z.ipv4()","mean":0.011102751587681849,"optimizeType":"jit","type":"string"},{"id":"9028887d-f6ba-4b4f-8c7b-af949e556b2a","libraryName":"zod","version":"4.4.3","snippet":"z.ipv4()","mean":0.01507912198981407,"optimizeType":"jit","type":"string"}]},"ipv6":{"valid":[{"id":"f850d291-eb6b-4148-a4c0-e1512aaf4b52","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().ip({ version: 6 })","mean":0.00014933093238787414,"optimizeType":"none","type":"string"},{"id":"7b812967-799b-4512-9e9e-3a91a33ffedb","libraryName":"arktype","version":"2.2.3","snippet":"type(\"string.ip.v6\")","mean":0.00018131696252840612,"optimizeType":"jit","type":"string"},{"id":"78dfb106-2429-4f01-8134-ff14cffc4a9b","libraryName":"valibot","version":"1.4.2","snippet":"v.pipe(v.string(), v.ipv6())","mean":0.00019701571928973269,"optimizeType":"none","type":"string"},{"id":"0935fe0a-eecc-45fd-8007-99bfd5d26758","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"s.string().ipv6()","mean":0.00023405321222818635,"optimizeType":"none","type":"string"},{"id":"dc177688-bbb5-44c8-abf4-7640249afca7","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"ipv6\" }","mean":0.00024458741162353685,"optimizeType":"jit","type":"string"},{"id":"64411837-a8d1-41c0-a721-41794f4edf90","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"ipv6\">","mean":0.00033905288817242125,"optimizeType":"precompiled","type":"string"},{"id":"946f4b31-c5f2-413d-81db-8cc12a031ef6","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().ip({ version: \"v6\" })","mean":0.0004532060859218014,"optimizeType":"none","type":"string"},{"id":"96312513-5561-4066-9a1f-1ddbc8aa121f","libraryName":"joi","version":"18.2.3","snippet":"Joi.string().ip({ version: \"ipv6\" })","mean":0.0005697879215204013,"optimizeType":"none","type":"string"},{"id":"ea4cbe59-f2d7-4d68-8822-e6be74cecfb1","libraryName":"zod","version":"4.4.3","snippet":"z.ipv6()","mean":0.0008229029592372641,"optimizeType":"jit","type":"string"},{"id":"c75c3150-1cea-4426-95b4-068fa7bafbd2","libraryName":"zod/mini","version":"4.4.3","snippet":"z.ipv6()","mean":0.0008264520649155367,"optimizeType":"jit","type":"string"},{"id":"90a41a7f-24cf-488c-9c38-64e64b496944","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"ipv6\" })","mean":0.0014673573495410954,"optimizeType":"jit","type":"string"}],"invalid":[{"id":"ead99698-e511-4d49-b75d-bb6062bb75ae","libraryName":"ata-validator","version":"1.2.1","snippet":"{ type: \"string\", format: \"ipv6\" }","mean":0.0000817087970556627,"optimizeType":"jit","type":"string"},{"id":"65d99b6f-cbb5-49a8-aa0c-398eb400e118","libraryName":"arktype","version":"2.2.3","snippet":"type(\"string.ip.v6\")","mean":0.00013095156991981598,"optimizeType":"jit","type":"string"},{"id":"47748580-1c86-4db4-b5c3-6f05ca46ef3e","libraryName":"@paseri/paseri","version":"1.9.7","snippet":"p.string().ip({ version: 6 })","mean":0.00014505806020373218,"optimizeType":"none","type":"string"},{"id":"d1a3641a-b3e7-46e7-80bf-be494cd68c28","libraryName":"typia","version":"13.2.0","snippet":"string & tags.Format<\"ipv6\">","mean":0.0002374908403374243,"optimizeType":"precompiled","type":"string"},{"id":"726dc4db-04cf-43d1-868b-4a1598c5458e","libraryName":"valibot","version":"1.4.2","snippet":"v.pipe(v.string(), v.ipv6())","mean":0.0003207068925054102,"optimizeType":"none","type":"string"},{"id":"3ac5212d-4d6f-43d8-b761-b7fe69476de0","libraryName":"typebox","version":"1.3.8","snippet":"Type.String({ format: \"ipv6\" })","mean":0.0008584421792147015,"optimizeType":"jit","type":"string"},{"id":"aec2f8d1-20d8-4fb0-b775-61b33a9fb2ca","libraryName":"zod/v3","version":"4.4.3","snippet":"z.string().ip({ version: \"v6\" })","mean":0.0015667201673927808,"optimizeType":"none","type":"string"},{"id":"cc3db812-e288-4afd-a0c5-cc7102af2afc","libraryName":"joi","version":"18.2.3","snippet":"Joi.string().ip({ version: \"ipv6\" })","mean":0.002862659228587426,"optimizeType":"none","type":"string"},{"id":"94a8e05d-87cb-4650-9fe6-814ec8ce43e7","libraryName":"@sapphire/shapeshift","version":"4.0.0","snippet":"s.string().ipv6()","mean":0.007236768967460905,"optimizeType":"none","type":"string"},{"id":"0cd3ac5e-f575-4a4e-88ea-ff1dcb6f0ea7","libraryName":"zod/mini","version":"4.4.3","snippet":"z.ipv6()","mean":0.01920545802685733,"optimizeType":"jit","type":"string"},{"id":"d26f0f95-0b43-474b-93d4-df2f05ef0b35","libraryName":"zod","version":"4.4.3","snippet":"z.ipv6()","mean":0.024074857431750935,"optimizeType":"jit","type":"string"}]}},"codec":[{"id":"d5634c5f-ad1f-42e8-a584-612d47d9e190","libraryName":"io-ts","version":"2.2.22","optimizeType":"none","encode":{"snippet":"// const BigIntFromString = new t.Type<bigint, string, string>(...)\nBigIntFromString.encode(data)","mean":0.0000820513748240698},"decode":{"snippet":"// const BigIntFromString = new t.Type<bigint, string, string>(...)\nBigIntFromString.decode(data)","mean":0.00011425643872133076},"type":"codec"},{"id":"299d3e89-9bba-4e86-97e9-449c6bf6397b","libraryName":"sury","version":"11.0.0-alpha.11","optimizeType":"jit","encode":{"snippet":"// const encoder = S.encoder(S.bigint, S.string);\nencoder(data)","mean":0.00008268171098940787},"decode":{"snippet":"// const decoder = S.decoder(S.string, S.bigint);\ndecoder(data)","mean":0.00011709394904256395},"type":"codec"},{"id":"57d3963f-b9cc-47af-8825-aef54be61fc9","libraryName":"zod/mini","version":"4.4.3","optimizeType":"jit","encode":{"snippet":"z.encode(codec, data)","mean":0.00017778777510012956},"decode":{"snippet":"z.decode(codec, data)","mean":0.00021414567771589328},"type":"codec"},{"id":"b9c62415-c50e-4c21-92e7-17b3e79b1516","libraryName":"zod","version":"4.4.3","optimizeType":"jit","encode":{"snippet":"z.codec(...).encode(data)","mean":0.0001873797281759839},"decode":{"snippet":"z.codec(...).decode(data)","mean":0.000221199156433314},"type":"codec"},{"id":"af9e02fc-a983-4138-85c7-4e6d0bb842ca","libraryName":"effect","version":"3.22.0","note":"unknown","optimizeType":"none","encode":{"snippet":"Schema.encodeUnknownSync(Schema.BigInt)(data)","mean":0.00037625536370565054},"decode":{"snippet":"Schema.decodeUnknownSync(Schema.BigInt)(data)","mean":0.0004483682958868668},"type":"codec","acceptsUnknown":true},{"id":"19c26cd3-6b83-45bd-9d9e-8fb66a67ae19","libraryName":"effect","version":"3.22.0","optimizeType":"none","encode":{"snippet":"Schema.encodeSync(Schema.BigInt)(data)","mean":0.00038920017264964656},"decode":{"snippet":"Schema.decodeSync(Schema.BigInt)(data)","mean":0.00044742117268256826},"type":"codec"},{"id":"202c165b-31c7-460c-bbfd-223a0db6caf6","libraryName":"effect@beta","version":"4.0.0-beta.101","optimizeType":"none","encode":{"snippet":"Schema.encodeSync(Schema.BigIntFromString)(data)","mean":0.0017815798378766623},"decode":{"snippet":"Schema.decodeSync(Schema.BigIntFromString)(data)","mean":0.0017798465329516026},"type":"codec"},{"id":"eac71f8a-55eb-4a63-9437-323d69b305c8","libraryName":"effect@beta","version":"4.0.0-beta.101","note":"unknown","optimizeType":"none","encode":{"snippet":"Schema.encodeUnknownSync(Schema.BigIntFromString)(data)","mean":0.0017844539272215776},"decode":{"snippet":"Schema.decodeUnknownSync(Schema.BigIntFromString)(data)","mean":0.0018030200946557065},"type":"codec","acceptsUnknown":true},{"id":"8abacce0-8814-481f-a1f1-5421c146c41e","libraryName":"typebox","version":"1.3.8","optimizeType":"jit","encode":{"snippet":"// const BigIntFromString = Type.Codec(...).Decode(...).Encode(...);\nValue.Encode(BigIntFromString, data)","mean":0.004550994083715057},"decode":{"snippet":"// const BigIntFromString = Type.Codec(...).Decode(...).Encode(...);\nValue.Decode(BigIntFromString, data)","mean":0.00459587004737218},"type":"codec","acceptsUnknown":true}]}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Regenerate results for the corrected benchmark configurations

The committed runtime data no longer matches the benchmark definitions consumed by the website: both ata-validator validation rows are deleted even though schemas/libraries/ata-validator/benchmarks.ts still defines validation using the new schema.validate(data).valid implementation, while retained ata-validator standard and typia/typebox rows still contain timings measured before their schemas gained additional checks. Publishing this file therefore omits an active validator and compares stale measurements from weaker schemas; rerun the runtime benchmarks after these changes rather than only removing the former parsing rows.

Useful? React with 👍 / 👎.

Comment thread schemas/src/data.ts
Comment on lines +238 to +242
"ratings: text too long": variant((data) => (data.ratings[0]!.text = "a".repeat(1001))),
"ratings: nested image malformed url": variant(
(data) => (data.ratings[0]!.images[0]!.url = "nope"),
),
};

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add cases for every constraint the suite claims to cover

The new exhaustive check omits many independently implemented constraints, including brand/description minimum lengths, image id/title/size, the ratings array type, rating id/title/minimum text length, and several nested-image fields. If any library drops one of those checks, every case here still passes even though that library benchmarks less work—the exact regression this matrix is intended to prevent—so each omitted field and bound needs its own single-violation or boundary variant.

Useful? React with 👍 / 👎.

Comment on lines +16 to +18
// ata-validator has no "url" format - an unknown format is silently ignored,
// so use "uri" to keep the check equivalent to the other libraries
url: t.string({ format: "uri" }),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Reject malformed URLs with a real URL check

When an image URL has a scheme prefix but is otherwise malformed, such as https: not a url, this schema still accepts it: ata-validator 1.2.1 implements its built-in uri format as only ^[a-zA-Z][a-zA-Z0-9+.-]*:. The new "nope" fixture does not expose this because it lacks a scheme, while the other URL implementations reject the malformed value, so ata-validator remains benchmarked against a weaker constraint; use a custom format/pattern with the intended URL semantics or record this as a genuine gap.

Useful? React with 👍 / 👎.

@EskiMojo14

Copy link
Copy Markdown
Member

this has some good catches, thank you! please make sure to follow the contributing guide wrt git etiquette going forward - i'll rebase it this time, as i have a few tweaks i want to add

@EskiMojo14 EskiMojo14 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it looks like i don't have permission to push to the branch, so these are my initial review thoughts - please also make sure to rebase and get rid of the merge commit :)

Comment thread schemas/src/data.ts
Comment on lines +195 to +199
function variant(mutate: (data: ProductData) => void): unknown {
const data = structuredClone(successData);
mutate(data);
return data;
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instead of a full structuredClone, use mutative - we already have it as a dependency for website, just move it to the catalog and add it to schemas

Suggested change
function variant(mutate: (data: ProductData) => void): unknown {
const data = structuredClone(successData);
mutate(data);
return data;
}
function variant(mutate: (data: Draft<ProductData>) => void): unknown {
return create(successData, mutate)
}

Comment thread schemas/src/data.ts
* which cast it to `"1"` by design.
*/
export const constraintViolations: Record<string, unknown> = {
"id: not a number": variant((data) => ((data as { id: unknown }).id = "abc")),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

switch each of these so they don't implicitly return

Suggested change
"id: not a number": variant((data) => ((data as { id: unknown }).id = "abc")),
"id: not a number": variant((data) => {
(data as { id: unknown }).id = "abc"
})

* constraint, its test fails and the entry (plus the workaround in its schema) should be removed.
*/
const constraintGaps: Record<string, Record<string, string>> = {
"ata-validator": {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if ata can't check Date and url properly, we may have to exclude it from benchmarking until it does - have you opened issues with them?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mertcanaltin what do you think?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for catches, this is right, I will solve this week

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

at once, I will publish 1.2.2 version for this bug, can you use this version?

nowly continue test, at once publish https://github.com/ata-core/ata-validator/actions/runs/30214793286/job/89826964330

@mertcanaltin mertcanaltin Jul 26, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I said this week, but it got resolved early sorry

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

main branch's ata-validator version has been updated (#189), so this PR should get it once rebased

@DZakh

DZakh commented Jul 26, 2026

Copy link
Copy Markdown
Author

I'll think about what to do with ata and fix it during the week 🙏

I usually squash commits and don't really care about commit hygiene.

@DZakh
DZakh marked this pull request as draft July 26, 2026 17:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants