Skip to content

Latest commit

 

History

History

pb-and-grpc.07.11.2024

Знакомство с Protobuf и gRPC. Работа с gRPC на Python

Ссылки

Шаги

  • настроили Poetry
  • установили Python пакет protobuf
  • поставили protobuf на macOS командой
    brew install protobuf
  • компилируем протокол на Python
    protoc --proto_path=protos --python_out=./pb protos/hello.proto
  • компилируем протокол в Python плюс аннотации типов
    protoc --proto_path=protos --python_out=./pb --pyi_out=./pb protos/hello.proto
  • установили Python пакет grpcio
  • установили Python пакет grpcio-tools
  • описали сервис Greeter
  • компилируем командой
    python -m grpc_tools.protoc --proto_path=protos --python_out=./pb --pyi_out=./pb --grpc_python_out=./pb protos/hello.proto
  • правим импорт
  • реализуем сервисер
  • запускаем сервер
  • вызываем клиент

Example stream:

# client
def request_iter():
    for idx in range(5):
        yield service_pb2.HelloRequest(name=f"Stream #{idx}")


stub.GreetStream(request_iter())

# server
for r in request_iter:
    print(f"Stream request {r}")
    yield service_pb2.HelloReply(message=f"Hello, {r.name}!")