Об этом проекте
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/`.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.