{"id":15067782,"url":"https://github.com/duyledat197/go-gen-tools","last_synced_at":"2025-10-05T05:30:31.852Z","repository":{"id":246317627,"uuid":"584052724","full_name":"duyledat197/go-gen-tools","owner":"duyledat197","description":"A Go code generator for grpc","archived":true,"fork":false,"pushed_at":"2024-06-03T07:29:32.000Z","size":568,"stargazers_count":5,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-09-30T12:06:18.646Z","etag":null,"topics":["architecture","clean-architecture","clean-code","ddd","ddd-architecture","ddd-patterns","generator","go","go-kit","go-library","golang","golang-examples","golang-tools","grpc","grpc-client","grpc-go","grpc-server","protobuf","protocol-buffers"],"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/duyledat197.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["duyledat197"],"patreon":"gogentools","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2023-01-01T05:26:09.000Z","updated_at":"2024-06-27T03:43:45.000Z","dependencies_parsed_at":"2024-06-27T06:18:03.535Z","dependency_job_id":null,"html_url":"https://github.com/duyledat197/go-gen-tools","commit_stats":null,"previous_names":["duyledat197/go-gen-tools"],"tags_count":1,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duyledat197%2Fgo-gen-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duyledat197%2Fgo-gen-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duyledat197%2Fgo-gen-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duyledat197%2Fgo-gen-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/duyledat197","download_url":"https://codeload.github.com/duyledat197/go-gen-tools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235365168,"owners_count":18978315,"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":["architecture","clean-architecture","clean-code","ddd","ddd-architecture","ddd-patterns","generator","go","go-kit","go-library","golang","golang-examples","golang-tools","grpc","grpc-client","grpc-go","grpc-server","protobuf","protocol-buffers"],"created_at":"2024-09-25T01:27:16.646Z","updated_at":"2025-10-05T05:30:31.182Z","avatar_url":"https://github.com/duyledat197.png","language":"Go","funding_links":["https://github.com/sponsors/duyledat197","https://patreon.com/gogentools"],"categories":[],"sub_categories":[],"readme":"This repository is no longer supported, so please don't use this template for production.\n\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\u003cdiv align=\"center\"\u003e\n\n\u003cimg height=\"120\" alt=\"Thanks for visiting my repository\" width=\"100%\" src=\"https://raw.githubusercontent.com/BrunnerLivio/brunnerlivio/master/images/marquee.svg\" /\u003e\n\n# Go Gen Tools\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/harish-sethuraman/readme-components\"\u003e\n \u003cimg  src=\"https://readme-components.vercel.app/api?component=logo\u0026fill=black\u0026logo=go\u0026animation=spin\u0026svgfill=15d8fe\"\u003e  \n \u003c/a\u003e\n \u003ca href=\"https://github.com/harish-sethuraman/readme-components\"\u003e\n \u003cimg  src=\"https://readme-components.vercel.app/api?component=logo\u0026fill=black\u0026logo=github\u0026animation=spin\"\u003e  \n \u003c/a\u003e\n\u003c/p\u003e\n\n[![CI](https://github.com/idodod/protoc-gen-fieldmask/actions/workflows/ci.yml/badge.svg)](https://github.com/idodod/protoc-gen-fieldmask/actions/workflows/ci.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/idodod/protoc-gen-fieldmask)](https://goreportcard.com/report/github.com/idodod/protoc-gen-fieldmask)\n![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/idodod/protoc-gen-fieldmask)\n![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/idodod/protoc-gen-fieldmask)\n![GitHub](https://img.shields.io/github/license/idodod/protoc-gen-fieldmask)\n\n\u003ci\u003eA curated list of Go Gen Tools READMEs\u003c/i\u003e\n\n\u003ca href=\"https://github.com/duyledat197/go-gen-tools/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/duyledat197/go-gen-tools\" alt=\"Stars Badge\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/duyledat197/go-gen-tools/network/members\"\u003e\u003cimg src=\"https://img.shields.io/github/forks/duyledat197/go-gen-tools\" alt=\"Forks Badge\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/duyledat197/go-gen-tools/pulls\"\u003e\u003cimg src=\"https://img.shields.io/github/issues-pr/duyledat197/go-gen-tools\" alt=\"Pull Requests Badge\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/duyledat197/go-gen-tools/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/duyledat197/go-gen-tools\" alt=\"Issues Badge\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/duyledat197/go-gen-tools/graphs/contributors\"\u003e\u003cimg alt=\"GitHub contributors\" src=\"https://img.shields.io/github/contributors/duyledat197/go-gen-tools?color=2b9348\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/duyledat197/go-gen-tools/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/duyledat197/go-gen-tools?color=2b9348\" alt=\"License Badge\"/\u003e\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\nGo Gen Tools is a code generation tool that can automate repetitive tasks during application development. It provides a simple command-line interface that you can use to generate code files from templates or schema definitions.\n\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n### Built With\n\nThis section list any major frameworks/libraries used to bootstrap project.\n* ![Go](https://img.shields.io/badge/go-%2300ADD8.svg?style=for-the-badge\u0026logo=go\u0026logoColor=white)\n* ![AWS](https://img.shields.io/badge/AWS-%23FF9900.svg?style=for-the-badge\u0026logo=amazon-aws\u0026logoColor=white)\n* ![Firebase](https://img.shields.io/badge/firebase-%23039BE5.svg?style=for-the-badge\u0026logo=firebase)\n* ![Nginx](https://img.shields.io/badge/nginx-%23009639.svg?style=for-the-badge\u0026logo=nginx\u0026logoColor=white) \n* ![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white) \n* ![Redis](https://img.shields.io/badge/redis-%23DD0031.svg?style=for-the-badge\u0026logo=redis\u0026logoColor=white) \n* ![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white) \n* ![Kubernetes](https://img.shields.io/badge/kubernetes-%23326ce5.svg?style=for-the-badge\u0026logo=kubernetes\u0026logoColor=white)\n* ![ElasticSearch](https://img.shields.io/badge/-ElasticSearch-005571?style=for-the-badge\u0026logo=elasticsearch) \n* ![Swagger](https://img.shields.io/badge/-Swagger-%23Clojure?style=for-the-badge\u0026logo=swagger\u0026logoColor=white)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\n### Prerequisites\n\nPrerequisites\nBefore you start using Go Gen Tools, make sure that you have the following software installed on your computer:\n\n* Go programming language (version 1.20 or later)\n* Git version control system\n* A text editor or integrated development environment (IDE) for writing code\n* Docker\n* Kubernetes\n\n### Installation\n\nTo install Go Gen Tools, you need to run the following command in your terminal or command prompt:\n\n```\ngo get github.com/duyledat197/go-gen-tools@v0.0.1\n```\n\u003c!-- USAGE EXAMPLES --\u003e\n## Usage\nGenerate sql:\n\n\u003ch2 align=\"center\"\u003e\n\u003cpre\u003e\u003ci\u003e\u003ca href=\"https://rednafi.github.io/reflections\" target=\"_blank\"\u003emake gen-sql\u003c/a\u003e\u003c/i\u003e\u003c/pre\u003e\n\u003c/h2\u003e\n\nGenerate proto:\n\n\u003ch2 align=\"center\"\u003e\n\u003cpre\u003e\u003ci\u003e\u003ca href=\"https://rednafi.github.io/reflections\" target=\"_blank\"\u003emake gen-proto\u003c/a\u003e\u003c/i\u003e\u003c/pre\u003e\n\u003c/h2\u003e\n\nGenerate constract:\n\n\u003ch2 align=\"center\"\u003e\n\u003cpre\u003e\u003ci\u003e\u003ca href=\"https://rednafi.github.io/reflections\" target=\"_blank\"\u003emake gen-contract\u003c/a\u003e\u003c/i\u003e\u003c/pre\u003e\n\u003c/h2\u003e\n\n\nGenerate layer by DDD (delivery, service, repository):\n\n\u003ch2 align=\"center\"\u003e\n\u003cpre\u003e\u003ci\u003e\u003ca href=\"https://rednafi.github.io/reflections\" target=\"_blank\"\u003emake gen-layer\u003c/a\u003e\u003c/i\u003e\u003c/pre\u003e\n\u003c/h2\u003e\n\nGenerate mock:\n\n\u003ch2 align=\"center\"\u003e\n\u003cpre\u003e\u003ci\u003e\u003ca href=\"https://rednafi.github.io/reflections\" target=\"_blank\"\u003emake gen-mock\u003c/a\u003e\u003c/i\u003e\u003c/pre\u003e\n\u003c/h2\u003e\n\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n## Features:\n\n- [x] Auto generate protobuf files.\n- [x] Auto generate mock interface for DDD.\n- [x] Auto generate all layer of DDD.\n- [x] Auto generate sql query with struct mapping and entities.\n- [x] Auto migrate for Postgres.\n- [x] Support generate repository layer for postgres, mongo, inmem.\n- [x] Support mono repo architecture.\n- [x] Auto generate cli with [cobra-cli](https://github.com/spf13/cobra-cli).\n- [x] Support graceful shutdown.\n- [x] Start kubernetes with [Kind](https://kind.sigs.k8s.io/).\n- [x] Manage kubernetes with [Helm](https://helm.sh/).\n- [x] Support vscode settings.\n- [x] Support github workflows.\n- [ ] Support [Twilio](https://www.twilio.com/) client.\n- [ ] Support [Sendgrid](https://sendgrid.com/) client.\n- [ ] Support [AWS](https://aws.amazon.com/) client.\n- [x] Support metrics with [Prometheus](https://prometheus.io/).\n- [x] Support [Grafana](https://grafana.com/) for monitor.\n- [x] Support [Elasticsearch](https://www.elastic.co/) client.\n- [x] Support [Ethereum](https://ethereum.org/) client.\n- [x] Support [Kafka](https://kafka.apache.org/), [Nats](https://nats.io/) for message queue.\n- [x] Support [Redis](https://redis.io/) client.\n- [x] Support rate limit.\n- [x] Support configuration for grpc client, grpc server, http client, http server.\n- [x] Support [Hystrix config](https://github.com/Netflix/Hystrix) for circuit breaker.\n- [x] Support [Consul](https://www.consul.io/) client for load balancer.\n- [x] Support open tracing with [Jeager tracing](https://www.jaegertracing.io/).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Project Structure:\n\n```sh\n.\n├── LICENSE\n├── Makefile\n├── README.md\n├── SECURITY.md\n├── api\n│   ├── contracts\n│   │   └── store.sol\n│   └── proto\n│       ├── cobra\n│       │   └── example.proto\n│       ├── enum.proto\n│       ├── hub.proto\n│       ├── nats\n│       │   ├── example.proto\n│       │   ├── example_test.proto\n│       │   └── nrpc.proto\n│       ├── options\n│       │   ├── annotations.pb.go\n│       │   ├── annotations.proto\n│       │   └── doc.go\n│       ├── search.proto\n│       ├── team.proto\n│       └── user.proto\n├── cmd\n│   ├── cmd.go\n│   ├── gateway.go\n│   ├── inventory.go\n│   ├── order.go\n│   ├── root.go\n│   ├── srv\n│   │   └── main.go\n│   ├── srv.go\n│   └── thirdParty.go\n├── config\n│   └── config.go\n├── database\n│   ├── migrations\n│   │   ├── 0001_migrate.up.sql\n│   │   ├── 0002_migrate.up.sql\n│   │   └── 0003_migrate.up.sql\n│   └── queries\n│       ├── hub.sql\n│       ├── team.sql\n│       └── user.sql\n├── deployments\n│   └── helms\n│       ├── common.config.yaml\n│       ├── configs\n│       │   └── insfras.yaml\n│       ├── gateway\n│       │   ├── Chart.yaml\n│       │   ├── charts\n│       │   ├── templates\n│       │   │   ├── NOTES.txt\n│       │   │   ├── _helpers.tpl\n│       │   │   ├── configmap.yaml\n│       │   │   ├── deployment.yaml\n│       │   │   ├── hpa.yaml\n│       │   │   ├── ingress.yaml\n│       │   │   ├── secrets.yaml\n│       │   │   ├── service.yaml\n│       │   │   ├── serviceaccount.yaml\n│       │   │   └── tests\n│       │   │       └── test-connection.yaml\n│       │   └── values.yaml\n│       ├── inventory\n│       │   ├── Chart.yaml\n│       │   ├── charts\n│       │   ├── templates\n│       │   │   ├── NOTES.txt\n│       │   │   ├── _helpers.tpl\n│       │   │   ├── deployment.yaml\n│       │   │   ├── hpa.yaml\n│       │   │   ├── ingress.yaml\n│       │   │   ├── service.yaml\n│       │   │   ├── serviceaccount.yaml\n│       │   │   └── tests\n│       │   │       └── test-connection.yaml\n│       │   └── values.yaml\n│       ├── order\n│       │   ├── Chart.yaml\n│       │   ├── charts\n│       │   ├── templates\n│       │   │   ├── NOTES.txt\n│       │   │   ├── _helpers.tpl\n│       │   │   ├── deployment.yaml\n│       │   │   ├── hpa.yaml\n│       │   │   ├── ingress.yaml\n│       │   │   ├── service.yaml\n│       │   │   ├── serviceaccount.yaml\n│       │   │   └── tests\n│       │   │       └── test-connection.yaml\n│       │   └── values.yaml\n│       └── third_party\n│           ├── Chart.yaml\n│           ├── charts\n│           ├── templates\n│           │   ├── NOTES.txt\n│           │   ├── _helpers.tpl\n│           │   ├── deployment.yaml\n│           │   ├── hpa.yaml\n│           │   ├── ingress.yaml\n│           │   ├── service.yaml\n│           │   ├── serviceaccount.yaml\n│           │   └── tests\n│           │       └── test-connection.yaml\n│           └── values.yaml\n├── developments\n│   ├── Dockerfile\n│   ├── abi.Dockerfile\n│   ├── bdd_test.Dockerfile\n│   ├── docker-compose.yml\n│   ├── gen-abi.sh\n│   ├── gen-proto.sh\n│   ├── proto.Dockerfile\n│   ├── sqlc.yaml\n│   └── start.sh\n├── docs\n│   ├── html\n│   │   └── index.html\n│   ├── markdown\n│   │   └── docs.md\n│   └── swagger\n│       └── *.swagger.json\n├── features\n│   └── bdd.go\n├── go.mod\n├── go.sum\n├── idl\n│   ├── abi\n│   │   ├── *.abi\n│   │   └── *.go\n│   └── pb\n│       ├── cobra_pb\n│       │   └── ...\n│       ├── nats_pb\n│       │   └── ...\n│       └── ...\n├── intergration_test.go\n├── internal\n│   ├── deliveries\n│   │   ├── grpc\n│   │   │   ├── hub.go\n│   │   │   ├── search.go\n│   │   │   ├── team.go\n│   │   │   └── user.go\n│   │   ├── http\n│   │   └── ws\n│   │       ├── client.go\n│   │       ├── hub.go\n│   │       └── ws.go\n│   ├── models\n│   │   ├── db.go\n│   │   ├── hub.sql.go\n│   │   ├── models.go\n│   │   ├── querier.go\n│   │   ├── team.sql.go\n│   │   └── user.sql.go\n│   ├── mongo\n│   │   └── user.go\n│   ├── repositories\n│   │   ├── hub.go\n│   │   ├── mongo\n│   │   │   ├── hub.go\n│   │   │   ├── team.go\n│   │   │   └── user.go\n│   │   ├── options.go\n│   │   ├── postgres\n│   │   │   ├── hub.go\n│   │   │   ├── team.go\n│   │   │   └── user.go\n│   │   ├── team.go\n│   │   └── user.go\n│   └── services\n│       ├── hub.go\n│       ├── hub_test.go\n│       ├── search.go\n│       ├── team.go\n│       └── user.go\n├── pkg\n│   ├── elastic_client\n│   │   └── elastic.go\n│   ├── eth_client\n│   │   ├── balance.go\n│   │   ├── client.go\n│   │   ├── keystore.go\n│   │   ├── transaction.go\n│   │   └── wallet.go\n│   ├── grpc_client\n│   │   ├── grpc.go\n│   │   └── option.go\n│   ├── grpc_server\n│   │   ├── grpc.go\n│   │   ├── health_check.go\n│   │   └── middleware.go\n│   ├── http_server\n│   │   ├── http.go\n│   │   ├── middleware.go\n│   │   └── middleware_test.go\n│   ├── hystrix\n│   │   └── config.go\n│   ├── kafka\n│   │   ├── consumer.go\n│   │   ├── consumer_group.go\n│   │   ├── producer.go\n│   │   ├── producer_test.go\n│   │   ├── publisher.go\n│   │   └── subscriber.go\n│   ├── mongo_client\n│   │   └── mongo.go\n│   ├── nrpc\n│   │   ├── nrpc.go\n│   │   └── nrpc.pb.go\n│   ├── postgres_client\n│   │   └── postgres.go\n│   ├── prometheus_server\n│   │   └── server.go\n│   ├── pubsub\n│   │   ├── model.go\n│   │   ├── publisher.go\n│   │   └── subscriber.go\n│   ├── ratelimit\n│   │   └── ratelimit.go\n│   ├── redis_client\n│   │   └── redis.go\n│   ├── registry\n│   │   ├── client.go\n│   │   └── register.go\n│   ├── swagger_server\n│   │   └── server.go\n│   └── tracing\n│       └── client.go\n├── third_party\n│   ├── aws\n│   │   ├── aws.go\n│   │   └── s3.go\n│   ├── email\n│   │   └── email.go\n│   ├── marketing\n│   │   └── marketing.go\n│   └── sms\n│       └── sms.go\n├── tools\n│   ├── gen-layer\n│   │   ├── internal\n│   │   │   ├── generator.go\n│   │   │   └── step.go\n│   │   ├── main.go\n│   │   ├── models\n│   │   │   ├── cli_step.go\n│   │   │   ├── feature.go\n│   │   │   └── template.go\n│   │   ├── templates\n│   │   │   ├── cucumber\n│   │   │   │   ├── create.tpl\n│   │   │   │   ├── delete.tpl\n│   │   │   │   ├── list.tpl\n│   │   │   │   ├── retrieve.tpl\n│   │   │   │   └── update.tpl\n│   │   │   ├── delivery\n│   │   │   │   ├── create.tpl\n│   │   │   │   ├── default.tpl\n│   │   │   │   ├── delete.tpl\n│   │   │   │   ├── list.tpl\n│   │   │   │   ├── retrieve.tpl\n│   │   │   │   └── update.tpl\n│   │   │   ├── godog\n│   │   │   │   ├── create.tpl\n│   │   │   │   ├── default.tpl\n│   │   │   │   ├── delete.tpl\n│   │   │   │   ├── function.tpl\n│   │   │   │   ├── list.tpl\n│   │   │   │   ├── retrieve.tpl\n│   │   │   │   └── update.tpl\n│   │   │   ├── mongo\n│   │   │   │   ├── create.tpl\n│   │   │   │   ├── default.tpl\n│   │   │   │   ├── delete.tpl\n│   │   │   │   ├── list.tpl\n│   │   │   │   ├── retrieve.tpl\n│   │   │   │   └── update.tpl\n│   │   │   ├── postgres\n│   │   │   │   ├── create.tpl\n│   │   │   │   ├── default.tpl\n│   │   │   │   ├── delete.tpl\n│   │   │   │   ├── list.tpl\n│   │   │   │   ├── retrieve.tpl\n│   │   │   │   └── update.tpl\n│   │   │   ├── repository\n│   │   │   │   └── default.tpl\n│   │   │   └── service\n│   │   │       ├── create.tpl\n│   │   │       ├── default.tpl\n│   │   │       ├── delete.tpl\n│   │   │       ├── list.tpl\n│   │   │       ├── retrieve.tpl\n│   │   │       └── update.tpl\n│   │   └── utils\n│   │       ├── parser\n│   │       │   └── parser.go\n│   │       └── steps.go\n│   ├── gen-service\n│   ├── protoc-gen-custom\n│   │   ├── internal\n│   │   │   └── generator.go\n│   │   └── main.go\n│   └── protoc-gen-nrpc\n│       ├── internal\n│       │   └── genrator.go\n│       ├── main.go\n│       └── templates\n│           └── nrpc.tpl\n├── transform\n│   └── ...\n└── utils\n    ├── authenticate\n    │   ├── authenticator.go\n    │   ├── jwt.go\n    │   ├── jwt_test.go\n    │   ├── paseto.go\n    │   ├── paseto_test.go\n    │   ├── payload.go\n    │   └── token.go\n    ├── crypto\n    │   ├── sha256.go\n    │   └── sha256_test.go\n    ├── helper\n    │   ├── validation.go\n    │   └── validation_test.go\n    ├── ip.go\n    ├── logger\n    │   └── zap.go\n    ├── metadata\n    │   └── metadata.go\n    ├── otp\n    │   ├── hotp.go\n    │   ├── otp.go\n    │   └── totp.go\n    ├── pathutils\n    │   └── path.go\n    ├── string.go\n    ├── token.go\n    └── transformhelpers\n        └── helpers.go\n```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n# Architechture:\n\n![clean architecture](https://raw.githubusercontent.com/phungvandat/clean-architecture/dev/images/clean-arch.png)\n\n\u003cdiv align=\"center\"\u003e\n\n## Installation:\n\nMake sure you have Go installed ([download](https://golang.org/dl/)). Version `1.19` or higher is required.\n\nInstall make for start the server.\n\nFor Linux:\n\n\u003ch2 align=\"center\"\u003e\n\u003cpre\u003e\u003ci\u003e\u003ca href=\"https://rednafi.github.io/reflections\" target=\"_blank\"\u003esudo apt install make\u003c/a\u003e\u003c/i\u003e\u003c/pre\u003e\n\u003c/h2\u003e\n\nFor Macos:\n\n\u003ch2 align=\"center\"\u003e\n\u003cpre\u003e\u003ci\u003e\u003ca href=\"https://rednafi.github.io/reflections\" target=\"_blank\"\u003ebrew install make\u003c/a\u003e\u003c/i\u003e\u003c/pre\u003e\n\u003c/h2\u003e\n\n## How to start server:\n\nFirst of all, you must start postgres:\n\n\u003ch2 align=\"center\"\u003e\n\u003cpre\u003e\u003ci\u003e\u003ca href=\"https://rednafi.github.io/reflections\" target=\"_blank\"\u003emake start-postgres\u003c/a\u003e\u003c/i\u003e\u003c/pre\u003e\n\u003c/h2\u003e\n\nAfter that should migrate:\n\n\u003ch2 align=\"center\"\u003e\n\u003cpre\u003e\u003ci\u003e\u003ca href=\"https://rednafi.github.io/reflections\" target=\"_blank\"\u003emake migrate\u003c/a\u003e\u003c/i\u003e\u003c/pre\u003e\n\u003c/h2\u003e\n\nStart server with cmd/terminal:\n\n\u003ch2 align=\"center\"\u003e\n\u003cpre\u003e\u003ci\u003e\u003ca href=\"https://rednafi.github.io/reflections\" target=\"_blank\"\u003emake run\u003c/a\u003e\u003c/i\u003e\u003c/pre\u003e\n\u003c/h2\u003e\n\nStart server with docker:\n\n\u003ch2 align=\"center\"\u003e\n\u003cpre\u003e\u003ci\u003e\u003ca href=\"https://rednafi.github.io/reflections\" target=\"_blank\"\u003emake docker-start\u003c/a\u003e\u003c/i\u003e\u003c/pre\u003e\n\u003c/h2\u003e\n\n\n## Unit test:\n\nRun all test:\n\n\u003ch2 align=\"center\"\u003e\n\u003cpre\u003e\u003ci\u003e\u003ca href=\"https://rednafi.github.io/reflections\" target=\"_blank\"\u003emake test\u003c/a\u003e\u003c/i\u003e\u003c/pre\u003e\n\u003c/h2\u003e\n\n\u003c/div\u003e\n\n## For using pprof:\n\n###\ninstall graphviz:\n\n```\n$ go get -u github.com/google/pprof\n\n$ apt-get install graphviz gv // for linux/debian \n$ brew install graphviz (mac)  // for mac\n```\n\n## License:\n\nMIT\n\n**Free Software, Hell Yeah!**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduyledat197%2Fgo-gen-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fduyledat197%2Fgo-gen-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduyledat197%2Fgo-gen-tools/lists"}