{"id":20882359,"url":"https://github.com/1ambda/go-ref","last_synced_at":"2025-10-28T03:50:20.577Z","repository":{"id":37678051,"uuid":"111125216","full_name":"1ambda/go-ref","owner":"1ambda","description":"Production-ready Reference Project for Golang","archived":false,"fork":false,"pushed_at":"2022-12-07T23:27:17.000Z","size":26321,"stargazers_count":10,"open_issues_count":29,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-01T09:01:33.577Z","etag":null,"topics":["etcd","golang","grpc","reference","rest","websocket"],"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/1ambda.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}},"created_at":"2017-11-17T16:24:33.000Z","updated_at":"2023-04-14T17:24:48.000Z","dependencies_parsed_at":"2022-07-12T16:43:00.695Z","dependency_job_id":null,"html_url":"https://github.com/1ambda/go-ref","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1ambda%2Fgo-ref","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1ambda%2Fgo-ref/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1ambda%2Fgo-ref/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1ambda%2Fgo-ref/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/1ambda","download_url":"https://codeload.github.com/1ambda/go-ref/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253797914,"owners_count":21965979,"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":["etcd","golang","grpc","reference","rest","websocket"],"created_at":"2024-11-18T07:31:17.833Z","updated_at":"2025-10-28T03:50:15.556Z","avatar_url":"https://github.com/1ambda.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Go Report Card](https://goreportcard.com/badge/github.com/1ambda/go-ref?style=flat-square)](https://goreportcard.com/report/github.com/1ambda/go-ref)\n[![Go Doc](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square)](http://godoc.org/github.com/1ambda/go-ref)\n[![Release](https://img.shields.io/github/release/1ambda/go-ref.svg?style=flat-square)](https://github.com/1ambda/go-ref/releases/latest)\n\n# Golang Reference Project\n\n## Component\n- [service-front](https://github.com/1ambda/go-ref/tree/master/service-front): webapp\n  * generate rest, websocket models from [swagger spec](https://github.com/1ambda/go-ref/tree/master/schema/swagger) using [swagger-codegen](https://github.com/swagger-api/swagger-codegen)\n  - written in Angular 5+\n- [service-gateway](https://github.com/1ambda/go-ref/tree/master/service-gateway): serving Websocket and REST endpoints\n  * generate rest, websocket model + server stub using [go-swagger](https://github.com/go-swagger/go-swagger)\n  * while working as a gRPC client\n  * provides scalable realtime metric servers using etcd \n- [service-location](https://github.com/1ambda/go-ref/tree/master/service-backend): serving gRPC endpoints\n  * provides location service sharding (e.g location server 1 handles requests from US, ..)\n  \n\n\n```                                                                                                  \n                                                                                                     \n    +---------------+   WS   (50001)  +-----------------+                  +------------------+       \n    |               |   REST (50002)  |                 |   gRPC (50003)   |                  |       \n    | service-front |\u003c---------------\u003e| service-gateway |\u003c----------------\u003e| service-location |       \n    |               |  (swagger-gen)  |                 |    (protobuf)    |                  |       \n    +---------------+                 +-----------------+                  +------------------+       \n         (webapp)                           (server)                             (server)            \n                                                                                                     \n                                                              \u003c storage \u003e                                            \n                                                                                                     \n                                                   +--------------+  +-------------+                 \n                                                   |              |  |             |                 \n                                                   | etcd cluster |  |    mysql    |                 \n                                                   |              |  |             |                 \n                                                   +--------------+  +-------------+                 \n                                                   (distributed kv)  (transactional)                 \n                                                                                       \n```\n\n## Requirements\n| name | version | description |\n|---|---|---|\n| [go](https://github.com/golang/go) | 1.10+ | use [gvm](https://github.com/moovweb/gvm) |\n| [dep](https://github.com/golang/dep) |  | `go get -u github.com/golang/dep/cmd/dep` |\n| [protobuf](https://github.com/google/protobuf) | 3.5.0+ | `brew install protobuf` |\n| [nodejs](https://nodejs.org/) | 9.8.0+ | use [nvm](https://github.com/creationix/nvm) |\n\nPlease check [make prepare](https://github.com/1ambda/go-ref/blob/master/scripts/makefiles/install.mk#L6) command for more description.\n\n## Quick Start\n\n```bash\n# start dockerized storages: etcd, mysql, ...\n$ docker-compose up\n```\n\n```bash\n# start gateway service \n$ cd service-gateway\n$ make prepare install\n$ make run \n```\n\n```bash\n# start front (webapp) service \n$ cd service-front\n$ npm install; npm run server:local;\n\n# visit: https://localhost:3000 \n```\n\n## Screenshot\n\n\u003cimg src=\"https://raw.githubusercontent.com/1ambda/go-ref/master/docs/screenshots/screenshot1.png\" height=\"100%\" width=\"100%\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/1ambda/go-ref/master/docs/screenshots/screenshot2.png\" height=\"100%\" width=\"100%\"\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1ambda%2Fgo-ref","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F1ambda%2Fgo-ref","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1ambda%2Fgo-ref/lists"}