simdjson-go
rjson
simdjson-go | rjson | |
---|---|---|
6 | 5 | |
1,822 | 52 | |
0.3% | - | |
4.0 | 0.0 | |
about 1 year ago | almost 3 years ago | |
Go | Go | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
simdjson-go
-
Show HN: Up to 100x Faster FastAPI with simdjson and io_uring on Linux 5.19
Speaking of Go, there's a simdjson implementation for golang too:
> Performance wise, simdjson-go runs on average at about 40% to 60% of the speed of simdjson. Compared to Golang's standard package encoding/json, simdjson-go is about 10x faster.
I haven't tried it yet but I don't really need that speed.
https://github.com/minio/simdjson-go
-
How to Use AVX512 in Golang
I agree. For performance-sensitive situations, C/C++ or Rust is the only choice. However, many developers choose Go or other languages for engineering efficiency. A typical use case of SIMD in Go is simdjson-go. Besides, there are plenty of bindings and ports of simdjson. "Other languages" developers also need performance improvement from native instructions such as SIMD.
- Sonic: A fast JSON serializing and deserializing library
- Whats the fastest JSON unmarshaling package as of right now?
-
What is the best solution to unique data in golang
I suggest to use a streaming library to parse your file. Like jstream or simdjson-go
-
I wrote yet another json parser. It may be a contender for fastest.
You can also try comparing with https://github.com/minio/simdjson-go. It does use a different API, however, would be good to compare nevertheless.
rjson
-
Expr – a tiny stack-based virtual machine written in Go
This is an interesting project. I think Ragel is an underused resource for writing efficient go code. I used Ragel to build a json parser.
-
Branchless Coding in Go (Golang)
I apparently had a fundamental misunderstanding of the meaning of branchless. That's embarrassing.
As for simdjson-go, I did benchmark it. rjson outperformed simdjson-go in most benchmarks, but simdjson-go was about 3% faster reading citm_catalog.json.
https://github.com/WillAbides/rjson#simdjson
-
I wrote yet another json parser. It may be a contender for fastest.
/u/egonelbre I added simdjson-go to the benchmarks. It's an interesting one. It edged out rjson on one of the ReadObject benchmarks. It appears to do very well with large json objects that have a lot of string values.
What are some alternatives?
easyjson - Fast JSON serializer for golang.
avo - Generate x86 Assembly with Go
jstream - Streaming JSON parser for Go
expr - Expr – a tiny stack-based virtual machine written in Go
sonic - A blazingly fast JSON serializing & deserializing library
jsoniter - A high-performance 100% compatible drop-in replacement of "encoding/json"
jsonparser - One of the fastest alternative JSON parser for Go that does not require schema
expr - Expression language and expression evaluation for Go [Moved to: https://github.com/expr-lang/expr]
jsonlite - A simple, self-contained, serverless, zero-configuration, json document store.
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
json_benchmark - Python JSON benchmarking and "correctness".
simdjson - Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks