bytedance/sonic

A blazingly fast JSON serializing & deserializing library

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 14 minutes ago
Added to GitGenius on September 6th, 2026
Created on May 25th, 2021
Open Issues & Pull Requests: 52 (+0)
GitHub issues: Enabled
Number of forks: 474
Total Stargazers: 9,597 (+0)
Total Subscribers: 57 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 10.0 hours
Mean response time: 41.4 days
90th percentile: 15.8 days
Tracked items: 155

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 89% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 13% of issues opened in the past year have been closed. Three people close 87% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 27
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 326 days
Stale 30+ days: 20
Stale 90+ days: 13

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (9)
  • good first issue (8)
  • known-issue (8)
  • help wanted (5)
  • bug (3)
  • low-priority (3)
  • documentation (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Sonic is a JSON serialization and deserialization library for Go that uses just-in-time compilation and SIMD instructions to accelerate performance.

The library addresses the need for fast JSON processing by combining JIT compilation with SIMD operations to speed up both encoding and decoding. It provides runtime object binding without requiring code generation, complete APIs for JSON value manipulation, and streaming IO support for handling multiple values while reducing memory consumption. The tool maintains API compatibility with Go's standard encoding/json library in most cases, though it differs in HTML escaping behavior and optional key sorting features.

Developers should choose Sonic if their Go applications require high-performance JSON processing across small, medium, and large payloads. The library suits projects where JSON throughput is a bottleneck, particularly those handling substantial data volumes. It works on Linux, macOS, and Windows with support for AMD64 processors and ARM64 on Go 1.20 and above. The tool requires Go 1.18 or higher, though Go 1.24.0 has a known incompatibility that can be worked around with a build flag.

The project maintains active development with regular updates addressing edge cases and adding refinements. The maintainers have added specific error handling for mismatched types in JSON values, allowing decoding to continue while reporting problems. The tool includes a self-contained AST implementation for JSON that supports both serialization and deserialization with APIs for querying and modifying generic data. Performance optimizations are deliberately selective, with features like key sorting and HTML escaping disabled by default due to their performance cost, though both remain available as optional settings.