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. Learn more →
Top 23 protocol-buffer Open-Source Projects
-
Project mention: Reverse Engineering Protobuf Definitions from Compiled Binaries | news.ycombinator.com | 2024-03-09
For at least 4 years protobuf has had decent support for self-describing messages (very similar to avro) as well as reflection
https://github.com/protocolbuffers/protobuf/blob/main/src/go...
Xgooglers trying to make do on the cheap will just create a Union of all their messages and include the message def in a self-describing message pattern. Super-sensitive network I/O can elide the message def (empty buffer) and any for RecordIO clone well file compression takes care of the definition.
Definitely useful to be able to dig out old defs but protobuf maintainers have surprisingly added useful features so you don’t have to.
Bonus points tho for extracting the protobuf defs that e.g. Apple bakes into their binaries.
-
-
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.
-
Now let’s take a look at the source code of the protoc-gen-go plugin:
-
Project mention: 5 Open Source tools written in Golang that you should know about | dev.to | 2023-12-15
The Buf CLI is a versatile tool designed for handling Protocol Buffers (Protobuf), a method of serializing structured data. It offers several key features, including managing Protobuf assets through the Buf Schema Registry (BSR), providing a linter to enforce optimal API design and structure, and a breaking change detector to maintain compatibility either in source code or at the wire level. Additionally, the Buf CLI includes a generator that activates plugins based on user-defined templates and a formatter to standardize the formatting of Protobuf files according to industry norms. It also integrates seamlessly with the Buf Schema Registry, supporting comprehensive dependency management.
-
-
Rich Error Model: This model enables servers to return and clients to consume additional error details expressed as one or more protobuf messages. It further specifies a standard set of error message types to cover the most common error (QuotaFailure, PreconditionFailure, BadRequest, etc). When an error occurs, the server returns the appropriate status code along with an optional error message.
-
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
-
-
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.
-
Project mention: LinkedIn Adopts Protocol Buffers and Reduces Latency Up to 60% | news.ycombinator.com | 2023-07-19
-
-
-
-
Project mention: tRPC – Move Fast and Break Nothing. End-to-end typesafe APIs made easy | news.ycombinator.com | 2023-08-12
DX for front or back end? The beauty of tRPC is that the types are derived/inferred from the backend runtime code (like, as you type). It would be nigh impossible to do that with grpc(-web) using proto files as the source of truth.
It's possible there's a project out there which could automatically produce proto files from something like zod, json-schema, etc. which could be directly interpreted by TS to provide similar (as you type) DX while still allowing some other language backend to consume the derived proto files (though the DX there would be less than ideal).
If you're just looking for similar TS clients/interfaces for grpc-web then I'd recommend https://github.com/timostamm/protobuf-ts which operates on plain JS objects (no new MyMessage().serialize(), instead the code generator mostly produces TS interfaces for you to work against: const myMessage: MyMessage = pojoConformingToInterface; const binary = MyMessage.toBinary(myMessage);)
-
-
protobuf-es
Protocol Buffers for ECMAScript. The only JavaScript Protobuf library that is fully-compliant with Protobuf conformance tests.
Yes, you can. You are mistaking protobuf with gRPC. See this for more information.
-
-
-
protolock
Protocol Buffer companion tool. Track your .proto files and prevent changes to messages and services which impact API compatibility.
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
protocol-buffers related posts
- Reverse Engineering Protobuf Definitions from Compiled Binaries
- Eval("quire".replace(/^/,"re"))(moduleName)
- 5 Open Source tools written in Golang that you should know about
- Create Production-Ready SDKs With gRPC Gateway
- How we reverse-engineered Google Maps pagination
- Add extra stuff to a “standard” encoding? Sure, why not
- Nanopb – Protocol Buffers for Embedded Systems
-
A note from our sponsor - InfluxDB
www.influxdata.com | 18 Apr 2024
Index
What are some of the best open-source protocol-buffer projects? This list will help you:
Project | Stars | |
---|---|---|
1 | Protobuf | 63,498 |
2 | protobuf | 9,628 |
3 | goprotobuf | 9,534 |
4 | buf | 8,203 |
5 | awesome-grpc | 7,235 |
6 | googleapis | 6,500 |
7 | gogoprotobuf | 5,629 |
8 | evans | 4,111 |
9 | nanopb | 4,043 |
10 | protoc-gen-validate | 3,629 |
11 | protobuf-go | 2,680 |
12 | gnostic | 1,975 |
13 | grpc-swift | 1,945 |
14 | ts-protoc-gen | 1,324 |
15 | ScalaPB | 1,280 |
16 | go-proto-validators | 1,069 |
17 | protobuf-ts | 939 |
18 | protobuf-swift | 937 |
19 | protobuf-es | 927 |
20 | protobuf | 784 |
21 | pbf | 763 |
22 | protolock | 583 |
23 | go-plugin | 535 |