Skip to main content

This tools for generating grpc files

Project description

# gRPC tools
This is tool for auto generating *.proto and mapping django model with protobuf.

## Requirements
- Python (2.7, 3.4, 3.5, 3.6, 3.7)
- Django (1.11, 2.0, 2.1, 2.2)

## Installation
Install using pip
```
pip install grpc-tls
```

Add 'grpc_tls' to your INSTALLED_APPS setting.
```
INSTALLED_APPS = (
...
'grpc_tls',
)
```

Update list apps your want migrate to protobuf:
`GRPC_TLS_MODELS_APP=['core']`

Update proto file name:
`GRPC_TLS_BASE_PROTO='app_name'`.

*Note*: This name must be unique if your app run multiple *.proto file

## Usage
Generate *.proto file
```
python manage.py grpc_tls
```

All files will be generated in `grpc_dir/*`

## Example
Let's take a look at a quick example of running gRPC server.

First generate proto files by running command line above.

Then create a django command line: `run_grpc.py`.
```
import grpc
from concurrent import futures
from django.core.management.base import BaseCommand

from grpc_dir import auto_grpc_app, grpc_app_pb2_grpc

class Command(BaseCommand):
help = 'Start gRPC server'

def handle(self, *args, **options):
server = grpc.server(futures.ThreadPoolExecutor(
max_workers=10))
grpc_app_pb2_grpc.add_GRPCAPPServicer_to_server(
auto_grpc_app.AutoGRPC(), server)
server.add_insecure_port('[::]:50051')
server.start()
print('server started on port 50051 ...')
try:
while True:
pass
except KeyboardInterrupt:
server.stop(0)
```

Start gRPC server:
```
python manage.py run_grpc
```
You can now send request at `http://127.0.0.1:50051/`

## Notes
DO NOT FILES IN `grpc_dir`

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for grpc-tls, version 1.1.12
Filename, size & hash File type Python version Upload date
grpc-tls-1.1.12.tar.gz (8.2 kB) View hashes Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page