Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

simdjson-go can be much faster than Go’s encoding/json on suitable x86-64 CPUs, but “gigabytes per second” is not a guaranteed application-level result. MinIO’s pure-Go port uses SIMD assembly, requires both AVX2 and carry-less multiplication (CLMUL), and reports about 10× the speed of encoding/json in its own tests. Your actual throughput will depend on the processor, JSON shape, allocations, traversal, and conversion work around parsing.

What simdjson-go is

simdjson-go is MinIO’s Go port of the simdjson parser, originally associated with Daniel Lemire and Geoff Langdale. The project describes it as pure Go with no cgo requirement, while using Go assembly and SIMD instructions for parsing.

Beyond syntax parsing, the package provides validation, object search and traversal, in-place replacement, member removal, and serialization facilities. Parsed data is represented as a ParsedJson value that you can walk with an iterator or callback.

How the parser reaches high throughput

Two concurrent stages

The implementation follows simdjson’s two-stage architecture:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Sale
Seagate 2TB Portable Hard Drive | USB 3.0 (STGX2000400)
  • Easily store and access 2TB to content on the go with the Seagate Portable Drive, a USB external hard drive
  • Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
  • To get set up, connect the portable hard drive to a computer for automatic recognition no software required
  • This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
  • The available storage capacity may vary.
  1. Stage 1 identifies structure. SIMD code finds structural characters such as braces, brackets, commas, and colons and forwards their positions.
  2. Stage 2 builds a tape. The parser uses those positions to construct the tape representation used for navigation and value access.

In the Go port, the stages run in separate goroutines and communicate through a Go channel. The project says it uses uint32 increments rather than absolute offsets so documents are not constrained by a general 4 GB object limit. A single string element still cannot exceed 4 GB.

CPU and toolchain requirements

Parsing requires both AVX2 and CLMUL according to the project README. The documented examples are Intel Haswell-era processors (2013 and later) and AMD Ryzen or EPYC systems (first released in the first quarter of 2017). The project says there is no parsing fallback for unsupported CPUs, so check the deployment machines rather than relying on a development laptop.

  • Use SupportedCPU() to check whether the current machine is supported.
  • The README warns that gccgo always reports an unsupported CPU because it cannot compile the required assembly.
  • Deserialization is documented as available even on an unsupported CPU; that is separate from SIMD parsing.

Verify these requirements against the exact release and every architecture used in production, especially when deploying through heterogeneous virtual machines or older hosts.

Rank #2
Seagate Portable 5TB External Hard Drive HDD – USB 3.0 for PC, Mac, PS4, & Xbox - 1-Year Rescue Service (STGX5000400), Black
  • Easily store and access 5TB of content on the go with the Seagate portable drive, a USB external hard Drive
  • Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
  • To get set up, connect the portable hard drive to a computer for automatic recognition software required
  • This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
  • The available storage capacity may vary.

Parsing ordinary JSON

For a complete JSON document, the documented entry point is simdjson.Parse(). A minimal pattern is:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
parsed, err := simdjson.Parse(data)
if err != nil {
    return err
}

iter := parsed.Iter()
// Read values from iter, or use parsed.ForEach(...).

Parse returns a ParsedJson. Use Iter() when you need explicit, step-by-step navigation; the README describes ForEach() as the easiest way to consume the parsed result. Always handle the returned error because validation is part of parsing.

Parsing NDJSON

Newline-delimited JSON is supported through simdjson.ParseND(). Use it when the input contains one JSON value per line rather than one enclosing array or object:

Rank #3
Seagate Portable 1TB External Hard Drive HDD – USB 3.0 for PC, Mac, PlayStation, & Xbox, 1-Year Rescue Service (STGX1000400) , Black
  • Easily store and access 1TB to content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
  • Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop. Reformatting may be required for Mac
  • To get set up, connect the portable hard drive to a computer for automatic recognition no software required
  • This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
  • The available storage capacity may vary.
parsed, err := simdjson.ParseND(data)
if err != nil {
    return err
}

parsed.ForEach(func(iter simdjson.Iter) error {
    // Process one NDJSON value.
    return nil
})

Confirm the callback and iterator signatures against the version you import, since APIs can evolve. Treat each record’s validation and downstream conversion as part of the measured cost, not just the call to ParseND.

How fast is simdjson-go?

The MinIO README reports that simdjson-go averages 40% to 60% of upstream simdjson’s speed and is about 10× faster than Go’s standard encoding/json. Those are project-reported comparisons, not an independently reproduced current benchmark or a promise for every workload.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Corpus in the project comparison Reported reduction in ns/op versus encoding/json
Apache_builds 88.27%
Canada 65.02%
Citm_catalog 92.02%
Github_events 87.72%
Gsoc_2018 93.94%
Instruments 88.53%

The README says these tests use the same files and unmarshal into interface{}. A lower ns/op means less benchmark time for that test; it does not establish an identical speedup when you decode into structs, retain values, perform business logic, or send results over a network.

Rank #4
Seagate Portable 4TB External Hard Drive HDD – USB 3.0, 1-Year Rescue
  • Easily store and access 4TB of content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
  • Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
  • To get set up, connect the portable hard drive to a computer for automatic recognition no software required
  • This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
  • The available storage capacity may vary.

Why “gigabytes per second” needs qualification

The upstream simdjson project and its 2019 paper describe gigabytes-per-second, single-core parsing on commodity hardware as a design result. Upstream performance documentation also cautions that streams dense with floating-point numbers may reach only a few hundred MB/s, and that benchmarks differ on whether allocation costs are included. Neither statement is a simdjson-go measurement for your service.

