-
marshmallow
Marshmallow provides a flexible and performant JSON unmarshalling in Go. It specializes in dealing with unstructured struct - when some fields are known and some aren't, with zero performance overhead nor extra coding needed. (by PerimeterX)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Also, JSON marshaling and unmarshaling may also be an issue. C/C++ are quite varied - I suppose they either use the fields of the JSON as is, or use some ugly-ass macros (u/xkcd-Hyphen-bot, do your thing. It actually fits here), but Go entries would probably used the standard way to do this in Go - the encoding/json package - which needs to read and parse struct field tags at runtime. Does it at least cache the parsed definitions? From the complaints I see about it, I doubt it. Also, there seems to be Marshmallow that can do caching (among other optimizations) and greatly outperforms the build in one. I guess that means the standard library implementation doesn't do it? That would explain why the TechEmpower benchmark entries are so slow - I don't think they use Marshmallow. Marshmallow has less than 300 starts on GitHub, which is far less than what you would expect it to have if it was commonly used.
Related posts
-
Handling high-traffic HTTP requests with JSON payloads
-
JSON array with two different json objects
-
Help with calling function dynamically based on name
-
Marshmallow - a JSON unmarshalling library for flexible use cases like some known and some unknown fields, or prevention of data loss
-
How to use Templ with Goravel