title: Difference between Proto runtime and compiler
body: <p>Sorry for stupid question, but I am new to protobuf and there are 2 concepts mentioned in the context of it. Protobuf compiler and protobuf runtime. What is the difference between these and what do these exactly do?</p>
  <p>My understanding is that the public protobuf compiler is protoc, but there are probably other compilers out there too. It is a script that takes the .proto file and generates, say a .java class from it. Is that correct?</p>
  <p>But what is Protobuf Runtime? If Compiler already generates the .java file, what do we need runtime for? Is it similiar to Java Runtime in the sense of being a runtime library of its own with its own classes (that generated .Java classes might reference)?</p>