About this project

vibejson is a comprehensive JSON library for Go applications requiring more control than standard marshal/unmarshal operations. It focuses on reducing allocations and providing explicit ownership and borrowing rules for zero-copy operations. Key capabilities include: - Typed Codecs: Supports compiled encoders and decoders for repeated hot paths to minimize overhead. - Document Navigation: Provides JSON Pointer (RFC 6901) selection via `GetRaw` and structural indexing for repeated navigation of documents. - Streaming: Includes a `Reader` and `Writer` for processing NDJSON or concatenated JSON values. - Validation and Transforms: Offers tools for strict JSON validation, as well as functions to compact, indent, or canonicalize JSON output. - Performance Optimization: Supports Go-native SIMD (via `GOEXPERIMENT=simd` in Go 1.27) to accelerate string scanning, structural parsing, and numeric-array conversion on amd64 (AVX2) and arm64 (NEON) architectures. - Document Model: Features an owning ordered document model for dynamic JSON manipulation. The library is designed with no dependencies outside the Go standard library and provides various API levels ranging from high-level typed codecs to low-level scanning kernels in its `x/` packages.