No independent, contemporary benchmark was established for a current Go version, processor, corpus, and equivalent output representation. Benchmark your own workload before making a capacity decision.

Benchmark simdjson-go for your service

  1. Freeze the environment. Record the Go version, simdjson-go revision, CPU model and flags, operating system, and compiler.
  2. Use representative inputs. Include typical and worst-case document sizes, nesting, string lengths, numeric types, malformed records, and NDJSON batch sizes.
  3. Match the output. Compare the same destination representation, such as interface{}, structs, or iterator-based extraction.
  4. Measure end to end. Include allocation, traversal, validation, conversion, copying, and any downstream work that your service performs.
  5. Report both throughput and latency. Capture bytes per second, records per second, p50/p95/p99 latency, allocations, and memory use.
  6. Check concurrency effects. Test one core and the production worker count; parser speed can be hidden by contention, garbage collection, I/O, or channel scheduling.

Run the same benchmark against encoding/json and any alternative you are considering. Keep the corpus and benchmark boundaries identical; the available evidence does not support ranking other Go parsers without that controlled comparison.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Sale
UnionSine 500GB Ultra Slim Portable External Hard Drive HDD-USB 3.0
  • [Upgraded Version] - This external hard drive features a mirrored logo stripe combined with a striped anti-slip design, and the rounded corners of the casing make it easier to grip. The stripes also have a heat dissipation function, ensuring stable and fast data transfer.
  • 【Ultra-thin and quiet】 - The motherboard adopts JMicron 578 noise-free solution, giving you a quiet working environment. Lightweight and portable size designed to fit in your pocket for easy portability.
  • 【Ultra-Fast Data Transfers】 - Pairing this external hard drive with JMicron 578 solution USB 3.0 and USB 2.0 interfaces enables blazing-fast data transfer. It boasts theoretical read speeds of up to 125MB/s and write speeds of up to 103MB/s.
  • 【Plug and Play】 - With no software to install, just plug it in and the drive is ready to use.The hard disk chip is wrapped with an aluminum anti-interference layer to increase heat dissipation and protect data.
  • 【What You Get】 - 1 x Portable Hard Drive, 1 x USB 3.0 Cable, 1 x User Manual, Gift-type shell packaging ,Three-year manufacturer's warranty and free technical support services.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

When simdjson-go is a good fit

  • Large JSON or NDJSON payloads make parsing a measurable part of CPU time.
  • Your production CPUs expose AVX2 and CLMUL, and you can enforce that requirement operationally.
  • You want a pure-Go integration without cgo.
  • You can work with the package’s iterator, callback, tape, mutation, and serialization APIs.

When to choose another approach

  • Your fleet includes unsupported CPUs and cannot guarantee instruction availability.
  • Your bottleneck is network, storage, allocation, application logic, or conversion rather than parsing.
  • You need a parser with a documented fallback path for older architectures.
  • Your benchmark shows that your particular data shape does not repay the integration and compatibility cost.

Practical decision checklist

  • Have you checked SupportedCPU() on every deployment class?
  • Are you using Parse for one JSON value and ParseND for newline-delimited records?
  • Did you test malformed input and confirm the error-handling path?
  • Did you measure allocations and conversion, not only parser timing?
  • Did you include floating-point-heavy and worst-case payloads?
  • Did you verify API behavior against the exact dependency revision you will ship?

Frequently Asked Questions

Does simdjson-go always parse at gigabytes per second?

No. “Parsing gigabytes per second” is the project’s tagline and reflects upstream simdjson context. Throughput varies with CPU, JSON shape, floating-point density, allocation, traversal, and conversion.

Can simdjson-go run on a CPU without AVX2 or CLMUL?

The README says parsing has no fallback on unsupported CPUs. Check the target machine with SupportedCPU(); deserialization is documented separately as available on unsupported CPUs.

What is the difference between Parse and ParseND?

Parse handles an ordinary JSON document. ParseND handles newline-delimited JSON records.

The Bottom Line

Use simdjson-go when controlled benchmarks show that SIMD parsing materially improves your large-JSON or NDJSON workload and your fleet supports AVX2 plus CLMUL. Treat the reported 10× comparison as a project benchmark, not a universal guarantee, and validate complete service performance on your own data.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Quick Recap

SaleBestseller No. 1
Seagate 2TB Portable Hard Drive | USB 3.0 (STGX2000400)
Seagate 2TB Portable Hard Drive | USB 3.0 (STGX2000400)
This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable; The available storage capacity may vary.
$119.99
Bestseller No. 2
Seagate Portable 5TB External Hard Drive HDD – USB 3.0 for PC, Mac, PS4, & Xbox - 1-Year Rescue Service (STGX5000400), Black
Seagate Portable 5TB External Hard Drive HDD – USB 3.0 for PC, Mac, PS4, & Xbox - 1-Year Rescue Service (STGX5000400), Black
This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable; The available storage capacity may vary.
$229.99
Bestseller No. 3
Seagate Portable 1TB External Hard Drive HDD – USB 3.0 for PC, Mac, PlayStation, & Xbox, 1-Year Rescue Service (STGX1000400) , Black
Seagate Portable 1TB External Hard Drive HDD – USB 3.0 for PC, Mac, PlayStation, & Xbox, 1-Year Rescue Service (STGX1000400) , Black
This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable; The available storage capacity may vary.
$119.80
Bestseller No. 4
Seagate Portable 4TB External Hard Drive HDD – USB 3.0, 1-Year Rescue
Seagate Portable 4TB External Hard Drive HDD – USB 3.0, 1-Year Rescue
This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable; The available storage capacity may vary.
$149.84

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.