14
votes

We are close to 100 .proto files, where every may define around 10 IDL structures (like service or message).

Is there a way to visualize of of them, including references (from one file to other). For example similar to UML class diagram.

Possibly there are configurable visualizer for Java/C++.

Quote from https://developers.google.com/protocol-buffers/docs/overview

Protocol buffers are now Google's lingua franca for data – at time of writing, there are 48,162 different message types defined in the Google code tree across 12,183 .proto files.

I wonder how they handle this.

2
Google doesn't have this problem. It's pretty rare in practice to need to visualize protos. Do you have a specific problem you want to solve? How would visualizing help that problem? - Carl Mastrangelo

2 Answers

12
votes

I have similar problem: I'm trying to read huge amount of protobufs and understand relation between them. It would be very useful to build a visual representation of them to see what's available and how they're connected to each other.

I've found several projects, maybe they would help someone:

Though, for me they didn't worked well for different reasons, but you can try them.

11
votes

https://github.com/seamia/protodot

  • Super easy to use and pretty powerful tool
  • Generates .dot (and .svg/.png if graphviz is installed) files from .proto
  • Discovers all the dependencies and doesn't require all of them to be present
  • Filters by specified resources (messages, rpcs, services, enums)
  • Can generate import dependency graph