spiral / app-grpc
Spiral Skeleton GRPC Application
Installs: 809
Dependents: 0
Suggesters: 0
Security: 0
Stars: 35
Watchers: 7
Forks: 4
Open Issues: 1
Type:project
Requires
- php: >=8.1
- spiral/cycle-bridge: ^2.0
- spiral/framework: ^3.0
- spiral/queue: ^3.0
- spiral/roadrunner-bridge: ^2.0
- spiral/roadrunner-grpc: ^2.0
README
Warning
The repository is deprecated in favor of spiral/app
.
Spiral GRPC Application Skeleton
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 8.0+, 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
andphp-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" tls: key: "app.key" cert: "app.crt" pool: num_workers: 2 supervisor: max_worker_memory: 100
To issue local certificate:
$ openssl req -newkey rsa:2048 -nodes -keyout app.key -x509 -days 365 -out app.crt
To start application server execute:
$ ./rr serve
On Windows:
$ rr.exe serve
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
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.