@matatbread/typia
Version:
Superfast runtime validators with only one line
124 lines (94 loc) • 5.09 kB
Markdown
# Typia

[](https://github.com/samchon/typia/blob/master/LICENSE)
[](https://www.npmjs.com/package/typia)
[](https://www.npmjs.com/package/typia)
[](https://github.com/samchon/typia/actions?query=workflow%3Abuild)
[](https://typia.io/docs/)
[](https://gurubase.io/g/typia)
[](https://discord.gg/E94XhzrUCZ)
```typescript
// 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`.
- [`nonara/ts-patch`](https://github.com/nonara/ts-patch)
- [`ryoppippi/unplugin-typia`](https://github.com/ryoppippi/unplugin-typia)
[](https://opencollective.com/typia)
## Playground
You can experience how typia works by [playground website](https://typia.io/playground):
- 💻 https://typia.io/playground
## Guide Documents
Check out the document in the [website](https://typia.io/docs/):
### 🏠 Home
- [Introduction](https://typia.io/docs/)
- [Setup](https://typia.io/docs/setup/)
- [Pure TypeScript](https://typia.io/docs/pure/)
### 📖 Features
- Runtime Validators
- [`assert()` function](https://typia.io/docs/validators/assert/)
- [`is()` function](https://typia.io/docs/validators/is/)
- [`validate()` function](https://typia.io/docs/validators/validate/)
- [Functional Module](https://typia.io/docs/validators/functional)
- [Special Tags](https://typia.io/docs/validators/tags/)
- Enhanced JSON
- [JSON Schema](https://typia.io/docs/json/schema/)
- [`stringify()` functions](https://typia.io/docs/json/stringify/)
- [`parse()` functions](https://typia.io/docs/json/parse/)
- LLM Function Calling
- [`application()` function](https://typia.io/docs/llm/application/)
- [`parameters()` function](https://typia.io/docs/llm/parameters/)
- [`schema()` function](https://typia.io/docs/llm/schema/)
- Protocol Buffer
- [Message Schema](https://typia.io/docs/protobuf/message)
- [`decode()` functions](https://typia.io/docs/protobuf/decode/)
- [`encode()` functions](https://typia.io/docs/protobuf/encode/)
- [Random Generator](https://typia.io/docs/random/)
- [Miscellaneous](https://typia.io/docs/misc/)
### 🔗 Appendix
- [API Documents](https://typia.io/api)
- Utillization Cases
- [NestJS](https://typia.io/docs/utilization/nestjs/)
- [Prisma](https://typia.io/docs/utilization/prisma/)
- [tRPC](https://typia.io/docs/utilization/trpc/)
- [⇲ Benchmark Result](https://github.com/samchon/typia/tree/master/benchmark/results/11th%20Gen%20Intel(R)%20Core(TM)%20i5-1135G7%20%40%202.40GHz)
- [⇲ `dev.to` Articles](https://dev.to/samchon/series/22474)