<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Simdjson on Producthunt daily</title>
        <link>https://producthunt.programnotes.cn/en/tags/simdjson/</link>
        <description>Recent content in Simdjson on Producthunt daily</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Tue, 16 Sep 2025 15:28:32 +0800</lastBuildDate><atom:link href="https://producthunt.programnotes.cn/en/tags/simdjson/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>simdjson</title>
        <link>https://producthunt.programnotes.cn/en/p/simdjson/</link>
        <pubDate>Tue, 16 Sep 2025 15:28:32 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/simdjson/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1674007983449-1fa6e9a097c4?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTgwMDc2NTh8&amp;ixlib=rb-4.1.0" alt="Featured image of post simdjson" /&gt;&lt;h1 id=&#34;simdjsonsimdjson&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/simdjson/simdjson&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;simdjson/simdjson&lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;LICENSE&#34; &gt;&lt;img src=&#34;https://img.shields.io/badge/License-Apache%202-blue.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;LICENSE-MIT&#34; &gt;&lt;img src=&#34;https://img.shields.io/badge/License-MIT-blue.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://simdjson.github.io/simdjson/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/badge/docs-doxygen-green.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Doxygen Documentation&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;simdjson--parsing-gigabytes-of-json-per-second&#34;&gt;simdjson : Parsing gigabytes of JSON per second
