[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71510":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":24,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":46,"readmeContent":47,"aiSummary":48,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":49,"discoverSource":50},71510,"simdjson","simdjson\u002Fsimdjson","Parsing gigabytes of JSON per second : used by Facebook\u002FMeta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks","https:\u002F\u002Fsimdjson.org",null,"C++",23827,1259,241,124,0,2,29,89,6,96.7,"Apache License 2.0",false,"master",true,[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"aarch64","arm64","avx2","avx512","c-plus-plus","clang","clang-cl","cpp11","gcc-compiler","json","json-parser","json-pointer","loongarch","loongarch64","neon","risc-v","simd","sse42","vs2019","x64","2026-06-12 04:01:01","[![][license img]][license] [![][licensemit img]][licensemit]\n\n\n[![Doxygen Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-doxygen-green.svg)](https:\u002F\u002Fsimdjson.github.io\u002Fsimdjson\u002F)\n\nsimdjson : Parsing gigabytes of JSON per second\n===============================================\n\n\u003Cimg src=\"images\u002Fofficial_logo\u002Flogo_noir\u002FSVG\u002Flogo_simdjson_noir.svg\" width=\"40%\" style=\"float: right\">\n\nJSON is everywhere on the Internet. Servers spend a *lot* of time parsing it. We need a fresh\napproach. The simdjson library uses commonly available SIMD instructions and microparallel algorithms\nto parse JSON 4x  faster than RapidJSON and 25x faster than JSON for Modern C++.\n\n* **Fast:** Over 4x faster than commonly used production-grade JSON parsers.\n* **Record Breaking Features:** Minify JSON  at 6 GB\u002Fs, validate UTF-8  at 13 GB\u002Fs,  NDJSON at 3.5 GB\u002Fs.\n* **Easy:** First-class, easy to use and carefully documented APIs.\n* **Strict:** Full JSON and UTF-8 validation, lossless parsing. Performance with no compromises.\n* **Automatic:** Selects a CPU-tailored parser at runtime. No configuration needed.\n* **Reliable:** From memory allocation to error handling, simdjson's design avoids surprises.\n* **Peer Reviewed:** Our research appears in venues like VLDB Journal, Software: Practice and Experience.\n\nThis library is part of the [Awesome Modern C++](https:\u002F\u002Fawesomecpp.com) list.\n\nTable of Contents\n-----------------\n\n* [Real-world usage](#real-world-usage)\n* [Quick Start](#quick-start)\n* [Documentation](#documentation)\n* [Godbolt](#godbolt)\n* [Performance results](#performance-results)\n* [Packages](#packages)\n* [Bindings and Ports of simdjson](#bindings-and-ports-of-simdjson)\n* [About simdjson](#about-simdjson)\n* [Funding](#funding)\n* [Contributing to simdjson](#contributing-to-simdjson)\n* [License](#license)\n\n\nReal-world usage\n----------------\n\n- [Node.js](https:\u002F\u002Fnodejs.org\u002F)\n- [ClickHouse](https:\u002F\u002Fgithub.com\u002FClickHouse\u002FClickHouse)\n- [Meta Velox](https:\u002F\u002Fvelox-lib.io)\n- [Google Pax](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fpaxml)\n- [milvus](https:\u002F\u002Fgithub.com\u002Fmilvus-io\u002Fmilvus)\n- [QuestDB](https:\u002F\u002Fquestdb.io\u002Fblog\u002Fquestdb-release-8-0-3\u002F)\n- [Clang Build Analyzer](https:\u002F\u002Fgithub.com\u002Faras-p\u002FClangBuildAnalyzer)\n- [Shopify HeapProfiler](https:\u002F\u002Fgithub.com\u002FShopify\u002Fheap-profiler)\n- [StarRocks](https:\u002F\u002Fgithub.com\u002FStarRocks\u002Fstarrocks)\n- [Microsoft FishStore](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FFishStore)\n- [Intel PCM](https:\u002F\u002Fgithub.com\u002Fintel\u002Fpcm)\n- [WatermelonDB](https:\u002F\u002Fgithub.com\u002FNozbe\u002FWatermelonDB)\n- [Apache Doris](https:\u002F\u002Fgithub.com\u002Fapache\u002Fdoris)\n- [Dgraph](https:\u002F\u002Fgithub.com\u002Fdgraph-io\u002Fdgraph)\n- [UJRPC](https:\u002F\u002Fgithub.com\u002Funum-cloud\u002Fujrpc)\n- [fastgltf](https:\u002F\u002Fgithub.com\u002Fspnda\u002Ffastgltf)\n- [vast](https:\u002F\u002Fgithub.com\u002Ftenzir\u002Fvast)\n- [ada-url](https:\u002F\u002Fgithub.com\u002Fada-url\u002Fada)\n- [fastgron](https:\u002F\u002Fgithub.com\u002Fadamritter\u002Ffastgron)\n- [WasmEdge](https:\u002F\u002Fwasmedge.org)\n- [RonDB](https:\u002F\u002Fgithub.com\u002Flogicalclocks\u002Frondb)\n- [GreptimeDB](https:\u002F\u002Fgithub.com\u002FGreptimeTeam\u002Fgreptimedb)\n- [mamba](https:\u002F\u002Fgithub.com\u002Fmamba-org\u002Fmamba)\n- [Ladybird Browser](https:\u002F\u002Fladybird.org)\n- [SereneDB](https:\u002F\u002Fgithub.com\u002Fserenedb\u002Fserenedb)\n\n\nIf you are planning to use simdjson in a product, please work from one of our releases.\n\n\n\n\nQuick Start\n-----------\n\nThe simdjson library is easily consumable with a single .h and .cpp file.\n\n0. Prerequisites: `g++` (version 7 or better) or `clang++` (version 6 or better), and a 64-bit\n   system with a command-line shell (e.g., Linux, macOS, freeBSD). We also support programming\n   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.\n1. Pull [simdjson.h](singleheader\u002Fsimdjson.h) and [simdjson.cpp](singleheader\u002Fsimdjson.cpp) into a\n   directory, along with the sample file [twitter.json](jsonexamples\u002Ftwitter.json). You can download them with the `wget` utility:\n\n   ```\n   wget https:\u002F\u002Fraw.githubusercontent.com\u002Fsimdjson\u002Fsimdjson\u002Fmaster\u002Fsingleheader\u002Fsimdjson.h https:\u002F\u002Fraw.githubusercontent.com\u002Fsimdjson\u002Fsimdjson\u002Fmaster\u002Fsingleheader\u002Fsimdjson.cpp https:\u002F\u002Fraw.githubusercontent.com\u002Fsimdjson\u002Fsimdjson\u002Fmaster\u002Fjsonexamples\u002Ftwitter.json\n   ```\n2. Create `quickstart.cpp`:\n\n```cpp\n#include \u003Ciostream>\n#include \"simdjson.h\"\nusing namespace simdjson;\nint main(void) {\n    ondemand::parser parser;\n    padded_string json = padded_string::load(\"twitter.json\");\n    ondemand::document tweets = parser.iterate(json);\n    std::cout \u003C\u003C uint64_t(tweets[\"search_metadata\"][\"count\"]) \u003C\u003C \" results.\" \u003C\u003C std::endl;\n}\n```\n3. `c++ -o quickstart quickstart.cpp simdjson.cpp`\n4. `.\u002Fquickstart`\n\n  ```\n   100 results.\n  ```\n\n\nDocumentation\n-------------\n\nUsage documentation is available:\n\n* [Basics](doc\u002Fbasics.md) is an overview of how to use simdjson and its APIs.\n* [Builder](doc\u002Fbuilder.md) is an overview of how to efficiently write JSON strings using simdjson.\n* [Performance](doc\u002Fperformance.md) shows some more advanced scenarios and how to tune for them.\n* [Implementation Selection](doc\u002Fimplementation-selection.md) describes runtime CPU detection and\n  how you can work with it.\n* [API](https:\u002F\u002Fsimdjson.github.io\u002Fsimdjson\u002F) contains the automatically generated API documentation.\n* [Compile-Time Parsing](doc\u002Fcompile_time.md) presents our compile-time parsing function (C++26 only).\n\n\nGodbolt\n-------------\n\nSome users may want to browse code along with the compiled assembly. You want to check out the following lists of examples:\n* [C++26 reflection example](https:\u002F\u002Fgodbolt.org\u002Fz\u002FK3Px64TqK)\n* [simdjson examples with errors handled through exceptions](https:\u002F\u002Fgodbolt.org\u002Fz\u002F7G5qE4sr9)\n* [simdjson examples with errors without exceptions](https:\u002F\u002Fgodbolt.org\u002Fz\u002Fe9dWb9E4v)\n\nPerformance results\n-------------------\n\nThe simdjson library uses three-quarters less instructions than state-of-the-art parser [RapidJSON](https:\u002F\u002Frapidjson.org). To our knowledge, simdjson is the first fully-validating JSON parser\nto run at [gigabytes per second](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGigabyte) (GB\u002Fs) on commodity processors. It can parse millions of JSON documents per second on a single core.\n\nThe following figure represents parsing speed in GB\u002Fs for parsing various files\non an Intel Skylake processor (3.4 GHz) using the GNU GCC 10 compiler (with the -O3 flag).\nWe compare against the best and fastest C++ libraries on benchmarks that load and process the data.\nThe simdjson library offers full unicode ([UTF-8](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FUTF-8)) validation and exact\nnumber parsing.\n\n\u003Cimg src=\"doc\u002Frome.png\" width=\"60%\">\n\nThe simdjson library offers high speed whether it processes tiny files (e.g., 300 bytes)\nor larger files (e.g., 3MB). The following plot presents parsing\nspeed for [synthetic files over various sizes generated with a script](https:\u002F\u002Fgithub.com\u002Fsimdjson\u002Fsimdjson_experiments_vldb2019\u002Fblob\u002Fmaster\u002Fexperiments\u002Fgrowing\u002Fgen.py) on a 3.4 GHz Skylake processor (GNU GCC 9, -O3).\n\n\u003Cimg src=\"doc\u002Fgrowing.png\" width=\"60%\">\n\n[All our experiments are reproducible](https:\u002F\u002Fgithub.com\u002Fsimdjson\u002Fsimdjson_experiments_vldb2019).\n\n\nFor NDJSON files, we can exceed 3 GB\u002Fs with [our  multithreaded parsing functions](https:\u002F\u002Fgithub.com\u002Fsimdjson\u002Fsimdjson\u002Fblob\u002Fmaster\u002Fdoc\u002Fparse_many.md).\n\n\nPackages\n------------------------------\n[![Packaging status](https:\u002F\u002Frepology.org\u002Fbadge\u002Fvertical-allrepos\u002Fsimdjson.svg)](https:\u002F\u002Frepology.org\u002Fproject\u002Fsimdjson\u002Fversions)\n\n\nBindings and Ports of simdjson\n------------------------------\n\nWe distinguish between \"bindings\" (which just wrap the C++ code) and a port to another programming language (which reimplements everything).\n\n- [ZippyJSON](https:\u002F\u002Fgithub.com\u002Fmichaeleisel\u002Fzippyjson): Swift bindings for the simdjson project.\n- [libpy_simdjson](https:\u002F\u002Fgithub.com\u002Fgerrymanoim\u002Flibpy_simdjson\u002F): high-speed Python bindings for simdjson using [libpy](https:\u002F\u002Fgithub.com\u002Fquantopian\u002Flibpy).\n- [pysimdjson](https:\u002F\u002Fgithub.com\u002FTkTech\u002Fpysimdjson): Python bindings for the simdjson project.\n- [cysimdjson](https:\u002F\u002Fgithub.com\u002FTeskaLabs\u002Fcysimdjson): high-speed Python bindings for the simdjson project.\n- [simdjson-rs](https:\u002F\u002Fgithub.com\u002Fsimd-lite): Rust port.\n- [simdjson-rust](https:\u002F\u002Fgithub.com\u002FSunDoge\u002Fsimdjson-rust): Rust wrapper (bindings).\n- [SimdJsonSharp](https:\u002F\u002Fgithub.com\u002FEgorBo\u002FSimdJsonSharp): C# version for .NET Core (bindings and full port).\n- [simdjson_nodejs](https:\u002F\u002Fgithub.com\u002Fluizperes\u002Fsimdjson_nodejs): Node.js bindings for the simdjson project.\n- [simdjson_php](https:\u002F\u002Fgithub.com\u002Fcrazyxman\u002Fsimdjson_php): PHP bindings for the simdjson project.\n- [simdjson_ruby](https:\u002F\u002Fgithub.com\u002Fsaka1\u002Fsimdjson_ruby): Ruby bindings for the simdjson project.\n- [fast_jsonparser](https:\u002F\u002Fgithub.com\u002Fanilmaurya\u002Ffast_jsonparser): Ruby bindings for the simdjson project.\n- [simdjson-go](https:\u002F\u002Fgithub.com\u002Fminio\u002Fsimdjson-go): Go port using Golang assembly.\n- [rcppsimdjson](https:\u002F\u002Fgithub.com\u002Feddelbuettel\u002Frcppsimdjson): R bindings.\n- [simdjson_erlang](https:\u002F\u002Fgithub.com\u002FChomperT\u002Fsimdjson_erlang): erlang bindings.\n- [simdjsone](https:\u002F\u002Fgithub.com\u002Fsaleyn\u002Fsimdjsone): erlang bindings.\n- [lua-simdjson](https:\u002F\u002Fgithub.com\u002FFourierTransformer\u002Flua-simdjson): lua bindings.\n- [hermes-json](https:\u002F\u002Fhackage.haskell.org\u002Fpackage\u002Fhermes-json): haskell bindings.\n- [zimdjson](https:\u002F\u002Fgithub.com\u002FEzequielRamis\u002Fzimdjson): Zig port.\n- [simdjzon](https:\u002F\u002Fgithub.com\u002Ftravisstaloch\u002Fsimdjzon): Zig port.\n- [JSON-Simd](https:\u002F\u002Fgithub.com\u002Frawleyfowler\u002FJSON-simd): Raku bindings.\n- [JSON::SIMD](https:\u002F\u002Fmetacpan.org\u002Fpod\u002FJSON::SIMD): Perl bindings; fully-featured JSON module that uses simdjson for decoding.\n- [gemmaJSON](https:\u002F\u002Fgithub.com\u002Fsainttttt\u002FgemmaJSON): Nim JSON parser based on simdjson bindings.\n- [simdjson-java](https:\u002F\u002Fgithub.com\u002Fsimdjson\u002Fsimdjson-java): Java port.\n- [mruby-fast-json](https:\u002F\u002Fgithub.com\u002FAsmod4n\u002Fmruby-fast-json): mruby binding with high API coverage.\n- [simdjson-dart](https:\u002F\u002Fgithub.com\u002Fxaldarof\u002Fsimdjson-dart): Dart bindings for the simdjson project.\n\nAbout simdjson\n--------------\n\nThe simdjson library takes advantage of modern microarchitectures, parallelizing with SIMD vector\ninstructions, reducing branch misprediction, and reducing data dependency to take advantage of each\nCPU's multiple execution cores.\n\nOur default front-end is called On-Demand, and we wrote a paper about it:\n\n- John Keiser, Daniel Lemire, [On-Demand JSON: A Better Way to Parse Documents?](http:\u002F\u002Farxiv.org\u002Fabs\u002F2312.17149), Software: Practice and Experience 54 (6), 2024.\n\nSome people [enjoy reading the first (2019) simdjson paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F1902.08318): A description of the design\nand implementation of simdjson is in our research article:\n- Geoff Langdale, Daniel Lemire, [Parsing Gigabytes of JSON per Second](https:\u002F\u002Farxiv.org\u002Fabs\u002F1902.08318), VLDB Journal 28 (6), 2019.\n\nWe have an in-depth paper focused on the UTF-8 validation:\n\n- John Keiser, Daniel Lemire, [Validating UTF-8 In Less Than One Instruction Per Byte](https:\u002F\u002Farxiv.org\u002Fabs\u002F2010.03090), Software: Practice & Experience 51 (5), 2021.\n\nWe also have an informal [blog post providing some background and context](https:\u002F\u002Fbranchfree.org\u002F2019\u002F02\u002F25\u002Fpaper-parsing-gigabytes-of-json-per-second\u002F).\n\nFor the video inclined, we had a talk at QCon San Francisco 2019\u003Cbr \u002F>\n[![simdjson at QCon San Francisco 2019](http:\u002F\u002Fimg.youtube.com\u002Fvi\u002FwlvKAT7SZIQ\u002F0.jpg)](http:\u002F\u002Fwww.youtube.com\u002Fwatch?v=wlvKAT7SZIQ)\u003Cbr \u002F>\n(It was the best voted talk, we're kinda proud of it.)\n\nWe also had a CppCon 2025 talk. We show how C++26 reflection allows for one-line serialization (to_json(player)) or deserialization—without invasive macros or manual mapping—using nothing but the C++ standard library. Whether you’re a performance junkie or simply interested in the roadmap for the next decade of C++ development, watch our full talk!\n\n[![simdjson at CppCon 2025](http:\u002F\u002Fimg.youtube.com\u002Fvi\u002FMcgk3CxHYMs\u002F0.jpg)](http:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Mcgk3CxHYMs)\u003Cbr \u002F>\n\n\n\nCiting this work\n-----------------\n\nIf you use simdjson in published research, please cite the software library. A suitable BibTeX entry is:\n\n```bibtex\n@misc{simdjson,\n  title={{The simdjson library: Parsing Gigabytes of JSON per Second}},\n  author={Daniel Lemire and Geoff Langdale and John Keiser and Paul Dreik and Francisco Thiesen and others},\n  year={2019},\n  howpublished={Software library},\n  note={https:\u002F\u002Fgithub.com\u002Fsimdjson\u002Fsimdjson}\n}\n```\n\nFunding\n-------\n\nThe work is supported by the Natural Sciences and Engineering Research Council of Canada under grants\nRGPIN-2017-03910 and RGPIN-2024-03787.\n\n[license]: LICENSE\n[license img]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202-blue.svg\n\n\n[licensemit]: LICENSE-MIT\n[licensemit img]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg\n\n\nContributing to simdjson\n------------------------\n\nHead over to [CONTRIBUTING.md](CONTRIBUTING.md) for information on contributing to simdjson, and\n[HACKING.md](HACKING.md) for information on source, building, and architecture\u002Fdesign.\n\n\nStars\n------\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=simdjson\u002Fsimdjson&type=Date)](https:\u002F\u002Fwww.star-history.com\u002F#simdjson\u002Fsimdjson&Date)\n\n\nLicense\n-------\n\nThis code is made available under the [Apache License 2.0](https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0.html) as well as under the MIT License. As a user, you can pick the license you prefer.\n\nUnder Windows, we build some tools using the windows\u002Fdirent_portable.h file (which is outside our library code): it is under the liberal (business-friendly) MIT license.\n\nFor compilers that do not support [C++17](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FC%2B%2B17), we bundle the string-view library which is published under the [Boost license](http:\u002F\u002Fwww.boost.org\u002FLICENSE_1_0.txt). Like the Apache license, the Boost license is a permissive license allowing commercial redistribution.\n\nFor efficient number serialization, we bundle Florian Loitsch's implementation of the Grisu2 algorithm for binary to decimal floating-point numbers. The implementation was slightly modified by JSON for Modern C++ library. Both Florian Loitsch's implementation and JSON for Modern C++ are provided under the MIT license.\n\nFor runtime dispatching, we use some code from the PyTorch project licensed under 3-clause BSD.\n","simdjson 是一个高性能的 JSON 解析库，能够每秒解析千兆字节级别的 JSON 数据。它利用了常见的 SIMD 指令集和微并行算法，使得其解析速度比 RapidJSON 快 4 倍，比 Modern C++ 的 JSON 库快 25 倍。核心功能包括高效的 JSON 和 UTF-8 验证、自动选择适合当前 CPU 的解析器以及易于使用的 API。此外，simdjson 还具备严格的错误处理机制和内存管理策略，确保了其稳定性和可靠性。该项目适用于需要快速处理大量 JSON 数据的应用场景，如数据仓库、实时分析系统及网络服务等。已被 Facebook\u002FMeta Velox、Node.js 运行时、ClickHouse 等多个知名项目采用。","2026-06-11 03:38:09","high_star"]