https://github.com/ealush/vest
Vest ✅ Declarative validations framework
https://github.com/ealush/vest
form form-validation forms hacktoberfest javascript react-validation react-validation-library svelte-validation typescript unit-testing validation validation-library vue-validation
Last synced: about 2 months ago
JSON representation
Vest ✅ Declarative validations framework
- Host: GitHub
- URL: https://github.com/ealush/vest
- Owner: ealush
- License: mit
- Created: 2019-11-26T22:10:41.000Z (over 6 years ago)
- Default Branch: latest
- Last Pushed: 2026-03-31T22:55:43.000Z (about 2 months ago)
- Last Synced: 2026-04-01T01:29:06.837Z (about 2 months ago)
- Topics: form, form-validation, forms, hacktoberfest, javascript, react-validation, react-validation-library, svelte-validation, typescript, unit-testing, validation, validation-library, vue-validation
- Language: TypeScript
- Homepage: https://vestjs.dev/
- Size: 19.7 MB
- Stars: 2,657
- Watchers: 12
- Forks: 89
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- fucking-awesome-javascript - vest - 🦺 Declarative form validation framework inspired by unit testing. (Validation / Runner)
- awesome-opensource-israel - Vest - Declarative validations library inspired by the spirit and style of unit testing.    (Projects by main language / typescript)
- awesome-learning-resources - vest - Declarative form validation framework inspired by unit testing syntax. (Uncategorized / Uncategorized)
- awesome-react - vest - Declarative validations framework (**Awesome React** [](https://github.com/sindresorhus/awesome) / React)
- awesome-vue - vest - 🦺 Declarative form validation framework inspired by unit testing. (Components & Libraries / UI Utilities)
- awesome-svelte - vest - 🦺 Declarative form validation framework inspired by unit testing. (Utilities / Forms)
- awesome-list-for-developers - Vest - first-issue)_ <br> Validations framework inspired by unit testing frameworks. (JavaScript / Misc)
- fucking-awesome-vue - vest - 🦺 Declarative form validation framework inspired by unit testing. (Components & Libraries / UI Utilities)
- awesome-javascript - vest - 🦺 Declarative form validation framework inspired by unit testing. (Validation / Runner)
- awesome-vue - vest - 🦺 Declarative form validation framework inspired by unit testing. (Components & Libraries / UI Utilities)
README
# Vest - Declarative validations framework

[Vest Documentation](https://vestjs.dev)
[](https://discord.gg/WmADZpJnSe) [](https://github.com/ealush/vest) [](https://vestjs.dev/vest-5-is-ready) [](https://www.npmjs.com/package/vest) [](https://www.npmjs.com/package/vest) [](https://bundlephobia.com/package/vest) [](https://github.com/ealush/vest/actions)
---
Vest is a validation framework that looks and feels like a unit testing framework. It is designed to be easy to learn, highly maintainable, and framework-agnostic.
Write your validations as if they were unit tests, and run them in your app.
```js
import { create, test, enforce } from 'vest';
const suite = create(data => {
test('username', 'Username is required', () => {
enforce(data.username).isNotBlank();
});
test('username', 'Username must be at least 3 chars', () => {
enforce(data.username).longerThanOrEquals(3);
});
test('username', 'Username already taken', async () => {
await doesUserExist(data.username);
});
});
const result = await suite.run(formData);
```
## Why Vest?
Writing form validations can be messy. Vest cleans it up by separating validation logic from feature logic and providing a familiar, powerful syntax.
### 💡 Easy to Learn
Vest adopts the syntax and style of unit testing frameworks (Mocha, Jest). If you've written a test, you already know Vest.
### 🎨 Framework Agnostic
React, Vue, Svelte, Angular, or Vanilla JS - Vest works everywhere. It doesn't depend on your UI library.
### 🛡️ Type Safe
Vest is written in TypeScript and provides first-class type support, including typed suites and results.
### 🔌 Standard Schema Support
Vest implements the [Standard Schema](https://github.com/standard-schema/standard-schema) spec, making it a drop-in replacement for Zod or Yup in libraries like React Hook Form.
### ⚡ SSR & Hydration
Built-in support for server-side validation and state hydration (`runStatic`, `SuiteSerializer`), enabling seamless full-stack validation flows.
### 🧩 Extendable & Composable
Create custom rules, compose existing ones, or use the optional schema validation (`n4s`) to enforce data structure.
## Installation
```shell
npm i vest
```
## Getting Started
Check out the [Vest Documentation](https://vestjs.dev) for guides, API references, and examples.
### Playgrounds
- [React](https://codesandbox.io/s/react-vest-5-gdc698?file=/src/suite.js)
- [Vue](https://codesandbox.io/s/vue-vest-5-d1g236?file=/src/suite.js)
- [Svelte](https://codesandbox.io/s/svelte-vest-5-imnq9z?file=/suite.js)
- [Vanilla](https://codesandbox.io/s/vest-vanilla-js-vest-5-3v4pqk?file=/src/suite.js)
## Contribute
We welcome contributions! See [CONTRIBUTING.md](https://github.com/ealush/vest/blob/latest/CONTRIBUTING.md) for details.