
ProtoWeb
Protoweb is a tool for converting proto definitions into arbitrary JS/TS code that could be used in your organization.
Protocol buffers is an industry standard when it comes to building direct service-to-service communication. However, when used with the Google annotations extension to enable REST on-top of gRPC, it quickly becomes a hassle when running the thing in a front-end project, such as React or Vue-based one.
This is where Protoweb comes to the rescue: it converts messages to TS type definitions using protoc and protoc-gen-ts, and then flavours it with service definitions of your choice. These services can later be used in parts of the front-end app, for instance, in connection with react-query.
Write your proto files once, then never write typescript manually.
Under the hood Protoweb uses:
- Protoc and extensions of it,
- Another parser that creates the Abstract Syntax Tree of Protobuf files,
- Khan's algorithm for topological sorting of dependencies.