sintaxis de gRPC / Protobuf 3: ¿cuál es la diferencia entre las líneas rpc que terminan con punto y coma versus '{}'?

He visto dos formas diferentes de declarar un servicio gRPC usando Protobuf v3. Algún código tiene elfinal de línea rpc con punto y coma (como la documentación actual de proto3):

service SearchService {
  rpc Search (SearchRequest) returns (SearchResponse);
}

Otroel código tiene el final de la línea rpc con {}:

service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

Ambos compilan con el compilador de protocolo v3.0.0-alpha-2 y producen el mismo código (ir).

¿Cuál es la diferencia entre las dos sintaxis?

Respuestas a la pregunta(1)

Su respuesta a la pregunta