Об этом проекте

vibejson представляет собой комплексную библиотеку JSON для приложений на Go, которым требуется больше контроля, чем предоставляют стандартные операции marshal/unmarshal. Основное внимание уделено сокращению аллокаций, а также обеспечению явных правил владения и заимствования для операций с нулевым копированием. Ключевые возможности включают: - Типизированные кодеки: поддержка скомпилированных энкодеров и декодеров для часто используемых путей с целью минимизации накладных расходов. - Навигация по документам: выбор через JSON Pointer (RFC 6901) с помощью `GetRaw` и структурное индексирование для многократной навигации по документам. - Потоковая передача: наличие `Reader` и `Writer` для обработки NDJSON или конкатенированных значений JSON. - Валидация и преобразования: инструменты для строгой валидации JSON, а также функции для сжатия, форматирования отступами или канонизации вывода JSON. - Оптимизация производительности: поддержка нативного SIMD в Go (через `GOEXPERIMENT=simd` в Go 1.27) для ускорения сканирования строк, структурного парсинга и преобразования числовых массивов на архитектурах amd64 (AVX2) и arm64 (NEON). - Модель документа: владеющая упорядоченная модель документа для динамического манипулирования JSON. Библиотека разработана без зависимостей вне стандартной библиотеки Go и предоставляет различные уровни API: от высокоуровневых типизированных кодеков до низкоуровневых ядер сканирования в пакетах `x/`.