Fix schemas that check less than specified, and test that they don't - #185
Fix schemas that check less than specified, and test that they don't#185DZakh wants to merge 4 commits into
Conversation
`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).
✅ Deploy Preview for schemabenchmarks ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
💡 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".
| {"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}]} |
There was a problem hiding this comment.
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 👍 / 👎.
| "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"), | ||
| ), | ||
| }; |
There was a problem hiding this comment.
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 👍 / 👎.
| // 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" }), |
There was a problem hiding this comment.
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 👍 / 👎.
|
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
left a comment
There was a problem hiding this comment.
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 :)
| function variant(mutate: (data: ProductData) => void): unknown { | ||
| const data = structuredClone(successData); | ||
| mutate(data); | ||
| return data; | ||
| } |
There was a problem hiding this comment.
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
| 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) | |
| } |
| * 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")), |
There was a problem hiding this comment.
switch each of these so they don't implicitly return
| "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": { |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
thanks for catches, this is right, I will solve this week
There was a problem hiding this comment.
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
There was a problem hiding this comment.
There was a problem hiding this comment.
I said this week, but it got resolved early sorry
There was a problem hiding this comment.
main branch's ata-validator version has been updated (#189), so this PR should get it once rebased
|
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. |
Three libraries were benchmarked against schemas that checked less than specified, and nothing caught it:
errorDatabreaks many constraints at once, so a library that misses one is still reported as invalid.Benchmark corrections
validate(data)returns{ valid, data, errors }wheredatais the input by reference, typedunknown, so it validates without producing a value — the same reasonajvhas 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.format: "url"never ran (no such format in the library, and unknown formats are silently ignored); now"uri". Validation moved fromisValidObjecttovalidate(...).valid, becauseinstanceofcomes from@ata-project/keywords, which only patchesvalidate— the boolean API never checkedcreatedwas aDate.tagsconstrained the array to 1–30 items instead of each tag to 1–30 characters, so no per-tag length was checked.Type.Script,with { minimum: 1, maximum: 100 }onnumber | nullapplied to neither member, sodiscount: 0passed. Now parenthesised aroundnumber.Consistency
starsandquantityhad 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 ofsuccessDataeach breaking exactly one constraint, all of which must be rejectedconstraintBoundaries— 17 copies sitting exactly on a bound, all of which must be accepted, so a schema stricter than specified fails tooValues are chosen so coercion can't rescue them (
"abc", not"252"), which keepsjoiandyuphonest 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/keywordsdoesn't recurse into arrays, so ata-validator can't checkcreatedis aDateinsideimages/ratingsin 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 inbench/bench.jsonneed 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.