{"id":15489287,"url":"https://github.com/spiral/app-grpc","last_synced_at":"2025-06-24T21:11:25.985Z","repository":{"id":45550286,"uuid":"188208306","full_name":"spiral/app-grpc","owner":"spiral","description":"Spiral Framework Skeleton GRPC Application: Queue, Console, ORM","archived":false,"fork":false,"pushed_at":"2024-09-04T07:33:24.000Z","size":68,"stargazers_count":35,"open_issues_count":1,"forks_count":3,"subscribers_count":6,"default_branch":"1.0","last_synced_at":"2025-06-13T20:04:47.897Z","etag":null,"topics":["grpc","orm","php","php7","protobuf","queue","skeleton","spiral"],"latest_commit_sha":null,"homepage":"https://spiral.dev/","language":"PHP","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spiral.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-23T09:59:08.000Z","updated_at":"2025-05-24T14:32:11.000Z","dependencies_parsed_at":"2024-12-17T20:05:45.696Z","dependency_job_id":"0359f69b-fde9-4e46-b206-430fa6e31464","html_url":"https://github.com/spiral/app-grpc","commit_stats":{"total_commits":62,"total_committers":5,"mean_commits":12.4,"dds":"0.20967741935483875","last_synced_commit":"eccb5c2c31b8f5707d6343ebc49d457bc70bee40"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/spiral/app-grpc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiral%2Fapp-grpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiral%2Fapp-grpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiral%2Fapp-grpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiral%2Fapp-grpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spiral","download_url":"https://codeload.github.com/spiral/app-grpc/tar.gz/refs/heads/1.0","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiral%2Fapp-grpc/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261756769,"owners_count":23205160,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["grpc","orm","php","php7","protobuf","queue","skeleton","spiral"],"created_at":"2024-10-02T07:04:49.426Z","updated_at":"2025-06-24T21:11:25.964Z","avatar_url":"https://github.com/spiral.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!WARNING]\n\u003e # The repository is deprecated in favor of [`spiral/app`](https://github.com/spiral/app).\n\n\u003cdetails\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/2461257/112313394-d926c580-8cb8-11eb-84ea-717df4e4d167.png\" width=\"400\" alt=\"Spiral Framework\"\u003e\n\u003c/p\u003e\n\n# Spiral GRPC Application Skeleton [![Latest Stable Version](https://poser.pugx.org/spiral/app-grpc/version)](https://packagist.org/packages/spiral/app-grpc)\n\nSpiral 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](https://github.com/spiral/roadrunner) and the PHP code of your application stays in memory permanently (anti-memory leak tools included).\n\n[App Skeleton](https://github.com/spiral/app) ([CLI](https://github.com/spiral/app-cli), [GRPC](https://github.com/spiral/app-grpc)) | [**Documentation**](https://spiral.dev/docs) | [Twitter](https://twitter.com/spiralphp) | [CHANGELOG](/CHANGELOG.md) | [Contributing](https://github.com/spiral/guide/blob/master/contributing.md)\n\n\u003cbr/\u003e\n\nServer Requirements\n--------\nMake sure that your server is configured with following PHP version and extensions:\n* PHP 8.0+, 64bit\n* **mb-string** extension\n* PDO Extension with desired database drivers\n* [Install](https://github.com/protocolbuffers/protobuf/tree/master/php) `protobuf-ext` to gain higher performance. \n\nApplication Bundle\n--------\nApplication bundle includes the following components:\n* GRPC Server server based on [RoadRunner](https://roadrunner.dev)\n* Console commands via Symfony/Console\n* Queue support for AMQP, Beanstalk, Amazon SQS, in-Memory\n* DBAL and migrations support\n* Monolog, Dotenv\n* Prometheus metrics\n* [Cycle DataMapper ORM](https://github.com/cycle)\n\nInstallation\n--------\n```\ncomposer create-project spiral/app-grpc\n```\n\n\u003e Application server will be downloaded automatically (`php-curl` and `php-zip` required).\n\nOnce the application is installed you can ensure that it was configured properly by executing:\n\n```\n$ php ./app.php configure\n```\n\n## Running GRPC Server\nIn order to run GRPC server you must specify location of server key and certificate in `.rr.yaml` file:\n\n```yaml\ngrpc:\n    listen: \"tcp://0.0.0.0:50051\"\n    proto:\n        - \"proto/service.proto\"\n    tls:\n        key: \"app.key\"\n        cert: \"app.crt\"\n    pool:\n        num_workers: 2\n        supervisor:\n            max_worker_memory: 100\n```\n\nTo issue local certificate:\n\n```\n$ openssl req -newkey rsa:2048 -nodes -keyout app.key -x509 -days 365 -out app.crt\n```\n\nTo start application server execute:\n\n```\n$ ./rr serve\n```\n\nOn Windows:\n\n```\n$ rr.exe serve\n```\n\nYou can test your endpoints using any GRPC client. For example using [grpcui](https://github.com/fullstorydev/grpcui):\n\n```\n$ grpcui -insecure -import-path ./proto/ -proto service.proto localhost:50051\n``` \n\n\u003e Make sure to use `-insecure` option while using a self-signed certificate.\n\nGenerating Services\n--------\nIn order to compile protobuf declarations into service code make sure to install:\n* [protoc compiler](https://github.com/protocolbuffers/protobuf)\n* [protoc-gen-php-grpc plugin](https://github.com/spiral/php-grpc)\n\nTo update or generate service code for your application run:\n\n```\n$ php ./app.php grpc:generate\n```\n\nGenerated code will be available in `app/src/Service`. Implemented service will be automatically registered in your application.\n\nLicense:\n--------\nMIT License (MIT). Please see [`LICENSE`](./LICENSE) for more information. Maintained by [Spiral Scout](https://spiralscout.com).\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspiral%2Fapp-grpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspiral%2Fapp-grpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspiral%2Fapp-grpc/lists"}