Zero Surprisesget() never throws — missing keys, null data, or wrong types always return your safe default. Production-safe by design.Quick start
10 FormatsJSON · XML · YAML · TOML · INI · CSV · ENV · NDJSON · Array · Object — one unified API, zero boilerplate.See all formats
Immutable by DesignEvery write returns a new instance. Enable deep-frozen readonly mode with { readonly: true } to block all mutations at runtime.API reference
Powerful QueriesWildcards (*.name) · Filters ([?price>20]) · Recursive descent (..key) · Slices ([0:5:2]) · Multi-index ([0,2,4]) · Filter functions (length, match, keys)Path syntax
Security-FirstPrototype pollution guard · SSRF + IPv6 blocking · XML XXE prevention · CSV injection sanitizer · 16 built-in sensitive-key auto-mask patterns.Security docs
Schema ValidationBuilt-in adapters for Zod, Valibot, Yup, and JSON Schema. Set a global adapter via SchemaRegistry or supply one per call.Schema adapters
ExtensibleOverride any parser or serializer via PluginRegistry. Integrations for Laravel, Symfony, NestJS, and Vite out of the box.Plugin guide
TypeScript TypesDeep path inference with DeepPaths<T> and ValueAtPath<T, P>. Fully typed get() calls — no casting, no guessing.TypeScript docs
PHP ↔ JS ParityIdentical API in both languages. Same paths, same results, same behavior — pick your stack.PHP docs