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