protolint
go-exhaustruct
protolint | go-exhaustruct | |
---|---|---|
3 | 5 | |
513 | 100 | |
- | 4.0% | |
7.8 | 7.2 | |
1 day ago | 8 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.
protolint
-
Understanding gRPC Concepts, Use Cases & Best Practices
protolint - a plugin to add lint rules to proto files.
-
gRPC proto files Best Practices
We use protolint to lint the proto files. Please download and install protolint from https://github.com/yoheimuta/protolint/releases.
- Pluggable linting utility for Protocol Buffer files
go-exhaustruct
-
I write HTTP services in Go after 13 years (Mat Ryer, 2024)
Because go doesn’t have exhaustiveness checking when initialising structs. Instead it encourages “make the zero value meaningful” which is not always possible not desirable. I usually use a linter to catch this kind of problem https://github.com/GaijinEntertainment/go-exhaustruct
-
allfields - new linter for copy data from one struct to another
That's why golangci-lint has both exhaustivestruct as well as exhaustruct already.
-
How to ensure required fields in struct consistently?
Have you consider adding a linter as part of you build process to detect those un-initialized fields? Like go-exhaustruct, (it's already included in golangci-lint if you use that already)
-
Obsticals of migrating from Typescript to Rust
I moved from typescript to golang and I can't recommend it enough. And you'll avoid most undefined / nil exceptions if you use the exhaustruct linter.
What are some alternatives?
protolock - Protocol Buffer companion tool. Track your .proto files and prevent changes to messages and services which impact API compatibility.
golangci-lint - Fast linters Runner for Go
goprotobuf - Go support for Google's protocol buffers
validator - :100:Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving
evans - Evans: more expressive universal gRPC client
jiffies - JEFRi Jiffies: minimal helpers & polyfills.
pre-commit - A framework for managing and maintaining multi-language pre-commit hooks.
exhaustivestruct
go-proto-validators - Generate message validators from .proto annotations.
fx - A dependency injection based application framework for Go.
Protobuf - Protocol Buffers - Google's data interchange format
dep-tree - tool for helping developers keep their code bases clean and decoupled. It allows visualising a "code base entropy" using a 3d force-directed graph of files and the dependencies between.