OSS探訪GitHubでログイン

小さな関数を組み合わせ、TypeScript型推論と実行時のスキーマ検証を両立する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
9,027
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/10/03
ページ内ナビ

概要

Valibotは、schema・validation・transformationを小さな関数として組み合わせる実行時検証libraryです。objectやpipeでschemaを構成し、parseやsafeParseで未知の入力を検証しながら、同じschemaからTypeScriptのinput/output型を推論できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

objectとpipeで検証条件を小さな関数から組み立てる

object、string、email、minLengthなどの独立した関数を組み合わせてschemaを作ります。一つの大きなAPIへ多数のmethodを持たせず、必要な機能をimportして構成する設計です。

出典:[1]

parse・safeParse・isを用途に応じて使い分ける

parseは不正な入力でerrorを投げ、safeParseは例外を使わず結果を返し、isはtype guardとして利用できます。formやAPI境界でerror処理方針に合わせて入口を選べます。

出典:[1]

schemaからTypeScriptのinput/output型を推論する

schemaは実行時に入力を検証するだけでなく、InferOutputなどからTypeScript型を取得できます。runtime validationと静的型を一つのschemaへ寄せられます。

出典:[1]

向いている用途

bundle sizeを抑えながらformやAPI入力を検証したいfrontendに向く

小さな独立関数とtree shakingを前提にした構成のため、browser bundleへ必要なvalidationだけを含めたいfrontendや、form・API response・設定値を実行時に検証したい用途に適します。

出典:[1][2]

導入前の確認

v1.5.0はTypeScript 5以上とES2020対応環境を前提にする

package metadataはTypeScript >=5をoptional peerとして宣言し、公式installation guideは最小TypeScript 5.0.2、strict modeの推奨、配布fileのtargetがES2020であることを示しています。bundlerやtranspilerの対応状況を確認してください。

出典:[3][2]

v1.5.0ではschemaの安全性と文字列validationにも修正が入っている

v1.5.0のCHANGELOGには、Object.prototypeと衝突するunknown keyの扱い、intersect時のinherited property処理、emailやULID validationの修正などが含まれます。validation libraryとしてversion固定と回帰testを行うのが安全です。

出典:[4]

参考にした公式資料

  1. [1]Valibot v1.5.0 README(2026-10-05)
  2. [2]Valibot v1.5.0 installation guide(2026-10-05)
  3. [3]Valibot v1.5.0 package metadata(2026-10-05)
  4. [4]Valibot v1.5.0 changelog(2026-10-05)
  5. [5]Valibot MIT license(2026-10-05)
編集部からの補足

GitHub repositoryはfabian-hiller/valibotからopen-circle/valibotへ移管済みです。numeric repository IDは同じため同一projectとして扱っています。導入時は古いowner名ではなく現在の公式repositoryとvalibot packageを参照してください。

3ステップで試す

  1. 1

    Valibot 1.5.0を一時projectへ導入する

    公式installation guideのnpm手順に従い、review対象versionを固定して導入します。

    demo=$(mktemp -d "${TMPDIR:-/tmp}/valibot.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact valibot@1.5.0
  2. 2

    objectとpipeでlogin schemaを作る

    READMEの例と同じobject・pipe構成でschemaを作り、例外を投げないsafeParseで入力を検証します。

    printf "%s\n" "import * as v from 'valibot';" "const LoginSchema = v.object({email: v.pipe(v.string(), v.email()), password: v.pipe(v.string(), v.minLength(8))});" "const result = v.safeParse(LoginSchema, {email: 'ada@example.com', password: '12345678'});" "if (!result.success) { console.error(result.issues); process.exit(1); }" "console.log(result.output);" > demo.mjs
  3. 3

    Node.jsでvalidationを実行する

    schemaが有効な入力を受け取り、safeParseのoutputを返すことを確認します。

    node demo.mjs
公式READMEで確認

成長

成長の推移 · 直近30日

9,027 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
28
Open PR
118

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

カテゴリ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • bundle-size
  • modular
  • parsing
  • schema
  • type-safe
  • typescript
  • validation
  • runtime
  • form-validation
  • runtime-validation
  • schema-validation
  • standard-schema
Stars
9,027
Forks
391
Watchers
24
Open Issues
94
Contributors
206
所有者種別
Organization
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/10/03

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?