simlock
병렬 코딩 에이전트가 동일 시뮬레이터를 놓고 충돌하지 않도록 제어 평면 제공
typia는 변환을 이용한 초고속·간편 런타임 검증·직렬화 도구
Super-fast/easy runtime validators and serializers via transformation
개발 도구TypeScript · GoGitHub @samchon직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗// 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 schema<T>(): IJsonSchemaUnit<T>; // JSON schema
export function assertParse<T>(input: string): T; // type safe parser
export function assertStringify<T>(input: T): string; // safe and faster
}
// AI FUNCTION CALLING HARNESS
export namespace llm {
// collection of function calling schemas + validators/parsers
export function application<Class>(): ILlmApplication<Class>;
export function structuredOutput<P>(): ILlmStructuredOutput;
// typed questions for evaluation models + checked answer decoder
export function evaluation<T>(): ILlmEvaluation<T>;
// lenient json parser + type coercion
export function parse<T>(str: string): T;
}
// 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:
[!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- LLM function calling harness turns 6.75% → 100% accuracy
Write the type on the left, and typia compiles it into the validator on the right — at build time, with no schema and no runtime reflection.
Install typia with the ttsc toolchain.
# install
npm i typia
npm i -D ttsc typescript
# build
npx ttsc
# run a script directly
npx ttsx src/index.ts
You must use ttsc and ttsx. The stock tsc, ts-node, and tsx cannot apply the typia transform, so they will not work.
For bundler integration (Vite, Next.js, Webpack, Rollup, esbuild, ...), use @ttsc/unplugin.
If you call typia function, it would be compiled like below.
This is the key concept of typia, transforming TypeScript type to a runtime function. The typia.is<T>() function is transformed to a dedicated type checker by analyzing the target type T in the compilation level.
This feature enables developers to ensure type safety in their applications, leveraging TypeScript's static typing while also providing runtime validation. Instead of defining additional schemas, you can simply utilize the pure TypeScript type itself.
//----
// examples/checkString.ts
//----
import typia, { tags } from "typia";
export const checkString = typia.createIs<string>();
//----
// examples/checkString.js
//----
import typia from "typia";
export const checkString = (() => {
return (input) => "string" === typeof input;
})();
Thanks for your support.
Your donation encourages typia development.
You can experience how typia works by playground website:
Check out the document in the website:
dev.to Articlesdecode()