jsoniter
A high-performance 100% compatible drop-in replacement of "encoding/json" (by json-iterator)
logrus
Structured, pluggable logging for Go. (by sirupsen)
Our great sponsors
jsoniter | logrus | |
---|---|---|
12 | 32 | |
13,048 | 24,012 | |
0.8% | - | |
0.0 | 3.0 | |
18 days ago | 24 days ago | |
Go | Go | |
MIT License | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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
Posts with mentions or reviews of jsoniter.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-12-07.
-
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.
-
A Journey building a fast JSON parser and full JSONPath
We all know the builtin golang JSON parser is slow.
How about doing comparisons against other implementations?
Like this one: https://github.com/json-iterator/go
-
Polygon: Json Database System designed to run on small servers (as low as 16MB) and still be fast and flexible.
Json-iterator (https://github.com/json-iterator/go), you can replace all of encoding/json with this. It does the same thing but it's faster.
-
How can we umarshal a Big JSON effectively?
Do you want to look at every field all at the same time? If not, you can pick out individual fields. There's other packages such as https://github.com/tidwall/gjson or https://github.com/json-iterator/go that let you pass in paths such as "a.b.c" to extract single fields.
-
Designing a config API for microservices applications built using Go
For each Go type used within the config, we generate a separate unmarshaller function. The unmarshallers use json-iterator to process the output from CUE, while tracking the path within the config to the unmarshalled value. This path tracking will allow the function to check if live overrides have been provided on that path and return the override instead.
- 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
Takes like 10 minutes to write and parses very efficiently. https://github.com/json-iterator/go looks like it can provide such simple parsing
logrus
Posts with mentions or reviews of logrus.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-06-02.
-
Authentication system using Golang and Sveltekit - Initialization and setup
It's some sort of logging system well explained by Alex Edwards in Let’s Go Further. As stated, we could have used logrus or any other popular logging system in Go.
-
Renaming public Go modules
Option 2, please. You may not have been around for the logrus debacle, but it was a giant pain.
- What is the common log library which is industry standard that is used in server applications?
-
Observing AWS Lambda with Golang and Datadog
For the example I’m using the very popular logrus library and then I’m setting the log formatter to be JSON
-
Best Logging Library for Golang
For choosing the candidates for the poll, I didn't do any thorough research. I was looking for a library to use in my project at work, and I ended up at sirupsen/logrus which was already being used by one of the dependencies in that project.
-
Follow up to previous post: I contributed to an open source project outside working hours despite being asked not to. I was fired. No legal action.
I contribute to OSS as part of my job on the regular. The company is good about contributing upstream, signing CLAs, and all that. We still work against private forks for two main reasons: 1. Some changes that we need are not accepted by maintainers based on philosophical or architectural reasons that we can’t otherwise work around. You’re beholden to then unless you publicly fork the repo which has other legal/PR overhead for the company and OSS political implications. 2. Maintainers in the past have taken down repos, renamed repos, or changed the licensing on repos that have left us in a lurch. We always build against our own private forks because we need predictability and can’t be beholden to some other party for business continuity. We sync them down from the public upstream at our leisure.
-
Sourcehut will blacklist the Go module mirror
If they change the case on their username on the other hand, the Go ecosystem explodes: https://github.com/sirupsen/logrus/issues/570#issuecomment-3...
-
Lies we tell ourselves to keep using Golang
Like, for example, some projects importing logrus with a capital L and some with a lowercase L, and go modules having no way to reconcile the two: https://github.com/sirupsen/logrus/issues/553
-
go-coffeeshop - A practical coffee shop application event-driven microservices built with Golang
Ugh. Wish people would stop using logrus. It’s in maintenance mode and slow, especially its stack tracing.
- Criando uma API Rest com Fiber - Uma história pessoal de aprendizado
What are some alternatives?
When comparing jsoniter and logrus you can also consider the following projects:
go-json - Fast JSON encoder/decoder compatible with encoding/json for Go
zap - Blazing fast, structured, leveled logging in Go.
mapstructure - Go library for decoding generic map values into native Go structures and vice versa.
zerolog - Zero Allocation JSON Logger
easyjson - Fast JSON serializer for golang.
glog - Leveled execution logs for Go
goprotobuf - Go support for Google's protocol buffers
lumberjack - lumberjack is a log rolling package for Go
GJSON - Get JSON values quickly - JSON parser for Go
slog
compare-go-json - A comparison of several go JSON packages.
log15 - Structured, composable logging for Go