typyn
v1.1.1
Published
A lightweight, chainable TypeScript validation library for safe data parsing and schema enforcement.
Maintainers
Readme
🧩 Overview
Typyn is a high-performance, type-safe validation library for TypeScript.
Inspired by tools like Zod and Yup, Typyn is designed for developers who value speed, safety, and clarity.
Built from scratch for modern runtimes — Node, Deno, Bun, and edge platforms.
✨ Key Features
- ⚡ Ultra-fast — up to 100× faster than Zod on primitives
- 🧠 Type-safe — automatic TypeScript inference
- 🔗 Chainable — expressive syntax for all schema types
- 🧱 Composable — build complex object schemas with ease
- 🪶 Lightweight — ~5KB gzipped, zero dependencies
- 🧩 Extensible — supports refinements, transforms, and custom errors
🚀 Installation
Choose your package manager:
# Using pnpm (recommended)
pnpm add typyn
# or npm
npm install typyn
# or yarn
yarn add typyn
# or bun
bun add typyn🧠 Basic Usage
import { v } from "typyn";
// Create a schema
const userSchema = v.object({
name: v.string().min(2).max(50),
age: v.number().min(18),
email: v.string().email().optional(),
});
// Parse input (throws on error)
const user = userSchema.parse({ name: "Alice", age: 22 });
console.log(user); // ✅ { name: "Alice", age: 22 }
// Safe validation (non-throwing)
const result = userSchema.safe({ name: "A", age: 10 });
if (!result.success) console.error(result.error.message);
// → "name → Must be at least 2 characters"🧰 Core Concepts
| Method | Description |
| -------------- | -------------------------------------------------------- |
| .parse() | Validates and returns typed data (throws on error) |
| .safe() | Returns { success, data?, error? } instead of throwing |
| .refine() | Adds a custom validation rule |
| .transform() | Transforms data after validation |
| .default() | Adds fallback values for missing inputs |
🧮 Benchmarks
🧾 Node 22.14.0 • Intel i5-8365U • 10k iterations
| Validation | Typyn | Zod | Yup | | ------------ | ---------------- | --- | --- | | String (min) | 1.1M ops/sec | 50k | 32k | | Number (int) | 980k ops/sec | 60k | 28k | | Enum parse | 820k ops/sec | 30k | 19k |
🔬 See full details at Benchmarks →
🧩 Development
# Install all deps
pnpm install
# Run tests in lib
pnpm test:watch
# Bechmark tests in lib
pnpm bench
💬 Community & Contributing
Contributions welcome 💚 Whether it’s bug fixes, performance tweaks, or schema ideas — open a PR or issue!
To get started:
pnpm install
cd lib
pnpm dev⚖️ License
Licensed under the MIT License Copyright © 2025 Mano Kumar
