All Projects → codingpot → server-client-template-go

codingpot / server-client-template-go

Licence: other
No description or website provided.

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to server-client-template-go

karate-grpc
gRPC Testing Made Simple by Karate
Stars: ✭ 43 (+207.14%)
Mutual labels:  protobuf
homebrew-extensions
🍻 Homebrew tap for PHP extensions
Stars: ✭ 264 (+1785.71%)
Mutual labels:  protobuf
makego
Makefile setup for our Golang projects.
Stars: ✭ 65 (+364.29%)
Mutual labels:  protobuf
protostuff-compiler
Protobuf parser, java code and documentation generator
Stars: ✭ 42 (+200%)
Mutual labels:  protobuf
console-chat
Chat on your terminal with other users through a gRPC service
Stars: ✭ 21 (+50%)
Mutual labels:  protobuf
play-grpc
Play + Akka gRPC
Stars: ✭ 31 (+121.43%)
Mutual labels:  protobuf
kafka-protobuf-serde
Serializer/Deserializer for Kafka to serialize/deserialize Protocol Buffers messages
Stars: ✭ 52 (+271.43%)
Mutual labels:  protobuf
monorepo-base
A Bazel monorepo with an example service using gRPC + Go + Protobuf, deployable to GCP via Kubernetes.
Stars: ✭ 49 (+250%)
Mutual labels:  protobuf
pbts-grpc-transcoder
A TypeScript library that provides gRPC to HTTP/1 & JSON transcoding for the protobuf.js library
Stars: ✭ 12 (-14.29%)
Mutual labels:  protobuf
RESTvsGRPC
Evaluating Performance of REST vs. gRPC
Stars: ✭ 36 (+157.14%)
Mutual labels:  protobuf
hsproto
Hearthstone Protobuf files
Stars: ✭ 31 (+121.43%)
Mutual labels:  protobuf
cocolian-rpc
使用Apache Thrift作为容器,Google Protobuf作为协议的一个RPC框架。
Stars: ✭ 19 (+35.71%)
Mutual labels:  protobuf
iot-dev
Example IoT projects
Stars: ✭ 54 (+285.71%)
Mutual labels:  protobuf
grpcweb-boilerplate
A minimal repo containing all the boilerplate for getting started with GopherJS using gRPC-Web
Stars: ✭ 45 (+221.43%)
Mutual labels:  protobuf
yadoms
Yadoms is open source, simple, powerfull, flexible and multiplatforms domotic solution.
Stars: ✭ 56 (+300%)
Mutual labels:  protobuf
stockholm
💵 Modern Python library for working with money and monetary amounts. Human friendly and flexible approach for development. 100% test coverage + built-in support for GraphQL and Protocol Buffers transports using current best-practices.
Stars: ✭ 26 (+85.71%)
Mutual labels:  protobuf
redis-protobuf
Redis module for reading and writing Protobuf messages
Stars: ✭ 153 (+992.86%)
Mutual labels:  protobuf
savetheworldwithgo
Build systems with Go examples
Stars: ✭ 81 (+478.57%)
Mutual labels:  protobuf
Protobuf-Dreamer
A tiled DeepDream project for creating any size of image, on both CPU and GPU
Stars: ✭ 39 (+178.57%)
Mutual labels:  protobuf
go course
個人多年來學習與實作上的心得筆記
Stars: ✭ 25 (+78.57%)
Mutual labels:  protobuf

CI Go Report Card

Server & Client Template in Golang (gRPC/protobuf)

This repository provides server & client boilerplate codes written in golang. The server & client communicated via gRPC/protobuf interface. It's boring to fork the repo and replace all the placeholders to fit your own environment. Instead, this repository give an easy way to "copy".

Initial Setup

  1. Click "Use this template" button.
  2. Fill up the name of repository that you want to create.
  3. When the repository is copied over to your place, a setup GitHub Action gets triggered. It essentially leaves a PR when it is done.
  4. Merge the PR named Initial Setup.
  5. When the PR is done merged, it triggers another ci GitHub Action. Wait until it ends.
  6. Run make install. You can also specify PROTOC_VERSION if needed like this:
    PROTOC_VERSION=3.17.0 make install

What can you do with initial setup?

You can simply ping from a client to server with a dummy message via DummyService.

What should you do after initial setup?

  1. Simply define your own protocol buffer services and messages in /pkg/pbs/.
  2. Generate *.pb.go files via make clean install all.
  3. Implement your message receiving logic in /pkg/serv/.
  4. Write your own business logic to leverage your own gRPC/protobuf services and messages.

Directory Structure

|-- .github    -- (D)(0)
|
|-- cmd
|   |-- client -- (D)(1)
|   |
|   |-- server -- (D)(2)
|   |
|   `-- tools  -- (D)(3)
|
|
|-- internal   -- (D)(4)
|
|-- model      -- (D)(5)
|
|-- pkg
|   |-- pbs    -- (D)(6)
|   |
|   `-- serv   -- (D)(7)
|
`-- Makefile   -- (F)(8)

(D) indicates Directory, and (F) indicated File

  1. Any GitHub Action should go into .github. Basic CI workflow is provided. It simply builds cmd/client/main.go and cmd/server/main.go to check if there is any errors.

  2. cmd/client is for launching Client application. Boilerplate codes for sending out DummyService's GetHello rpc is provided.

  3. cmd/server is for launching Server application. Boilerplate codes for set Server and listening on a specific port is provided.

  4. cmd/tools is for listing up any go packages to be included. Boilerplate codes list up protoc-gen-go-grpc and protoc-gen-go.

  5. internal is an empty as in the initial setup. You can store any business logics for any internal use here.

  6. model is an empty as in the initial setup. You can store any models to work with internal business logics here.

  7. pkg/pbs contains protocol buffer related stuff. Usually files with the extensions of *.proto, *.pb.go should be stored in here.

  8. pkg/serv is there to handle incoming messages from client to server.

  9. Makefile mainly provides two rules, installing gRPC/protobuf environment via make install and generating protobuf into the appropriate folder pkg/pbs via make all.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].