Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/thomascode92/mailing-list-service

Simple services to store emails in a (SQLite) database! JSON & gRPC services written in GO!
https://github.com/thomascode92/mailing-list-service

go golang grpc-api json-api sqlite

Last synced: 20 days ago
JSON representation

Simple services to store emails in a (SQLite) database! JSON & gRPC services written in GO!

Awesome Lists containing this project

README

        

# MailingList Microservice

This application, a Mailing list service, is written in [Go](https://go.dev/) and it utilizes some of Go's advanced features (like Goroutines, WaitGroups, ...)!

It is a project of the _[Go Programming: The Complete Developer's Guide](https://www.udemy.com/course/go-programming-golang-the-complete-developers-guide/)_ course from [ZTM](https://zerotomastery.io/).

## Setup

This project requires a `gcc` compiler installed and the `protobuf` code generation tools.

### Install protobuf compiler

Install the `protoc` tool using the instructions available at [https://grpc.io/docs/protoc-installation/](https://grpc.io/docs/protoc-installation/).

Alternatively you can download a pre-built binary from [https://github.com/protocolbuffers/protobuf/releases](https://github.com/protocolbuffers/protobuf/releases) and placing the extracted binary somewhere in your `$PATH`.

### Install Go protobuf codegen tools

`go install google.golang.org/protobuf/cmd/protoc-gen-go@latest`

`go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest`

### Generate Go code from .proto files

```
protoc --go_out=. --go_opt=paths=source_relative \
--go-grpc_out=. --go-grpc_opt=paths=source_relative \
Proto/mail.proto
```