{"id":23410012,"url":"https://github.com/rulanugrh/saturnus","last_synced_at":"2026-05-16T06:40:21.880Z","repository":{"id":186934102,"uuid":"671118873","full_name":"rulanugrh/saturnus","owner":"rulanugrh","description":"Templates and Examples implementation about HTTP Transcoding to GRPC Golang with MongoDB","archived":false,"fork":false,"pushed_at":"2023-08-08T12:00:54.000Z","size":47,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-29T00:43:20.606Z","etag":null,"topics":["grpc","grpc-go","http-server","http-transcoding","mongodb-go","todolist"],"latest_commit_sha":null,"homepage":"","language":"Go","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/rulanugrh.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":"2023-07-26T15:22:51.000Z","updated_at":"2023-08-08T07:47:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"52663e68-6a63-43d8-874e-36bd2bece5d2","html_url":"https://github.com/rulanugrh/saturnus","commit_stats":null,"previous_names":["rulanugrh/saturnus"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rulanugrh/saturnus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulanugrh%2Fsaturnus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulanugrh%2Fsaturnus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulanugrh%2Fsaturnus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulanugrh%2Fsaturnus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rulanugrh","download_url":"https://codeload.github.com/rulanugrh/saturnus/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rulanugrh%2Fsaturnus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33092960,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","grpc-go","http-server","http-transcoding","mongodb-go","todolist"],"created_at":"2024-12-22T16:15:34.449Z","updated_at":"2026-05-16T06:40:21.855Z","avatar_url":"https://github.com/rulanugrh.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eSATURNUS\u003c/h1\u003e\n\u003cimg src=\"https://i.pinimg.com/originals/02/01/1e/02011ec8554277b8c70bf22fb192123c.gif\" /\u003e\n\n\u003cimg src=\"https://user-images.githubusercontent.com/73097560/115834477-dbab4500-a447-11eb-908a-139a6edaec5c.gif\"\u003e\u003c/p\u003e\n\n\n## Description\nExample and Template about Transcoding HTTP to GRPC with Golang and Mongodb. Fyi, GRPC is modern open source high performance Remote Procedure (RPC) framework that can run in any environtment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend services. gRPC is based from protocol buffer which is an input schema that will be carried out by the client or user.\n\nIn this project, I provide examples or templates about http to gRPC transcoding. Actually, gRPC itself is based on HTTP v2 but is not published. So, Google Cloud Endpoint itself supports transcoding http to grpc, more or less the schema is like this.\n\n\u003cdiv\u003e\n    \u003cimg src=\"https://poornimanayar.co.uk/media/4wjjytij/image.png\" /\u003e\n\u003c/div\u003e\n\n## Endpoint\n- GRPC\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003cth\u003eEndpoint\u003c/th\u003e\n        \u003cth\u003eDescription\u003c/th\u003e\n        \u003cth\u003eMethod\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003cth\u003eTodoService/CreateProduct\u003c/th\u003e\n        \u003cth\u003eTo create todo\u003c/th\u003e\n        \u003cth\u003ePOST\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003cth\u003eTodoService/FindById\u003c/th\u003e\n        \u003cth\u003eTo get todo by id\u003c/th\u003e\n        \u003cth\u003eGET\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003cth\u003eTodoService/Update\u003c/th\u003e\n        \u003cth\u003eTo update todo by id\u003c/th\u003e\n        \u003cth\u003ePUT\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003cth\u003eTodoService/Delete\u003c/th\u003e\n        \u003cth\u003eTo delete todo by id\u003c/th\u003e\n        \u003cth\u003eDELETE\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003cth\u003eTodoService/FindAll\u003c/th\u003e\n        \u003cth\u003eTo sell all todo\u003c/th\u003e\n        \u003cth\u003eGET\u003c/th\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n- REST\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003cth\u003eEndpoint\u003c/th\u003e\n        \u003cth\u003eDescription\u003c/th\u003e\n        \u003cth\u003eMethod\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003cth\u003e/v1/todo\u003c/th\u003e\n        \u003cth\u003eTo create todo\u003c/th\u003e\n        \u003cth\u003ePOST\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003cth\u003e/v1/todo/{id}\u003c/th\u003e\n        \u003cth\u003eTo get todo by id\u003c/th\u003e\n        \u003cth\u003eGET\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003cth\u003e/v1/todo/{id}\u003c/th\u003e\n        \u003cth\u003eTo update todo by id\u003c/th\u003e\n        \u003cth\u003ePUT\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003cth\u003e/v1/todo/{id}\u003c/th\u003e\n        \u003cth\u003eTo delete todo by id\u003c/th\u003e\n        \u003cth\u003eDELETE\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003cth\u003e/v1/todo\u003c/th\u003e\n        \u003cth\u003eTo sell all todo\u003c/th\u003e\n        \u003cth\u003eGET\u003c/th\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n## Usage\n### 1.1 Usage with Golang\nRun this command to running download all module\n```go\ngo mod tidy\n```\nthen running file `server.go` to run the server\n```go\ngo run server.go\n```\nand the output will be like this\n```\n2023/08/08 14:26:20 GRPC Server running on localhost:40000\n2023/08/08 14:26:20 HTTP Server running on localhost:8080\n```\n\n### 1.2 Usage with Docker\nRun this command to download docker-compose (this command for linux)\n```bash\nsudo apt install docker-compose -y\n```\nthen running this command\n```\ndocker-compose up -d\n```\nand service will be running on port `40000 to GRPC` and `8080 to REST`\n\n\u003cimg src=\"https://user-images.githubusercontent.com/73097560/115834477-dbab4500-a447-11eb-908a-139a6edaec5c.gif\"\u003e\u003c/p\u003e\n\n\u003e For example schema to input in GRPC you can see in [`example`](https://github.com/rulanugrh/saturnus/tree/master/example) folder\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frulanugrh%2Fsaturnus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frulanugrh%2Fsaturnus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frulanugrh%2Fsaturnus/lists"}