Popularity
2.9
Growing
Activity
3.8
Declining
46
3
5
Programming language: Go
License: MIT License
Tags:
Miscellaneous
Project Layout
gobase alternatives and similar packages
Based on the "Project Layout" category.
Alternatively, view gobase alternatives based on common mentions on social networks and blogs.
-
golang-standards/project-layout
Standard Go Project Layout -
ardanlabs/service
Starter code for writing web services in Go using Kubernetes. -
go-restful-api
An idiomatic Go REST API starter kit (boilerplate) following the SOLID principles and Clean Architecture -
golang-templates/seed
Go application GitHub repository template. -
go-starter
An opinionated production-ready SQL-/Swagger-first RESTful JSON API written in Go, highly integrated with VSCode DevContainers by allaboutapps. -
go-todo-backend
Go Todo Backend example using modular project layout for product microservice. -
wangyoucao577/go-project-layout
My understanding of how to structure a golang project.
Static code analysis for 29 languages.
Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.
Promo
www.sonarqube.org
Do you think we are missing an alternative of gobase or a related project?
README
GoBase
This is a simple skeleton for golang application. Inspired by development experience and updated according to github.com/golang-standards/project-layout.
How to use?
- Clone the repository (with git client
git clone github.com/wajox/gobase [project_name]
or use it as template on github for creating a new project) - replace
github.com/wajox/gobase
with[your_pkg_name]
in the all files
Structure
- /api - OpenAPI specs, documentation generated by swag
- /cmd - apps
- /db - database migrations and seeds
- /docs - documentation
- /internal - application sources for internal usage
- /pkg - application sources for external usage(SDK and libraries)
- /test - some stuff for testing purposes
Commands
# install dev tools(wire, golangci-lint, swag, ginkgo)
make install-tools
# start test environment from docker-compose-test.yml
make start-docker-compose-test
# stop test environment from docker-compose-test.yml
make stop-docker-compose-test
# build application
make build
# run all tests
make test-all
# run go generate
make gen
# generate OpenAPI docs with swag
make swagger
# generate source code from .proto files
make proto
# generate dependencies with wire
make deps
Create new project
With clonegopkg
# install clonegopkg
go install github.com/wajox/[email protected]
# create your project
clonegopkg clone [email protected]:wajox/gobase.git github.com/wajox/newproject
# push to your git repository
cd ~/go/src/github.com/wajox/newproject
git add .
git commit -m "init project from gobase template"
git remote add origin [email protected]:wajox/newproject.git
git push origin master
Tools and packages
- gin-gonic
- ginkgo with gomega
- spf13/viper
- spf13/cobra
- envy
- zerolog
- golangci-lint
- wire
- swag
- migrate
- protoc
- jsonapi
- docker with docker-compose
*Note that all licence references and agreements mentioned in the gobase README section above
are relevant to that project's source code only.