{"id":19312188,"url":"https://github.com/bigcommerce/gruf-demo","last_synced_at":"2025-07-30T07:40:12.137Z","repository":{"id":24558364,"uuid":"99969651","full_name":"bigcommerce/gruf-demo","owner":"bigcommerce","description":"A demonstration Rails application utilizing gruf, a gRPC Rails framework.","archived":false,"fork":false,"pushed_at":"2023-08-19T01:50:52.000Z","size":130,"stargazers_count":66,"open_issues_count":3,"forks_count":12,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-04-22T15:45:00.073Z","etag":null,"topics":["grpc","gruf","protobuf","rails","ruby"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"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/bigcommerce.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2017-08-10T22:28:18.000Z","updated_at":"2025-03-13T15:31:34.000Z","dependencies_parsed_at":"2024-11-10T00:43:40.158Z","dependency_job_id":null,"html_url":"https://github.com/bigcommerce/gruf-demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bigcommerce/gruf-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigcommerce%2Fgruf-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigcommerce%2Fgruf-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigcommerce%2Fgruf-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigcommerce%2Fgruf-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bigcommerce","download_url":"https://codeload.github.com/bigcommerce/gruf-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigcommerce%2Fgruf-demo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260895618,"owners_count":23078855,"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","gruf","protobuf","rails","ruby"],"created_at":"2024-11-10T00:33:28.538Z","updated_at":"2025-06-20T06:33:08.438Z","avatar_url":"https://github.com/bigcommerce.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gruf Demo Rails Application\n\nThis is a demo Rails application that utilizes [gruf](https://github.com/bigcommerce/gruf) 2.15+, a gRPC Ruby framework.\n\nThis application is running Rails 6.1 in Ruby 3.1.\n\n## Running\n\nCopy the `.env-example` file to `.env`, then set the database URL as `DATABASE_URL`. Next:\n\n```bash\nbundle install\nbundle exec rake db:create db:migrate\nbundle exec rake db:seed\nbundle exec gruf\n```\n\nAlternatively, you can run `./script/e2e` to automatically run a server and issue a set of different types\nof requests against it.\n\n## Testing with a Client\n\nThen in another console, you can run provided rake tasks to see it in action.\n\n### Request/Response (Get a Product)\n\n```bash\nbundle exec rake test:get_product\n```\n\n### Server Streamer (Get a list of Products)\n\n```bash\nbundle exec rake test:get_products\n```\n\n### Client Streamer (Create a list of Products)\n\n```bash\nbundle exec rake test:create_products\n```\n\n### Bidirectional Streamer (Create a list of Products and get back responses immediately in stream)\n\n```bash\nbundle exec rake test:create_products_in_stream\n```\n\n## In Docker\n\nThis repository is also setup to run in a Docker container with docker-compose:\n\n```bash\ndocker-compose up\n```\n\nThen, find the port docker exposed, and in another terminal, you can demo with:\n\n```\nGRPC_SERVER_URL=IP_OF_YOUR_DOCKER_INSTANCE:PORT_THAT_WAS_EXPOSED bundle exec rake test:get_product\n```\n\n## License\n\nCopyright (c) 2017-present, BigCommerce Pty. Ltd. All rights reserved\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated\ndocumentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit\npersons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the\nSoftware.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE\nWARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\nOTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbigcommerce%2Fgruf-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbigcommerce%2Fgruf-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbigcommerce%2Fgruf-demo/lists"}