jsoniter
go-json
Our great sponsors
jsoniter | go-json | |
---|---|---|
7 | 17 | |
10,848 | 1,467 | |
2.0% | - | |
1.9 | 8.7 | |
3 months ago | 14 days ago | |
Go | Go | |
MIT License | 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.
jsoniter
- jsoniter+1.18: panic in reflect2
-
What type of software do you write at your workplace?
https://github.com/json-iterator/go an alternative JSON encoding package which allows to stream (flush out) encoded data as soon as it's able to (which is in contrast with the stock package which buffers everything until the encoding is known to be complete and OK).
-
Some Go(lang) tips
What to use Easyjson is about the top of the pack and it's straightforward. The downside of efficient tools is that they use code generation to create the code required to turn your structs into json to minimise allocations. This is a manual build step which is annoying. Interestingly json-iterator also uses reflection but it's significantly faster. I suspect black magic.
-
What are your favorite packages to use?
jsoniter for low level access to JSON encode and decode
-
What is the best solution to unique data in golang
I think you have to parse the json, if you dont know exactly what you are looking for and want some validation und prevent manual parsing errors. For parsing big json files it is recommend to read and decode it as stream. Here is an example. If you have serious performance criteria take a look at jsoniter. It can be used as 1 to 1 replacement for standard library.
Takes like 10 minutes to write and parses very efficiently. https://github.com/json-iterator/go looks like it can provide such simple parsing
-
OjG now has a tokenizer that is almost 10 times faster than json.Decode
Need to compare with https://github.com/json-iterator/go too!
go-json
-
Using a json lib other than encoding/json
I suggested using https://github.com/goccy/go-json at my work, since its a drop in replacement for the standard lib, but there are people who apprehensive. In my opinion the performance gains are significant to justify adoption. But I'd like your input.
- Whats the fastest JSON unmarshaling package as of right now?
-
What are your favorite packages to use?
go-json for encoding/decoding
-
goccy/go-json: A super fast JSON library fully compatible with encoding/json
I develop a super fast JSON library ( https://github.com/goccy/go-json ) for Go .
Rather than explore the specific issues my tests found, I started playing with running https://github.com/dvyukov/go-fuzz against go-json which seems to have fairly quickly found some issues. I've opened https://github.com/goccy/go-json/issues/174 to start the conversation about how you want to proceed here.
The "How it works" section as well as the "Unique speed-up technique" just below it are fantastic.
Found some bugs: https://github.com/goccy/go-json/issues/116. You're welcome. Lib looks interesting, once you fix the bugs I'm willing to try it on a rather big project.
- Fast JSON encoder/decoder compatible with encoding/json for Go
What are some alternatives?
easyjson - Fast JSON serializer for golang.
mapstructure - Go library for decoding generic map values into native Go structures and vice versa.
compare-go-json - A comparison of several go JSON packages.
go-serializer - :loop: Serialize any custom type or convert any content to []byte or string, for Go Programming Language
goprotobuf - Go support for Google's protocol buffers
GJSON - Get JSON values quickly - JSON parser for Go
go-codec - idiomatic codec and rpc lib for msgpack, cbor, json, etc. msgpack.org[Go]
Gin - Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.
go-fuzz - Randomized testing for Go
colfer - binary serialization format