Categorygithub.com/flashbots/go-template
module
0.0.0-20241119074326-dcb6f7c60168
Repository: https://github.com/flashbots/go-template.git
Documentation: pkg.go.dev

# README

go-template

Goreport status Test status

Toolbox and building blocks for new Go projects, to get started quickly and right-footed!

Pick and choose whatever is useful to you! Don't feel the need to use everything, or even to follow this structure.


Getting started

Build CLI

make build-cli

Build HTTP server

make build-httpserver

Install dev dependencies

go install mvdan.cc/[email protected]
go install honnef.co/go/tools/cmd/[email protected]
go install github.com/golangci/golangci-lint/cmd/[email protected]
go install go.uber.org/nilaway/cmd/[email protected]
go install github.com/daixiang0/[email protected]

Lint, test, format

make lint
make test
make fmt

Database tests (using a live Postgres instance)

Database tests will be run if the RUN_DB_TESTS environment variable is set to 1.

# start the database
docker run -d --name postgres-test -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=postgres postgres

# run the tests
RUN_DB_TESTS=1 make test

# stop the database
docker rm -f postgres-test

# Packages

No description provided by the author
Package common contains common utilities and functions used by the service.
Package database exposes the postgres database.
Package httpserver implements the core HTTP server.
Package metrics implements a very opinionated take on metrics.