ReScript Struct
The fastest composable parser/serializer for ReScript (and TypeScript)
⚠️ Be aware that rescript-struct useseval
. It's usually fine but might not work in some environments like Cloudflare Workers or third-party scripts used on pages with the script-src header.
Highlights:
- Combines validation and transformation without a performance loss
- Can transform parsed value back to the initial format (serializing)
- Works with any Js value, not only
Js.Json.t
- Support for asynchronous transformations
- Immutable API with both result and exception-based operations
- Easy to create recursive structs
- Detailed error messages
- Strict mode for object structs to prevent excessive fields and many more built-in helpers
- Works with plain JavaScript/TypeScript too! You don't need to use ReScript
- The fastest composable validation library in the entire JavaScript ecosystem (benchmark)
- Small JS footprint & tree-shakable API (Comparison with Zod and Valibot)
Also, it has declarative API allowing you to use rescript-struct as a building block for other tools, such as:
- rescript-envsafe - Makes sure you don't accidentally deploy apps with missing or invalid environment variables
- rescript-json-schema - Typesafe JSON schema for ReScript
- Internal form library at Carla