Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Zod4.5を10分で

Avatar for 赤神青空 赤神青空
September 02, 2026

 Zod4.5を10分で

Avatar for 赤神青空

赤神青空

September 02, 2026

More Decks by 赤神青空

Other Decks in Programming

Transcript

  1. ▪個別に掛けるか、アプリ全体に掛けるか 入れ方は2通り 全体モードは遅延。実際にパースしたスキーマだけがコンパイルされる。 typescript const Compiled = z.compile(Player); Compiled.parse(input); //

    20キーobjectで7.8倍 typescript import "zod/compile"; // 定義より先に置く import * as z from "zod"; bash node --import zod/compile app.js 今ココ 速くなった 5/11
  2. ▪20キーのobject・1回あたり・中央値 手元で測ってみた 失敗 成功 12,404 → 1,753 ns 696 →

    410 ns 7.1倍。上げるだけで手に入る コンパイルまで掛けると 97 ns 4.4.3 → 4.5.4。失敗パスが素直に効く 今ココ 速くなった 6/11
  3. ▪コンパイラ本体がバンドルに乗る タダではない ✕ 入れると増える gzipで約7KB(minifyで28KB) Zod: 24.1KB → 31.1KB Zod

    Mini: 4.6KB → 13.2KB 失敗の多い入口はむしろ2度手間 ◯ 使わなければゼロ 呼ばなければ完全にtree-shakeされる CSP環境では new Function が不可 非同期や再帰を含むと黙って降りる サーバのホットパスから試すのが素直 ライブラリ側で zod/compile を import しないこと。これはアプリ側の設定。 今ココ 速くなった 7/11
  4. ▪同じ入力を4.4.3と4.5.4に食わせた結果 厳しくなった4つ 日時 文字数 ULID IPv6 秒が無いと弾く 絵文字5個が通る 先頭Zは弾く ::1+改行は弾く

    4.4.3では分精度も通っていた 4.4.3では弾いた/min(5)は逆 0〜7のみ。4.4.3では通っていた 4.4.3では通っていた いずれも健全性の修正。既存の入力を先に洗う 今ココ 変わった 9/11