Skip to content
/ typia Public

Super-fast/easy runtime validators and serializers via transformation

License

Notifications You must be signed in to change notification settings

samchon/typia

Repository files navigation

Typia

Typia Logo

GitHub license npm version Downloads Build Status Guide Documents

// 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 APPLICATION
export namespace llm {
  // LLM function calling application from a class or interface type
  export function application<App>(): ILlmApplication;
  export function schema<T>(): ILlmSchema; // LLM 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 functions
  • LLM function calling application composer
  • 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