Valibot

Advanced Ecosystem 🟡 Mid

Définition

Bibliothèque de validation TypeScript modulaire et entièrement « tree-shakable » : chaque validateur est une fonction importée séparément, si bien qu'un schéma simple pèse environ 1 ko dans le bundle. Né en juillet 2023 d'un mémoire de fin d'études visant à réduire la taille des bibliothèques de plus de 90 %, Valibot a atteint la version 1.0 le 19 mars 2025. Alternative à Zod quand le poids côté client compte (edge, mobile, formulaires).

Analogie

Au lieu d'emporter toute la boîte à outils, on ne glisse dans la poche que le tournevis et la clé dont on a besoin.

Exemple de code

import * as v from 'valibot';

// Composition par fonctions : seul ce qui est importé est embarqué
const Login = v.object({
  email: v.pipe(v.string(), v.email(), v.maxLength(120)),
  password: v.pipe(v.string(), v.minLength(12, '12 caractères minimum')),
});
type Login = v.InferOutput<typeof Login>;

const result = v.safeParse(Login, await req.json());
if (!result.success) {
  return res.status(400).json(v.flatten(result.issues));
}
await auth(result.output);

Cas d'usage

Validation côté client ou en edge runtime où chaque kilo-octet compte ; compatible avec la spécification Standard Schema utilisée par tRPC, TanStack et autres.

Anti-pattern

Adopter Valibot pour un backend Node où la taille du bundle est indifférente et où l'équipe connaît Zod : gain nul, courbe d'apprentissage réelle.
#typescript#validation#performance

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre