Metadata-Version: 2.1
Name: python-fast-grpc
Version: 0.2.0
Summary: Fast to Code gRPC in Python
Author: taogeYT
Author-email: li_yatao@outlook.com
Requires-Python: >=3.9,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: grpcio (>=1.53.0,<2.0.0)
Requires-Dist: grpcio-tools (>=1.53.0,<2.0.0)
Requires-Dist: jinja2 (>=3.1.5,<4.0.0)
Requires-Dist: logzero (>=1.7.0,<2.0.0)
Requires-Dist: protobuf (>=4.22.0,<5.0.0)
Requires-Dist: pydantic (>=2.0,<3.0)
Description-Content-Type: text/markdown

# fast-grpc
Fast to Code gRPC in Python 3.9+

# Installation
Require Python 3.9+
```shell
pip install python-fast-grpc
```

# Quick start
1. Run a gRPC application
```python
from pydantic import BaseModel
from fast_grpc import FastGRPC

app = FastGRPC(service_name="Greeter", proto="greeter.proto")

class HelloRequest(BaseModel):
    name: str

class HelloReply(BaseModel):
    message: str

@app.unary_unary()
async def say_hello(request: HelloRequest) -> HelloReply:
    return HelloReply(message=f"Greeter SayHello {request.name}")

# this step will generate .proto file and python gRPC code, then start a grpc server
app.run()
```
2. Client invoke
```python
import grpc
import greeter_pb2 as pb2
import greeter_pb2_grpc as pb2_grpc

channel = grpc.insecure_channel("127.0.0.1:50051")
stub = pb2_grpc.GreeterStub(channel)
response = stub.SayHello(pb2.HelloRequest(name="fastGRPC"))
print("Greeter client received: ", response)
```

