whatisgithub

What is yyjson?

ibireme/yyjson — explained in plain English

Analysis updated 2026-07-03

3,738CAudience · developerComplexity · 3/5Setup · easy

In one sentence

A blazing-fast C JSON library that reads and writes gigabytes per second, distributed as a single header and one source file with zero dependencies and support for JSON Pointer, Patch, and JSON5.

Mindmap

mindmap
  root((repo))
    What it does
      Parses JSON fast
      Writes JSON fast
      No dependencies
    Tech Stack
      C language
      ANSI C89 standard
    Features
      JSON Pointer
      JSON Patch
      Merge Patch
      JSON5 support
    Limitations
      Immutable by default
      Slow index access
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Parse large JSON API responses in a C program with minimal CPU overhead by dropping in a single header and source file

USE CASE 2

Serialize C data structures to JSON at high throughput for a performance-sensitive server or embedded application

USE CASE 3

Query nested JSON fields by path using JSON Pointer without writing recursive traversal code

USE CASE 4

Apply incremental JSON edits using JSON Patch or Merge Patch without building a custom diff-and-merge system

What is it built with?

C

How does it compare?

ibireme/yyjsontimescale/pg_textsearchdekunukem/nintendo_switch_reverse_engineering
Stars3,7383,7363,734
LanguageCCC
Setup difficultyeasymoderatehard
Complexity3/53/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

Single header plus source file, no build system or external dependencies, but requires a C compiler and basic knowledge of C memory management.

So what is it?

yyjson is a JSON library written in C, built for speed. JSON is the data format that almost every web API and configuration file uses: text structured as keys and values. Programs that process lots of JSON (parsing incoming requests, reading config files, building API responses) need a library to convert between JSON text and in-memory data structures. yyjson is one option for C programs that care about doing this quickly. The library claims to read and write gigabytes of JSON per second on modern hardware. The README includes benchmark tables comparing it against other well-known C JSON libraries: simdjson, rapidjson, cjson, and jansson. Across tested hardware (AWS servers and Apple A14 phones), yyjson consistently shows the highest throughput for both parsing and writing. A practical reason to choose yyjson over alternatives is the integration story: the entire library is a single header file and a single C source file. There is nothing to build separately and no dependencies. The code follows the ANSI C89 standard, meaning it compiles on a wide range of platforms and compilers without special flags. Beyond basic reading and writing, yyjson supports querying and modifying JSON documents using standard specifications: JSON Pointer (addressing a specific value by path), JSON Patch (applying a set of changes), and JSON Merge Patch (merging two objects). It handles large integers and floating point numbers accurately and supports optional JSON5 features like comments and trailing commas. One noted limitation: accessing elements by index in an array or object is slower than iterating, because the internal structure is a linked list rather than an array. The parsed document is also immutable by default, modifications require creating a mutable copy first.

Copy-paste prompts

Prompt 1
Show me how to parse a JSON file with yyjson in C and extract a nested string value using JSON Pointer syntax.
Prompt 2
How do I create a mutable copy of a parsed yyjson document so I can modify a field and serialize it back to a string?
Prompt 3
Write a C program that reads a 10MB JSON file with yyjson and measures parse time, then does the same write to compare throughput.
Prompt 4
How do I apply a JSON Patch array of operations to a JSON document using the yyjson C API?
Prompt 5
What is the performance difference between iterating over a yyjson array versus accessing elements by index, and why does it matter?

Frequently asked questions

What is yyjson?

A blazing-fast C JSON library that reads and writes gigabytes per second, distributed as a single header and one source file with zero dependencies and support for JSON Pointer, Patch, and JSON5.

What language is yyjson written in?

Mainly C. The stack also includes C.

How hard is yyjson to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is yyjson for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.