Skip to content
This repository has been archived by the owner on Aug 21, 2024. It is now read-only.
/ app-grpc Public archive
forked from spiral/app-grpc

Spiral Framework Skeleton GRPC Application: Queue, Console, ORM

License

Notifications You must be signed in to change notification settings

Koudy/app-grpc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spiral Framework

Spiral GRPC Application Skeleton Latest Stable Version

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.

About

Spiral Framework Skeleton GRPC Application: Queue, Console, ORM

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%