Our great sponsors
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
typescript-runtime-type-benchmarks
📊 Benchmark Comparison of Packages with Runtime Validation and TypeScript Support
I was one of the most outspoken supporters of this initiative until I started working on ArkType. That may sound oddly self-serving, and it would be naive to claim objectivity after having invested so much into my own solution to this problem. However, I don't think that's the primary reason I changed my mind.
Has been heavily optimized, both in terms of its types and runtime performance. Even including the static parser, many types are about an order of magnitude more efficient than equivalent Zod. Early results show it as marginally faster than any validator currently published to typescript-runtime-type-benchmarks, not including more complex cases where (2) would give ArkType a much more significant advantage.
Positioning the Ark parser as a unified string syntax for runtime types (to me at least) makes the rationales and justifications for string parsing much more apparent and focused, much more so than just saying "hey, here's a library to write your types with strings just because". It also services as a prototypal implementation of what JS types "could" look like one day (if only we could drop the `scope` and `type` and just write the types naturally in JavaScript), I took a similar approach with https://github.com/sinclairzx81/linqbox many years ago.
Related posts
- Flappy Bird Implemented in TypeScript Types
- TypeBox: Runtime Type System Built on Industry Standards
- Preventing more parameters being passed than needed by a type definition?
- libraries you are happy that you discovered them
- ts-belt - Fast, modern, and practical utility library for FP in TypeScript / Flow / JavaScript. (Faster than ramda, rambda, remeda and lodash/fp.)