I develop a library goccy/go-yaml for manipulating YAML in Go. Go already has a major library github.com/go-yaml/yaml, but I wanted a new library for various reasons, so I decided to make it myself from scratch.
This library is a major library among Japanese Gophers as well as github.com/go-yaml/yaml. It is used by many companies and OSS. However, I would like more people outside of Japan to use it.
Perhaps you're wondering why you need to use github.com/goccy/go-yaml instead of github.com/go-yaml/yaml. The reason is I wrote it in the README.
Of course, github.com/go-yaml/yaml is a great library. But in many cases I also believe that github.com/goccy/go-yaml will also help your development.
If you like it, please give it a try. And I would be grateful if you could give me feedback.
Finaly, This library is developed in my personal time. I develop many other OSSs, and depending on the development priority, I may not be able to immediately respond to feature requests. If you have a request for github.com/goccy/go-yaml, please consider sponsoring. I get new vitality thanks to the sponsors. I also strive to meet the needs of sponsors as much as possible.
I develop a library goccy/go-yaml for manipulating YAML in Go.
Go already has a major library github.com/go-yaml/yaml, but I wanted a new library for various reasons, so I decided to make it myself from scratch.
This library is a major library among Japanese Gophers as well as github.com/go-yaml/yaml.
It is used by many companies and OSS. However, I would like more people outside of Japan to use it.
Perhaps you're wondering why you need to use github.com/goccy/go-yaml instead of github.com/go-yaml/yaml.
The reason is I wrote it in the README.
Of course, github.com/go-yaml/yaml is a great library.
But in many cases I also believe that github.com/goccy/go-yaml will also help your development.
If you like it, please give it a try. And I would be grateful if you could give me feedback.
Finaly, This library is developed in my personal time.
I develop many other OSSs, and depending on the development priority, I may not be able to immediately respond to feature requests.
If you have a request for github.com/goccy/go-yaml, please consider sponsoring.
I get new vitality thanks to the sponsors. I also strive to meet the needs of sponsors as much as possible.
I tried to compare it with simdjson-go, but the interface of this library is very different from other libraries and it was difficult to compare. However, I think simdjson-go has the best decoder performance.
Thank you for your feedback! In fact, it's understandable to be scared because it uses a lot of uncommon techniques. By growing this project, I would like to be able to use advanced techniques with peace of mind.
Improvement suggestion: While reading the README, the JSON library comparison [1] it's confusing, at least to me. It uses symbols like: ○, and △ which are not obvious. I would rather use "yes/no" or the classic check/x (unicode chars, HN does not support them here) if you want to use symbols. I don't know what "△" even means, so I cannot suggest an alternative.
Another suggestion in the chart: it isn't obvious which line is about your project because it doesnt list the `goccy/` part. I would add that and move it to the top, out it and the standard in bold.
How does it handle de-serializing to structs with interface members? With encoding/json and ffjson, I had to write some code to handle that myself and add a type-tag member to my struct, which wasn't a deal-breaker, but if I could avoid that, I would like that very much.
I think it depends on the application. In many cases, encoding/json is fast enough and stable, but I think you can try to use a faster library if JSON encoding / decoding is performance critical on your application.
If you write off the "JSON", sure, there's a bajillion options. But that's not always possible or desirable. None of those bajillion options have the combination of support and mindshare that JSON has obtained, for better or worse.
Perhaps you're wondering why you need to use github.com/goccy/go-yaml instead of github.com/go-yaml/yaml. The reason is I wrote it in the README.
Of course, github.com/go-yaml/yaml is a great library. But in many cases I also believe that github.com/goccy/go-yaml will also help your development.
If you like it, please give it a try. And I would be grateful if you could give me feedback.
Finaly, This library is developed in my personal time. I develop many other OSSs, and depending on the development priority, I may not be able to immediately respond to feature requests. If you have a request for github.com/goccy/go-yaml, please consider sponsoring. I get new vitality thanks to the sponsors. I also strive to meet the needs of sponsors as much as possible.