프로젝트 소개
vibejson은 표준 marshal/unmarshal 작업보다 더 세밀한 제어가 필요한 Go 애플리케이션을 위한 종합 JSON 라이브러리입니다. 이 라이브러리는 할당을 줄이고 제로 카피(zero-copy) 작업을 위한 명시적인 소유권 및 대여 규칙을 제공하는 데 중점을 둡니다.
주요 기능은 다음과 같습니다:
- Typed Codecs: 반복되는 핫 패스(hot paths)의 오버헤드를 최소화하기 위해 컴파일된 인코더 및 디코더를 지원합니다.
- Document Navigation: `GetRaw`를 통한 JSON Pointer (RFC 6901) 선택 및 문서의 반복 탐색을 위한 구조적 인덱싱을 제공합니다.
- Streaming: NDJSON 또는 연결된 JSON 값을 처리하기 위한 `Reader` 및 `Writer`를 포함합니다.
- Validation and Transforms: 엄격한 JSON 검증 도구와 JSON 출력의 압축, 들여쓰기 또는 정규화(canonicalize) 함수를 제공합니다.
- Performance Optimization: amd64 (AVX2) 및 arm64 (NEON) 아키텍처에서 문자열 스캐닝, 구조적 파싱 및 숫자 배열 변환을 가속화하기 위해 Go 네이티브 SIMD (Go 1.27의 `GOEXPERIMENT=simd`를 통해)를 지원합니다.
- Document Model: 동적인 JSON 조작을 위한 소유권 기반의 정렬된 문서 모델을 특징으로 합니다.
이 라이브러리는 Go 표준 라이브러리 외의 의존성 없이 설계되었으며, 고수준의 typed codecs부터 `x/` 패키지의 저수준 스캐닝 커널에 이르기까지 다양한 API 레벨을 제공합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.