{"id":20187614,"url":"https://github.com/humbertodias/unity-grpc-min","last_synced_at":"2026-05-02T08:32:33.636Z","repository":{"id":133699020,"uuid":"158701297","full_name":"humbertodias/unity-grpc-min","owner":"humbertodias","description":"Minimal GRPC unary server/client using Unity as Client.","archived":false,"fork":false,"pushed_at":"2019-11-23T11:32:47.000Z","size":256,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-23T08:59:48.622Z","etag":null,"topics":["grpc","python","unity"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/humbertodias.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2018-11-22T13:11:51.000Z","updated_at":"2021-08-13T12:44:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"722ecab0-250a-4048-80d1-5d3b267935f6","html_url":"https://github.com/humbertodias/unity-grpc-min","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/humbertodias/unity-grpc-min","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humbertodias%2Funity-grpc-min","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humbertodias%2Funity-grpc-min/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humbertodias%2Funity-grpc-min/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humbertodias%2Funity-grpc-min/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/humbertodias","download_url":"https://codeload.github.com/humbertodias/unity-grpc-min/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humbertodias%2Funity-grpc-min/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32528223,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T01:12:54.858Z","status":"online","status_checked_at":"2026-05-02T02:00:05.923Z","response_time":132,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","python","unity"],"created_at":"2024-11-14T03:25:09.270Z","updated_at":"2026-05-02T08:32:33.608Z","avatar_url":"https://github.com/humbertodias.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unity-GRPC-min\n\nMinimal GRPC unary server/client using Unity as Client.\n\n# Deps\n\n* Make\n* Unity 2018.2+\n* Python 2\n\n# Arch\n\n![](doc/grpc-unary-with-unity.png)\n\n\n## Proto\n\n```proto\n// For Unity\noption csharp_namespace = \"Pj.Grpc.Sample\";\npackage helloworld;\n\n// The greeting service definition.\nservice Greeter {\n  // Sends a greeting\n  rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n  string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n  string message = 1;\n}\n```\n\n## Server\n\n```python\nclass Greeter(helloworld_pb2_grpc.GreeterServicer):\n    def SayHello(self, request, context):\n        return helloworld_pb2.HelloReply(message='Hello, %s!' % request.name)\n```\nor\n\n```go\nfunc (*server) SayHello(ctx context.Context, req *pb.HelloRequest) (*pb.HelloReply, error) {\n\tfmt.Printf(\"Greet function was involked with %v\\n\", req)\n\tresult := \"Hello \" + req.GetName()\n\tres := \u0026pb.HelloReply{\n\t\tMessage: result,\n\t}\n\treturn res, nil\n}\n```\n\n## Client\n\n```csharp\npublic void Say()\n{\n    Channel channel = new Channel(ip + \":\" + port, ChannelCredentials.Insecure);\n    var client = new Greeter.GreeterClient(channel);\n    string name = Application.platform.ToString();\n\n    var reply = client.SayHello(new HelloRequest { Name = name });\n    Debug.Log(\"reply: \" + reply.Message);\n    text.text = \"reply: \" + reply.Message;\n\n    channel.ShutdownAsync().Wait();\n}\n```\n\n# Build\n\n# Dep\n\n    make dep\n\nsudo command will ask for your local password to install protoc\n\n## Server\n\n    make build-server\n\nWill generate the proto stub layer in server/python/helloworld*.py\n\n## Client\n\n    make build-client\n\nWill generate the proto bridge classes in client/csharp-unity/Assets/GRPC/*\n\n\n# Run\n\n\n## Server\n\n    make run-server-python\n\nor with go\n    \n    make go-install\n    make run-server-go\n\nListening at 50051 port.\n\n## Client\n\nOn Unity open the project client/csharp-unity and hit Play\nThe result must be\n\n![](doc/unity-grpc-running.png)\n\n\n# Ref\n\n* [packages.grpc.io](https://packages.grpc.io)\n\n* [gRPC with Unity](https://shamaton.orz.hm/blog/archives/553)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhumbertodias%2Funity-grpc-min","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhumbertodias%2Funity-grpc-min","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhumbertodias%2Funity-grpc-min/lists"}