{"id":13740685,"url":"https://github.com/fullstorydev/grpchan","last_synced_at":"2025-05-15T02:07:05.582Z","repository":{"id":29503262,"uuid":"121870635","full_name":"fullstorydev/grpchan","owner":"fullstorydev","description":"Channels for gRPC: custom transports","archived":false,"fork":false,"pushed_at":"2025-03-13T17:46:58.000Z","size":388,"stargazers_count":216,"open_issues_count":4,"forks_count":22,"subscribers_count":29,"default_branch":"master","last_synced_at":"2025-04-15T03:39:49.248Z","etag":null,"topics":["golang","grpc"],"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/fullstorydev.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,"zenodo":null}},"created_at":"2018-02-17T16:22:24.000Z","updated_at":"2025-04-06T18:48:39.000Z","dependencies_parsed_at":"2024-03-18T16:30:54.823Z","dependency_job_id":"4a80aacc-3a8d-49c7-8e95-f93efb9da0f0","html_url":"https://github.com/fullstorydev/grpchan","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fullstorydev%2Fgrpchan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fullstorydev%2Fgrpchan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fullstorydev%2Fgrpchan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fullstorydev%2Fgrpchan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fullstorydev","download_url":"https://codeload.github.com/fullstorydev/grpchan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254259383,"owners_count":22040820,"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":["golang","grpc"],"created_at":"2024-08-03T04:00:51.243Z","updated_at":"2025-05-15T02:07:05.565Z","avatar_url":"https://github.com/fullstorydev.png","language":"Go","funding_links":[],"categories":["Language-Specific"],"sub_categories":["Go"],"readme":"# gRPC Channels\n\n[![Build Status](https://circleci.com/gh/fullstorydev/grpchan/tree/master.svg?style=svg)](https://circleci.com/gh/fullstorydev/grpchan/tree/master)\n[![Go Report Card](https://goreportcard.com/badge/github.com/fullstorydev/grpchan)](https://goreportcard.com/report/github.com/fullstorydev/grpchan)\n[![GoDoc](https://godoc.org/github.com/fullstorydev/grpchan?status.svg)](https://godoc.org/github.com/fullstorydev/grpchan)\n\nThis repo provides an abstraction for an RPC connection: the `Channel`.\nImplementations of `Channel` can provide alternate transports -- different\nfrom the standard HTTP/2-based transport provided by the `google.golang.org/grpc`\npackage.\n\nThis can be useful for providing new transports, such as HTTP 1.1, web sockets,\nor (significantly) in-process channels for testing.\n\nThis repo also contains two such alternate transports: an HTTP 1.1 implementation\nof gRPC (which supports all stream kinds other than full-duplex bidi streams) and\nan in-process transport (which allows a process to dispatch handlers implemented\nin the same program without needing serialize and de-serialize messages over the\nloopback network interface).\n\nIn order to use channels with your proto-defined gRPC services, you need to use a\nprotoc plugin included in this repo: `protoc-gen-grpchan`.\n\n```bash\ngo install github.com/fullstorydev/grpchan/cmd/protoc-gen-grpchan\n```\n\nYou use the plugin via a `--grpchan_out` parameter to protoc. Specify the same\noutput directory to this parameter as you supply to `--go_out`. The plugin will\nthen generate `*.pb.grpchan.go` files, alongside the `*.pb.go` files. These\nadditional files contain additional methods that let you use the proto-defined\nservice methods with alternate transports.\n\n```go\n//go:generate protoc --go_out=plugins=grpc:. --grpchan_out=. my.proto\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffullstorydev%2Fgrpchan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffullstorydev%2Fgrpchan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffullstorydev%2Fgrpchan/lists"}