Typia

Super-fast/easy runtime validators and serializers via transformation
GitHub
4.65k
Created 3 years ago, last commit a day ago
81 contributors
2.08k commits
Stars added on GitHub, month by month
12
1
2
3
4
5
6
7
8
9
10
11
2023
2024
Stars added on GitHub, per day, on average
Yesterday
=
Last week
+1.7
/day
Last month
+2.0
/day
Last 12 months
+2.8
/day
npmPackage on NPM
typia
7.0.0
Monthly downloads on NPM
12
1
2
3
4
5
6
7
8
9
10
11
2023
2024
README

Typia

Typia Logo

GitHub license NPM Version NPM Downloads Build Status Guide Documents Gurubase Discord Badge

// RUNTIME VALIDATORS
export function is<T>(input: unknown): input is T; // returns boolean
export function assert<T>(input: unknown): T; // throws TypeGuardError
export function assertGuard<T>(input: unknown): asserts input is T;
export function validate<T>(input: unknown): IValidation<T>; // detailed

// JSON FUNCTIONS
export namespace json {
  export function application<T>(): IJsonApplication; // JSON schema
  export function assertParse<T>(input: string): T; // type safe parser
  export function assertStringify<T>(input: T): string; // safe and faster
}

// LLM FUNCTION CALLING SCHEMA
export namespace llm {
  // application schema from a class or interface type
  export function application<App, Model>(): ILlmApplication<Model>;
  // structured output
  export function parameters<P, Moodel>(): ILlmSchema.IParameters<Model>; 
  export function schema<T, Model>(): ILlmSchema<Model>; // type schema
}

// PROTOCOL BUFFER
export namespace protobuf {
  export function message<T>(): string; // Protocol Buffer message
  export function assertDecode<T>(buffer: Uint8Array): T; // safe decoder
  export function assertEncode<T>(input: T): Uint8Array; // safe encoder
}

// RANDOM GENERATOR
export function random<T>(g?: Partial<IRandomGenerator>): T;

Typia is a transformer library supporting below features:

  • Super-fast Runtime Validators
  • Enhanced JSON schema and serde functions
  • LLM function calling schema and structured output
  • Protocol Buffer encoder and decoder
  • Random data generator

Note

  • Only one line required, with pure TypeScript type
  • Runtime validator is 20,000x faster than class-validator
  • JSON serialization is 200x faster than class-transformer

Sponsors

Thanks for your support.

Your donation encourages typia development.

Also, typia is re-distributing half of donations to core contributors of typia.

Sponsers

Playground

You can experience how typia works by playground website:

Guide Documents

Check out the document in the website:

🏠 Home

📖 Features

🔗 Appendix