Generate scaffold project layout for Go.

Overview

scaffold

Build Status codecov Go Report Card GoDoc

Scaffold generates starter Go project layout. Let you can focus on buesiness logic implemeted.

asciicast

The following is Go project layout scaffold generated:

├── Dockerfile
├── Makefile
├── README.md
├── cmd
│   └── main.go
├── config
│   ├── config.go
│   ├── config.yml
│   ├── database.go
│   ├── http.go
│   └── release.go
├── docker-compose.yml
├── model
│   └── model.go
└── web
    ├── routes.go
    ├── server.go
    └── version.go

Installation

Download scaffold by using:

$ go get -u github.com/catchplay/scaffold

Create a new project

  1. Going to your new project folder:
# change to project directory
$ cd $GOPATH/src/path/to/project
  1. Run scaffold init in the new project folder:
$ scaffold init
  1. That will generate a whole new starter project files like:
Create Dockerfile
Create README.md
Create cmd/main.go
Create config/config.go
Create config/database.go
Create config/http.go
Create config/release.go
Create docker-compose.yml
Create model/model.go
Create web/routes.go
Create web/server.go
Create web/version.go
Create Makefile
Create config/config.yml
Success Created. Please excute `make up` to start service.

  1. And you can run the new project by using:
$ make run 
You might also like...
Go Todo Backend example using modular project layout for product microservice.

go-todo-backend Go Todo Backend Example Using Modular Project Layout for Product Microservice. It's suitable as starting point for a medium to larger

Standard Go Project Layout

Standard Go Project Layout Translations: 한국어 문서 简体中文 正體中文 简体中文 - ??? Français 日本語 Español Overview This is a basic layout for Go application projects.

Standard Go Project Layout

Standard Go Project Layout Translations: 한국어 문서 简体中文 正體中文 简体中文 - ??? Français 日本語 Portuguese Español Overview This is a basic layout for Go applicatio

Standard Go Project Layout
Standard Go Project Layout

This is a basic layout for Go application projects. It's not an official standard defined by the core Go dev team; however, it is a set of common historical and emerging project layout patterns in the Go ecosystem. Some of these patterns are more popular than others. It also has a number of small enhancements along with several supporting directories common to any large enough real world application.

go:embed and the golang-standards project layout

An example of using the golang-standards project layout and the go:embed directive.

A practical Golang project layout

Golayout Golayout is a boilerplate project that containing the usage of the best practice and popular components. The code organization follows the st

🔑A high performance Key/Value store written in Go with a predictable read/write performance and high throughput. Uses a Bitcask on-disk layout (LSM+WAL) similar to Riak.

bitcask A high performance Key/Value store written in Go with a predictable read/write performance and high throughput. Uses a Bitcask on-disk layout

Kratos Service Layout

Kratos Layout Install Kratos

Go structure annotations that supports encoding and decoding; similar to C-style bitfields. Supports bitfield packing, self-describing layout parameters, and alignment.
Go structure annotations that supports encoding and decoding; similar to C-style bitfields. Supports bitfield packing, self-describing layout parameters, and alignment.

STRUCTure EXtensions structex provides annotation rules that extend Go structures for implementation of encoding and decoding of byte backed data fram

Grab is a tool that downloads source code repositories into a convenient directory layout created from the repo's URL's domain and path

Grab is a tool that downloads source code repositories into a convenient directory layout created from the repo's URL's domain and path. It supports Git, Mercurial (hg), Subversion, and Bazaar repositories.

This is an example of a keep-it-simple directory layout for Go projects that was created using DDD principles, please copy and share if you like it.

DDD Go Template This project was created to illustrate a great architectural structure I developed together with @fabiorodrigues in the period I was w

🔮 Graph Layout Algorithms in Go

Graph Layout Algorithms in Go This module provides algorithms for graph visualization in native Go. As of 2021-11-20, virtually all graph visualizatio

Memory-Alignment: a tool to help analyze layout of fields in struct in memory
Memory-Alignment: a tool to help analyze layout of fields in struct in memory

Memory Alignment Memory-Alignment is a tool to help analyze layout of fields in struct in memory. Usage go get github.com/vearne/mem-aligin Example p

Helps you enforce a layout per workspace

i3-layout-per-workspace This tool will allow you to force a layout on a workspac

✨ Generate unique IDs (Port of Node package "generate-snowflake" to Golang)

