{"id":16780927,"url":"https://github.com/piyoki/grpc-go-demo","last_synced_at":"2026-05-21T10:02:56.785Z","repository":{"id":109083852,"uuid":"358601550","full_name":"piyoki/grpc-go-demo","owner":"piyoki","description":"A quick gRPC demo written in Golang","archived":false,"fork":false,"pushed_at":"2021-04-19T11:19:05.000Z","size":18,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-07-03T15:46:59.431Z","etag":null,"topics":["api","container","golang","grpc","grpc-go","microservices"],"latest_commit_sha":null,"homepage":"","language":"Go","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/piyoki.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}},"created_at":"2021-04-16T13:04:01.000Z","updated_at":"2024-07-03T15:46:59.432Z","dependencies_parsed_at":"2023-05-31T23:02:51.557Z","dependency_job_id":null,"html_url":"https://github.com/piyoki/grpc-go-demo","commit_stats":null,"previous_names":["miooochi/grpc-go-demo","piyoki/grpc-go-demo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piyoki%2Fgrpc-go-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piyoki%2Fgrpc-go-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piyoki%2Fgrpc-go-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piyoki%2Fgrpc-go-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piyoki","download_url":"https://codeload.github.com/piyoki/grpc-go-demo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243926016,"owners_count":20369914,"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":["api","container","golang","grpc","grpc-go","microservices"],"created_at":"2024-10-13T07:36:18.123Z","updated_at":"2026-05-21T10:02:56.725Z","avatar_url":"https://github.com/piyoki.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gRPC Go Demo\n\n## gRPC Introduction\n\nRemote Procedure Calls are something that we use within distributed systems that allow us to communicate between applications. More specifically, it allows us to expose methods within our application that we want other applications to be able to invoke.\n\nIt’s similar to REST API communication in the sense that with it, you are effectively exposing functionality within your app to other apps using a HTTP connection as the communication medium.\n\n## Differences between gRPC and REST\n\nWhilst REST and gRPC are somewhat similar, there are some fundamental differences in how they work that you should be aware of.\n\n1. gRPC utilizes `HTTP/2` whereas REST utilizes `HTTP 1.1`\n2. gRPC utilizes the protocol buffer data format as opposed to the standard JSON data format that is typically used within REST APIs\n3. With gRPC you can utilize `HTTP/2` capabilities such as server-side streaming, client-side streaming or even bidirectional-streaming should you wish.\n\n## Prerequisites\n\nYou may need to have the following installed on your local machine:\n\n```bash\n# Install protobuff compiler\n$ sudo apt install protobuf-compiler\n# Check Version\n$ protoc --version  # Ensure compiler version is 3+\n# Install protoc-gen-go\n$ go get -u google.golang.org/grpc # install grpc library\n$ go get google.golang.org/protobuf/cmd/protoc-gen-go \\\n         google.golang.org/grpc/cmd/protoc-gen-go-grpc\n```\n\nYou will have to ensure that `$GOPATH/bin` is on your environment path so that you can use the `protoc` tool later on in this tutorial.\nAdd the following lines to your `.bashrc` or `.zshrc` file\n\n```bash\nexport GOPATH=$(go env GOPATH)\nexport PATH=$PATH:$GOPATH/bin\n```\n\n## Run the Demo\n\nSpins up the server\n\n```bash\ngo run server.go\n```\n\nInitiate a client connection and send a message to the server\n\n```bash\ngo run client/client.go\n```\n\n## Reference\n\n[gRPC Offical Documentation](https://grpc.io/docs/languages/go/quickstart/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiyoki%2Fgrpc-go-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpiyoki%2Fgrpc-go-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiyoki%2Fgrpc-go-demo/lists"}