sonic
json5-spec
sonic | json5-spec | |
---|---|---|
23 | 7 | |
6,336 | 49 | |
2.1% | - | |
8.0 | 2.2 | |
3 days ago | 12 months ago | |
Assembly | HTML | |
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.
sonic
- How to Visualize and Analyze Data in Open Source Communities
-
Handling high-traffic HTTP requests with JSON payloads
Since most of the time would be spent decoding json, you could try to cut this time using https://github.com/bytedance/sonic or https://github.com/json-iterator/go, both are drop-in replacements for the stdlib, sonic is faster.
- Building a Streaming Platform in Go for Postgres
-
Building a high performance JSON parser
Also worth looking at https://github.com/bytedance/sonic
- Sonic: A fast JSON serializing and deserializing library in Go
- sonic/INTRODUCTION.md at main · bytedance/sonic
-
High-performance JSON parsing in Go
The article inside does not mention this.
-
Toward the Fastest, Compatible JSON Decoder – Sonnet
Good morning.I hope this is not the wrong place to post… so let me introduce my first public Golang package. This is a JSON decoder called Sonnet ( https://github.com/sugawarayuuta/sonnet ) that has given faster results (at least in my environment) than Sonic - https://github.com/bytedance/sonic (which is said that it's the fastest) without the help of assembly!
JSON is a very well-known file format. It is used by everyone who does programming. However, it is also not uncommon to find problems with encoding/json and other third-party libraries. for more… (see https://github.com/sugawarayuuta/sonnet#problems-we-had )
I decided to create a new, standard library-compatible decoder that would be both easy to use and fast.
Thanks for reading, feel free to use, help, or ask questions, I look forward to hearing from you. All benchmarks and other information can be found in the link at the top.
-
Toward the Fastest, Compatible JSON Decoder - Sonnet
Good morning. Let me introduce my first public Go package. This is a JSON decoder called Sonnet ( https://github.com/sugawarayuuta/sonnet ) that has given faster results (at least in my environment) than Sonic (which is said that it's the fastest) without the help of assembly!
-
Looking back on framework benchmark (updates = db writes) what can make Go improved back to be top 10?
I'd say the https://github.com/bytedance/sonic has the fastest encoder due to C and assembly optimization. (Use at your own risk.)
json5-spec
- Building a high performance JSON parser
-
TySON: a native go library that lets you use TypeScript as an embedded configuration language without depending on Node or V8
One of the larger issues I've run into is duplicates. Douglas Crockford, JSON's inventor, tried to fix the duplicate issue but it was decided it was too late. Although Douglas Crockford couldn't change the spec forcing all implementations to error on duplicate, his Java JSON implementation errors on duplicates. Others use last-value-wins, support duplicate keys, or other non-standard behavior. The JSON RFC states that implementations should not allow duplicate keys, notes the varying behavior of existing implementations, and states that when names are not unique, "the behavior of software that receives such an object is unpredictable." Duplicate fields are a security issue, a source of bugs, and a surprising behavior to users. See the article, "An Exploration of JSON Interoperability Vulnerabilities" Disallowing duplicates conforms to the small I-JSON RFC, which is a stricter JSON. The author of I-JSON, Tim Bray, is also the author of JSON RFC 8259. See also the JSON5 duplicate issue.
- JavaScript Gom Jabbar
-
SQLite Release 3.42.0
Virtually any sequence is not the same as adopting a specification five years after it’s been published and adopted by industry: https://spec.json5.org/
I appreciate that SQLite can’t write the format, because those changes are human afordances
-
The yaml document from hell
That's why you pick a superset of JSON that already has some adoption, like JSON5: https://spec.json5.org/
-
Don't Pickle Your Data
The "dual" standard RFC 8259 [1] (both are normative standards under their respective bodies, ECMA and IETF) is also a useful comparison here. It's wording is a bit stronger than ECMA's, though not by much. ("Good interoperability" is its specific call out.)
It's also interesting that the proposed JSON 5 (standalone) specification [2] doesn't seem to address it at all (but does add back in the other IEEE 754 numbers that ECMA 404 and RFC 8259 exclude from JSON; +/-Infinity and +/-NaN). It both maintains that its numbers are "arbitrary precision" but also requires these few IEEE 754 features, which may be even more confusing than either ECMA 404 or RFC 8259.
[1] https://datatracker.ietf.org/doc/html/rfc8259#section-6
[2] https://spec.json5.org/#numbers
-
JSON Creator Douglas Crockford Interview
For anyone coming back to this, I just wrote a small proposal to define JSON5 duplicate object name behavior. I'd love any support on the issue:
https://github.com/json5/json5-spec/issues/38
What are some alternatives?
jsoniter - Using encoding/json to load parts of a large json document
aqua - Declarative CLI Version manager written in Go. Support Lazy Install, Registry, and continuous update with Renovate. CLI version is switched seamlessly
fastjson - Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection
tyson - 🥊 TypeScript as a Configuration Language. TySON stands for TypeScript Object Notation
encoding - Go package containing implementations of efficient encoding, decoding, and validation APIs.
jsb - Fast json <=> binary serializer library for C
simdjson - Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks
lua-sandbox - A lua sandbox for executing non-trusted code
simdjson-go - Golang port of simdjson: parsing gigabytes of JSON per second
parcel - The zero configuration build tool for the web. 📦🚀
json-iterator - Low level iterator on the records inside large JSON file.
go-jsonschema - A tool to generate Go data types from JSON Schema definitions.