✨ Generate Snowflake Generate unique IDs. Inspired by Twitter's Snowflake system. 📦 Installation Initialize your project (go mod init example.com/exa

Generate a modern Web project with Go and Angular, React or Vue in seconds 🚀
Generate a modern Web project with Go and Angular, React or Vue in seconds 🚀

Goxygen Generate a Web project with Go and Angular, React or Vue. Goxygen aims at saving your time while setting up a new project. It creates a skelet

Show Languages In Code. A fast and lightweight CLI to generate stats on the languages inside your project
Show Languages In Code. A fast and lightweight CLI to generate stats on the languages inside your project

slic Show Languages In Code. Usage Run it with an -h flag to list all commands. -d flag can be used to specify the directory of search -i flag can be

Moby Project - a collaborative project for the container ecosystem to assemble container-based systems
Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

The Moby Project Moby is an open-source project created by Docker to enable and accelerate software containerization. It provides a "Lego set" of tool

Moby Project - a collaborative project for the container ecosystem to assemble container-based systems
Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

The Moby Project Moby is an open-source project created by Docker to enable and accelerate software containerization. It provides a "Lego set" of tool

Comments
  • is not support for go mod

    is not support for go mod

    run:

     ../scaffold/scaffold/scaffold init
    ````
    
    will see: 
    ````
    panic: cannot find $GOPATH environment variable
    
    goroutine 1 [running]:
    github.com/catchplay/scaffold/scaffold.init.0()
    	/Users/zhihu/private_project/scaffold/scaffold/scaffold.go:21 +0x99
    ````
    
    except: 
    ````
    can generate code in any path
    ````
    opened by m1zzx2 0
  • panic: runtime error: invalid memory address or nil pointer dereference

    panic: runtime error: invalid memory address or nil pointer dereference

    [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x113e0c5]

    goroutine 1 [running]: github.com/catchplay/scaffold/scaffold.(*scaffold).genFormStaticFle.func1(0xc0000aa580, 0x3b, 0x0, 0x0, 0x12328d8, 0xc0000988a0, 0x0, 0x0)

    opened by horzions 0
Owner
CATCHPLAY
CATCHPLAY
Go Todo Backend example using modular project layout for product microservice.

go-todo-backend Go Todo Backend Example Using Modular Project Layout for Product Microservice. It's suitable as starting point for a medium to larger

Muhammad Surya 180 Nov 25, 2022
Standard Go Project Layout

Standard Go Project Layout Translations: 한국어 문서 简体中文 正體中文 简体中文 - ??? Français 日本語 Español Overview This is a basic layout for Go application projects.

null 36.2k Nov 30, 2022
go:embed and the golang-standards project layout

An example of using the golang-standards project layout and the go:embed directive.

Leon Rowland 6 May 17, 2022
A go project generator, which aims to simplify building and releasing go projects by storing all project configuration in a single file called gojen.json, and creates appropriate workflow/git files using that config.

gojen Define your go project's configuration using a json config. This config can be used to generate a new go project for you, and can also create co

 Aatman 4 Mar 8, 2022
Go-web-scaffold - A simple scaffold for building web app quickly

Go-web-scaffold A simple scaffold for building web app quickly. features This sc

Statrue 3 Jan 21, 2022
A scaffold to quickly create a go project

OpenMix 出品:https://openmix.org Mix CLI 一个快速创建 go 项目的脚手架 A scaffold to quickly create a go project Installation 安装 go get -u github.com/mix-go/mixcli

Mix Go 22 Nov 16, 2022
A template repository to quickly scaffold a Kubewarden policy written with Go language

go-policy-template This is a template repository that can be used to to quickly scaffold a Kubewarden policy written with Go language. Don't forget to

Kubewarden 5 Sep 7, 2022
Scaffold to help building Terraform Providers using AWS IAM authentication.

Terraform Provider Scaffolding This repository is a template for a Terraform provider. It is intended as a starting point for creating Terraform provi

Paul Zietsman 1 Mar 31, 2022
Idiomatic Go input parsing with subcommands, positional values, and flags at any position. No required project or package layout and no external dependencies.

Sensible and fast command-line flag parsing with excellent support for subcommands and positional values. Flags can be at any position. Flaggy has no

Eric Greer 814 Nov 15, 2022
Go Project Sample Layout

go-sample A sample layout for Go application projects with the real code. Where it all comes from? Ideas used to create the architecture and structure

Eugene Russkikh 112 Nov 16, 2022