spiral/app-grpc

Spiral Skeleton GRPC Application

v1.0.6 2019-11-08 12:28 UTC

This package is auto-updated.

Last update: 2020-06-27 14:21:43 UTC


README

Spiral Framework

Spiral Framework is a High-Performance PHP/Go Full-Stack framework and group of over sixty PSR-compatible components. The Framework execution model based on a hybrid runtime where some services (GRPC, Queue, WebSockets, etc.) handled by Application Server RoadRunner and the PHP code of your application stays in memory permanently (anti-memory leak tools included).

App Skeleton (CLI, GRPC) | Documentation | Twitter | CHANGELOG | Contributing


Server Requirements

Make sure that your server is configured with following PHP version and extensions:

  • PHP 7.2+, 64bit
  • mb-string extension
  • PDO Extension with desired database drivers
  • Install protobuf-ext to gain higher performance.

Application Bundle

Application bundle includes the following components:

  • GRPC Server server based on RoadRunner
  • Console commands via Symfony/Console
  • Queue support for AMQP, Beanstalk, Amazon SQS, in-Memory
  • DBAL and migrations support
  • Monolog, Dotenv
  • Prometheus metrics
  • Cycle DataMapper ORM

Installation

composer create-project spiral/app-grpc

Application server will be downloaded automatically (php-curl and php-zip required).

Once the application is installed you can ensure that it was configured properly by executing:

$ php ./app.php configure

Running GRPC Server

In order to run GRPC server you must specify location of server key and certificate in .rr.yaml file:

grpc:
  listen: tcp://0.0.0.0:50051
  proto: "proto/service.proto"
  workers.command: "php app.php"
  tls.key:  "app.key"
  tls.cert: "app.crt"

To issue local certificate:

$ openssl req -newkey rsa:2048 -nodes -keyout app.key -x509 -days 365 -out app.crt

To start application server execute:

$ ./spiral serve -v -d

On Windows:

$ spiral.exe serve -v -d

You can test your endpoints using any GRPC client. For example using grpcui:

$ grpcui -insecure -import-path ./proto/ -proto service.proto localhost:50051

Make sure to use -insecure option while using a self-signed certificate.

Generating Services

In order to compile protobuf declarations into service code make sure to install:

To update or generate service code for your application run:

$ php ./app.php grpc:generate proto/service.proto

Generated code will be available in app/src/Service. Implemented service will be automatically registered in your application.

License:

MIT License (MIT). Please see LICENSE for more information. Maintained by Spiral Scout.