&lt;/h1&gt;&lt;img src=&#34;images/logo.png&#34; width=&#34;10%&#34; style=&#34;float: right&#34;&gt;
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++.
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Fast:&lt;/strong&gt; Over 4x faster than commonly used production-grade JSON parsers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Record Breaking Features:&lt;/strong&gt; Minify JSON  at 6 GB/s, validate UTF-8  at 13 GB/s,  NDJSON at 3.5 GB/s.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy:&lt;/strong&gt; First-class, easy to use and carefully documented APIs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Strict:&lt;/strong&gt; Full JSON and UTF-8 validation, lossless parsing. Performance with no compromises.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automatic:&lt;/strong&gt; Selects a CPU-tailored parser at runtime. No configuration needed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reliable:&lt;/strong&gt; From memory allocation to error handling, simdjson&amp;rsquo;s design avoids surprises.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Peer Reviewed:&lt;/strong&gt; Our research appears in venues like VLDB Journal, Software: Practice and Experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This library is part of the &lt;a class=&#34;link&#34; href=&#34;https://awesomecpp.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Awesome Modern C++&lt;/a&gt; list.&lt;/p&gt;
&lt;h2 id=&#34;table-of-contents&#34;&gt;Table of Contents
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#real-world-usage&#34; &gt;Real-world usage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#quick-start&#34; &gt;Quick Start&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#documentation&#34; &gt;Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#godbolt&#34; &gt;Godbolt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#performance-results&#34; &gt;Performance results&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#packages&#34; &gt;Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#bindings-and-ports-of-simdjson&#34; &gt;Bindings and Ports of simdjson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#about-simdjson&#34; &gt;About simdjson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#funding&#34; &gt;Funding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#contributing-to-simdjson&#34; &gt;Contributing to simdjson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#license&#34; &gt;License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;real-world-usage&#34;&gt;Real-world usage
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://nodejs.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Node.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/ClickHouse/ClickHouse&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ClickHouse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://velox-lib.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Meta Velox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/paxml&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google Pax&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/milvus-io/milvus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;milvus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://questdb.io/blog/questdb-release-8-0-3/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;QuestDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/aras-p/ClangBuildAnalyzer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Clang Build Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Shopify/heap-profiler&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Shopify HeapProfiler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/StarRocks/starrocks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;StarRocks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/microsoft/FishStore&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Microsoft FishStore&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/intel/pcm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Intel PCM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Nozbe/WatermelonDB&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;WatermelonDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/doris&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Apache Doris&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/dgraph-io/dgraph&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Dgraph&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/unum-cloud/ujrpc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;UJRPC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/spnda/fastgltf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;fastgltf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/tenzir/vast&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;vast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/ada-url/ada&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ada-url&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/adamritter/fastgron&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;fastgron&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://wasmedge.org&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;WasmEdge&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/logicalclocks/rondb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;RonDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/GreptimeTeam/greptimedb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GreptimeDB&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are planning to use simdjson in a product, please work from one of our releases.&lt;/p&gt;
&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start
&lt;/h2&gt;&lt;p&gt;The simdjson library is easily consumable with a single .h and .cpp file.&lt;/p&gt;
&lt;ol start=&#34;0&#34;&gt;
&lt;li&gt;
&lt;p&gt;Prerequisites: &lt;code&gt;g++&lt;/code&gt; (version 7 or better) or &lt;code&gt;clang++&lt;/code&gt; (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., &lt;code&gt;c++ -std=c++17&lt;/code&gt;) since clang++ tends to default on C++98.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pull &lt;a class=&#34;link&#34; href=&#34;singleheader/simdjson.h&#34; &gt;simdjson.h&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;singleheader/simdjson.cpp&#34; &gt;simdjson.cpp&lt;/a&gt; into a
directory, along with the sample file &lt;a class=&#34;link&#34; href=&#34;jsonexamples/twitter.json&#34; &gt;twitter.json&lt;/a&gt;. You can download them with the &lt;code&gt;wget&lt;/code&gt; utility:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;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
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create &lt;code&gt;quickstart.cpp&lt;/code&gt;:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-c++&#34; data-lang=&#34;c++&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;#34;simdjson.h&amp;#34;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;namespace&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;simdjson&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;void&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;ondemand&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;padded_string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;json&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;padded_string&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter.json&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;ondemand&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;document&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tweets&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;iterate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;std&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cout&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;uint64_t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tweets&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;search_metadata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;][&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;count&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34; results.&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;std&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;endl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;&lt;code&gt;c++ -o quickstart quickstart.cpp simdjson.cpp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./quickstart&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 100 results.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;documentation&#34;&gt;Documentation
&lt;/h2&gt;&lt;p&gt;Usage documentation is available:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;doc/basics.md&#34; &gt;Basics&lt;/a&gt; is an overview of how to use simdjson and its APIs.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;doc/builder.md&#34; &gt;Builder&lt;/a&gt; is an overview of how to efficiently write JSON strings using simdjson.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;doc/performance.md&#34; &gt;Performance&lt;/a&gt; shows some more advanced scenarios and how to tune for them.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;doc/implementation-selection.md&#34; &gt;Implementation Selection&lt;/a&gt; describes runtime CPU detection and
how you can work with it.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://simdjson.github.io/simdjson/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;API&lt;/a&gt; contains the automatically generated API documentation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;godbolt&#34;&gt;Godbolt
&lt;/h2&gt;&lt;p&gt;Some users may want to browse code along with the compiled assembly. You want to check out the following lists of examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://godbolt.org/z/K3Px64TqK&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;C++26 reflection example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://godbolt.org/z/7G5qE4sr9&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;simdjson examples with errors handled through exceptions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://godbolt.org/z/e9dWb9E4v&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;simdjson examples with errors without exceptions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;performance-results&#34;&gt;Performance results
&lt;/h2&gt;&lt;p&gt;The simdjson library uses three-quarters less instructions than state-of-the-art parser &lt;a class=&#34;link&#34; href=&#34;https://rapidjson.org&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;RapidJSON&lt;/a&gt;. To our knowledge, simdjson is the first fully-validating JSON parser
to run at &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Gigabyte&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;gigabytes per second&lt;/a&gt; (GB/s) on commodity processors. It can parse millions of JSON documents per second on a single core.&lt;/p&gt;
&lt;p&gt;The following figure represents parsing speed in GB/s for parsing various files
on an Intel Skylake processor (3.4 GHz) using the GNU GCC 10 compiler (with the -O3 flag).
We compare against the best and fastest C++ libraries on benchmarks that load and process the data.
The simdjson library offers full unicode (&lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/UTF-8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;UTF-8&lt;/a&gt;) validation and exact
number parsing.&lt;/p&gt;
&lt;img src=&#34;doc/rome.png&#34; width=&#34;60%&#34;&gt;
&lt;p&gt;The simdjson library offers high speed whether it processes tiny files (e.g., 300 bytes)
or larger files (e.g., 3MB). The following plot presents parsing
speed for &lt;a class=&#34;link&#34; href=&#34;https://github.com/simdjson/simdjson_experiments_vldb2019/blob/master/experiments/growing/gen.py&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;synthetic files over various sizes generated with a script&lt;/a&gt; on a 3.4 GHz Skylake processor (GNU GCC 9, -O3).&lt;/p&gt;
&lt;img src=&#34;doc/growing.png&#34; width=&#34;60%&#34;&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/simdjson/simdjson_experiments_vldb2019&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;All our experiments are reproducible&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For NDJSON files, we can exceed 3 GB/s with &lt;a class=&#34;link&#34; href=&#34;https://github.com/simdjson/simdjson/blob/master/doc/parse_many.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;our  multithreaded parsing functions&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;packages&#34;&gt;Packages
&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://repology.org/project/simdjson/versions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://repology.org/badge/vertical-allrepos/simdjson.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Packaging status&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;bindings-and-ports-of-simdjson&#34;&gt;Bindings and Ports of simdjson
&lt;/h2&gt;&lt;p&gt;We distinguish between &amp;ldquo;bindings&amp;rdquo; (which just wrap the C++ code) and a port to another programming language (which reimplements everything).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/michaeleisel/zippyjson&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ZippyJSON&lt;/a&gt;: Swift bindings for the simdjson project.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/gerrymanoim/libpy_simdjson/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;libpy_simdjson&lt;/a&gt;: high-speed Python bindings for simdjson using &lt;a class=&#34;link&#34; href=&#34;https://github.com/quantopian/libpy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;libpy&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/TkTech/pysimdjson&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;pysimdjson&lt;/a&gt;: Python bindings for the simdjson project.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/TeskaLabs/cysimdjson&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;cysimdjson&lt;/a&gt;: high-speed Python bindings for the simdjson project.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/simd-lite&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;simdjson-rs&lt;/a&gt;: Rust port.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/SunDoge/simdjson-rust&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;simdjson-rust&lt;/a&gt;: Rust wrapper (bindings).&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EgorBo/SimdJsonSharp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SimdJsonSharp&lt;/a&gt;: C# version for .NET Core (bindings and full port).&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/luizperes/simdjson_nodejs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;simdjson_nodejs&lt;/a&gt;: Node.js bindings for the simdjson project.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/crazyxman/simdjson_php&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;simdjson_php&lt;/a&gt;: PHP bindings for the simdjson project.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/saka1/simdjson_ruby&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;simdjson_ruby&lt;/a&gt;: Ruby bindings for the simdjson project.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/anilmaurya/fast_jsonparser&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;fast_jsonparser&lt;/a&gt;: Ruby bindings for the simdjson project.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/minio/simdjson-go&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;simdjson-go&lt;/a&gt;: Go port using Golang assembly.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/eddelbuettel/rcppsimdjson&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;rcppsimdjson&lt;/a&gt;: R bindings.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/ChomperT/simdjson_erlang&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;simdjson_erlang&lt;/a&gt;: erlang bindings.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/saleyn/simdjsone&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;simdjsone&lt;/a&gt;: erlang bindings.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/FourierTransformer/lua-simdjson&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;lua-simdjson&lt;/a&gt;: lua bindings.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://hackage.haskell.org/package/hermes-json&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;hermes-json&lt;/a&gt;: haskell bindings.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EzequielRamis/zimdjson&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;zimdjson&lt;/a&gt;: Zig port.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/travisstaloch/simdjzon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;simdjzon&lt;/a&gt;: Zig port.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/rawleyfowler/JSON-simd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;JSON-Simd&lt;/a&gt;: Raku bindings.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://metacpan.org/pod/JSON::SIMD&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;JSON::SIMD&lt;/a&gt;: Perl bindings; fully-featured JSON module that uses simdjson for decoding.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/sainttttt/gemmaJSON&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;gemmaJSON&lt;/a&gt;: Nim JSON parser based on simdjson bindings.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/simdjson/simdjson-java&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;simdjson-java&lt;/a&gt;: Java port.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;about-simdjson&#34;&gt;About simdjson
&lt;/h2&gt;&lt;p&gt;The simdjson library takes advantage of modern microarchitectures, parallelizing with SIMD vector
instructions, reducing branch misprediction, and reducing data dependency to take advantage of each
CPU&amp;rsquo;s multiple execution cores.&lt;/p&gt;
&lt;p&gt;Our default front-end is called On-Demand, and we wrote a paper about it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;John Keiser, Daniel Lemire, &lt;a class=&#34;link&#34; href=&#34;http://arxiv.org/abs/2312.17149&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;On-Demand JSON: A Better Way to Parse Documents?&lt;/a&gt;, Software: Practice and Experience 54 (6), 2024.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some people &lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/abs/1902.08318&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;enjoy reading the first (2019) simdjson paper&lt;/a&gt;: A description of the design
and implementation of simdjson is in our research article:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Geoff Langdale, Daniel Lemire, &lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/abs/1902.08318&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Parsing Gigabytes of JSON per Second&lt;/a&gt;, VLDB Journal 28 (6), 2019.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We have an in-depth paper focused on the UTF-8 validation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;John Keiser, Daniel Lemire, &lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/abs/2010.03090&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Validating UTF-8 In Less Than One Instruction Per Byte&lt;/a&gt;, Software: Practice &amp;amp; Experience 51 (5), 2021.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We also have an informal &lt;a class=&#34;link&#34; href=&#34;https://branchfree.org/2019/02/25/paper-parsing-gigabytes-of-json-per-second/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;blog post providing some background and context&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For the video inclined, &lt;br /&gt;
&lt;a class=&#34;link&#34; href=&#34;http://www.youtube.com/watch?v=wlvKAT7SZIQ&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;http://img.youtube.com/vi/wlvKAT7SZIQ/0.jpg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;simdjson at QCon San Francisco 2019&#34;
	
	
&gt;&lt;/a&gt;&lt;br /&gt;
(It was the best voted talk, we&amp;rsquo;re kinda proud of it.)&lt;/p&gt;
&lt;h2 id=&#34;funding&#34;&gt;Funding
&lt;/h2&gt;&lt;p&gt;The work is supported by the Natural Sciences and Engineering Research Council of Canada under grants
RGPIN-2017-03910 and RGPIN-2024-03787.&lt;/p&gt;
&lt;h2 id=&#34;contributing-to-simdjson&#34;&gt;Contributing to simdjson
&lt;/h2&gt;&lt;p&gt;Head over to &lt;a class=&#34;link&#34; href=&#34;CONTRIBUTING.md&#34; &gt;CONTRIBUTING.md&lt;/a&gt; for information on contributing to simdjson, and
&lt;a class=&#34;link&#34; href=&#34;HACKING.md&#34; &gt;HACKING.md&lt;/a&gt; for information on source, building, and architecture/design.&lt;/p&gt;
&lt;h2 id=&#34;license&#34;&gt;License
&lt;/h2&gt;&lt;p&gt;This code is made available under the &lt;a class=&#34;link&#34; href=&#34;https://www.apache.org/licenses/LICENSE-2.0.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Apache License 2.0&lt;/a&gt; as well as under the MIT License. As a user, you can pick the license you prefer.&lt;/p&gt;
&lt;p&gt;Under Windows, we build some tools using the windows/dirent_portable.h file (which is outside our library code): it is under the liberal (business-friendly) MIT license.&lt;/p&gt;
&lt;p&gt;For compilers that do not support &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/C%2B%2B17&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;C++17&lt;/a&gt;, we bundle the string-view library which is published under the &lt;a class=&#34;link&#34; href=&#34;http://www.boost.org/LICENSE_1_0.txt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Boost license&lt;/a&gt;. Like the Apache license, the Boost license is a permissive license allowing commercial redistribution.&lt;/p&gt;
&lt;p&gt;For efficient number serialization, we bundle Florian Loitsch&amp;rsquo;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&amp;rsquo;s implementation and JSON for Modern C++ are provided under the MIT license.&lt;/p&gt;
&lt;p&gt;For runtime dispatching, we use some code from the PyTorch project licensed under 3-clause BSD.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
