This tools for generating grpc files


License
MIT
Install
pip install grpc-tls==1.1.12

Documentation

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