simdjson /simdjson

Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks

★ 24,531⑂ 1,346
C++Created 2018-03-23simdjson.org
24,531
stars
+32+35+182
1,346
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

[![][license img]][license] [![][licensemit img]][licensemit]




simdjson : Parsing gigabytes of JSON per second
===============================================



JSON is everywhere on the Internet. Servers spend a lot of time parsing it. We need a fresh
approach. The simdjson library uses commonly available SIMD instructions and microparallel algorithms
to parse JSON 4x  faster than RapidJSON and 25x faster than JSON for Modern C++.

 Fast: Over 4x faster than commonly used production-grade JSON parsers.
 Record Breaking Features: Minify JSON  at 6 GB/s, validate UTF-8  at 13 GB/s,  NDJSON at 3.5 GB/s.
 Easy: First-class, easy to use and carefully documented APIs.
 Strict: Full JSON and UTF-8 validation, lossless parsing. Performance with no compromises.
 Automatic: Selects a CPU-tailored parser at runtime. No configuration needed.
 Reliable: From memory allocation to error handling, simdjson's design avoids surprises.
 Peer Reviewed: Our research appears in venues like VLDB Journal, Software: Practice and Experience.

Table of Contents
-----------------

 Real-world usage
 Quick Start
 Documentation
 Godbolt
 Performance results
 Packages
 Companion libraries
 Bindings and Ports of simdjson
 About simdjson
 Funding
 Contributing to simdjson
 License


Real-world usage
----------------

- Node.js
- ClickHouse
- Meta Velox
- Google Pax
- milvus
- QuestDB
- Clang Build Analyzer
- Shopify HeapProfiler
- StarRocks
- Microsoft FishStore
- Intel PCM
- WatermelonDB
- Apache Doris
- Dgraph
- UCall
- fastgltf
- tenzir
- ada-url
- fastgron
- WasmEdge
- RonDB
- GreptimeDB
- mamba
- Ladybird Browser
- SereneDB
- YDB
- ByConity
- Timeplus Proton
- TiFlash
- ata-validator
- Apache Arrow
- Groonga
- Elasticsearch
- Wazuh
- YTsaurus
- Alibaba LoongCollector
- ByteDance Bolt
- OpenMLDB
- CLP
- Estuary Flow
- Axmol Engine
- OpenModelica
- NVIDIA Vulkan Video Samples
- Adapty iOS SDK
- SlimeVR OpenVR Driver

If you are planning to use simdjson in a product, please work from one of our releases.




Quick Start
-----------

The simdjson library is easily consumable with a single .h and .cpp file.

0. Prerequisites: g++ (version 7 or better) or clang++ (version 6 or better), and a 64-bit
   system with a command-line shell (e.g., Linux, macOS, freeBSD). We also support programming
   environments like Visual Studio and Xcode, but different steps are needed. Users of clang++ may need to specify the C++ version (e.g., c++ -std=c++17) since clang++ tends to default on C++98.
1. Pull simdjson.h and simdjson.cpp into a
   directory, along with the sample file twitter.json. You can download them with the wget utility:

   
   wget https://raw.githubusercontent.com/simdjson/simdjson/master/singleheader/simdjson.h https://raw.githubusercontent.com/simdjson/simdjson/master/singleheader/simdjson.cpp https://raw.githubusercontent.com/simdjson/simdjson/master/jsonexamples/twitter.json
   
2. Create quickstart.cpp:

cpp
include 
include "simdjson.h"
using namespace simdjson;
i

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON