SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Go protocol-buffer Projects
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
Buf CLI itself is licensed under a permissive Apache 2.0 License [0]. Buf distinguishes a few types of plugins: the most important being local and remote.
Local plugins are executables installed on your own machine, and Buf places no restrictions on use of those. Since Buf is a compiler, its output cannot be copyrighted (similar to proprietary or GPL licensed compilers). DISCLAIMER: I am not a lawyer. But it is my understanding that if you only use Buf with local plugins, law-wise you should be in the clear.
Remote plugins are hosted on BSR (Buf Schema Registry) servers [1], which are rate limited. All remote plugins are also available as local plugins if you install them.
Additionally, BSR also offers hosting of user proto schemas and plugins, and this is where pricing comes in [2].
[0] https://github.com/bufbuild/buf/blob/main/LICENSE
-
The Go tooling for gRPC is inexplicably bad, both in terms of ergonomics and in terms of performance.
The GoGoProtobuf [1] project was started to improve both. It would generate nice Go types that followed Go's conventions. And it uses fast binary serialization without needing to resort to reflection.
Unfortunately, the gRPC/Protobuf team(s) at Google is famously resistant to changes, and was unwilling to work with the GoGo. As a result, the GoGo project is now dead. [2]
I've never used Buf, but it looks like it might fix most of the issues with the Go support.
[1] https://github.com/gogo/protobuf
[2] https://x.com/awalterschulze/status/1584553056100057088
-
Project mention: gRPC Quick start - Coding with streams and bidirectional streaming | dev.to | 2024-06-13
You should see the Server starting on port :50051 message. To interact with the gRPC server, we will use Evans, which is an interactive command-line client for gRPC. You can read more about it here and can install using docker docker run --rm --network host -it ghcr.io/ktr0731/evans --host localhost --port 50051 --reflection. This method is not recommended, but in our case, it will be fine. If everything worked correctly, you must see something like this in your terminal:
-
protoc-gen-validate
Protocol Buffer Validation - Being replaced by github.com/bufbuild/protovalidate
-
Project mention: Fivefold Slower Compared to Go? Optimizing Rust's Protobuf Decoding Performance | news.ycombinator.com | 2024-04-12
-
gnostic
A compiler for APIs described by the OpenAPI Specification with plugins for code generation and other API support tasks.
-
-
I'm surprised the author doesn't mention ConnectRPC: https://connectrpc.com/
It solves ALL the problems of vanilla gRPC, and it even is compatible with the gRPC clients! It grew out of Twirp protocol, which I liked so much I made a C++ implementation: https://github.com/Cyberax/twirp-cpp
But ConnectRPC guys went further, and they built a complete infrastructure for RPC. Including a package manager (buf.build), integration with observability ( https://connectrpc.com/docs/go/observability/ ).
And most importantly, they also provide a library to do rich validation (mandatory fields, field limits, formats, etc): https://buf.build/bufbuild/protovalidate
Oh, and for the unlimited message problem, you really need to use streaming. gRPC supports it, as does ConnectRPC.
-
protolock
Protocol Buffer companion tool. Track your .proto files and prevent changes to messages and services which impact API compatibility.
-
-
-
-
grpc-federation
gRPC Federation generates a gRPC server by writing a custom option in Protocol Buffers
Project mention: gRPC Federation – Taking Protocol Buffers to the Next Level | news.ycombinator.com | 2024-08-26 -
-
protocurl
protoCURL is cURL for Protobuf: The command-line tool for interacting with Protobuf over HTTP REST endpoints using human-readable text formats
-
-
-
-
-
-
-
Go protocol-buffers discussion
Go protocol-buffers related posts
-
Go Protobuf: The New Opaque API
-
Using gRPC for (local) inter-process communication – F. Werner's Research Page
-
gRPC: The Bad Parts
-
Build your Service Mesh [Part 1]
-
Building a gRPC Server with NestJS and Buf: A Comprehensive Showcase
-
5 Open Source tools written in Golang that you should know about
-
Create Production-Ready SDKs With gRPC Gateway
-
A note from our sponsor - SaaSHub
www.saashub.com | 14 Jan 2025
Index
What are some of the best open-source protocol-buffer projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | goprotobuf | 9,831 |
2 | buf | 9,396 |
3 | gogoprotobuf | 5,666 |
4 | evans | 4,309 |
5 | protoc-gen-validate | 3,836 |
6 | protobuf-go | 2,986 |
7 | gnostic | 2,137 |
8 | go-proto-validators | 1,084 |
9 | protovalidate | 979 |
10 | protolock | 609 |
11 | go-plugin | 610 |
12 | protolint | 590 |
13 | grpc-graphql-gateway | 387 |
14 | grpc-federation | 324 |
15 | protovalidate-go | 311 |
16 | protocurl | 243 |
17 | aip-go | 172 |
18 | remoteAudio | 167 |
19 | protobuf-bigquery-go | 50 |
20 | goomerang | 40 |
21 | protoxy | 35 |
22 | go-grpc | 17 |
23 | protobson | 17 |