plantpkg - This plantpkg is a command line tool to generate an opinionated Go package structure that solves questions like: How should I organize my Go code?, How do I manage dependencies?

  •        2

The command will generate these files inside the Go package. The params and results are either Go primitive data types, Or protobuf defined data structs.

https://github.com/theplant/plantpkg

Tags
Implementation
License
Platform

   




Related Projects

Glide - Package Management for Golang

  •    Go

Are you used to tools such as Cargo, npm, Composer, Nuget, Pip, Maven, Bundler, or other modern package managers? If so, Glide is the comparable Go tool. Manage your vendor and vendored packages with ease. Glide is a tool for managing the vendor directory within a Go package. This feature, first introduced in Go 1.5, allows each package to have a vendor directory containing dependent packages for the project. These vendor packages can be installed by a tool (e.g. glide), similar to go get or they can be vendored and distributed with the package.

depscheck - Dependency checker for Golang (Go) packages

  •    Go

Dependency checker for Golang (Go) packages. Prints stats and suggests to remove small LeftPad-like imports if any. DepsCheck analyzes source code of your package and all its imports and attempts to find good candidates to be removed as a dependency. It only suggests to pay attention to those dependencies, nothing more. It also can shows detailed statistics for imported packages usage, including external functions, methods, variables and types used in your project. For functions and methods it calculates LOC (Lines Of Code), Cumulative LOC (sum of nested functions), number of calls, nesting depth and so on.

easyjson - Fast JSON serializer for golang.

  •    Go

Package easyjson provides a fast and easy way to marshal/unmarshal Go structs to/from JSON without the use of reflection. In performance tests, easyjson outperforms the standard encoding/json package by a factor of 4-5x, and other JSON encoding packages by a factor of 2-3x. easyjson aims to keep generated Go code simple enough so that it can be easily optimized or fixed. Another goal is to provide users with the ability to customize the generated code by providing options not available with the standard encoding/json package, such as generating "snake_case" names or enabling omitempty behavior by default.

goop - A simple dependency manager for Go (golang), inspired by Bundler.

  •    Go

A dependency manager for Go (golang), inspired by Bundler. It is different from other dependency managers in that it does not force you to mess with your GOPATH. Run goop install. This will install packages inside a subdirectory called .vendor and create Goopfile.lock, recording exact versions used for each package and its dependencies. Subsequent goop install runs will ignore Goopfile and install the versions specified in Goopfile.lock. You should check this file in to your source version control. It's a good idea to add .vendor to your version control system's ignore settings (e.g. .gitignore).

protobuf - Protocol Buffers for Go with Gadgets

  •    Go

gogoprotobuf is a fork of golang/protobuf with extra code generation features.Please let us know if you are using gogoprotobuf by posting on our GoogleGroup.


Afero - A FileSystem Abstraction System for Go

  •    Go

Afero is an filesystem framework providing a simple, uniform and universal API interacting with any filesystem, as an abstraction layer providing interfaces, types and methods. Afero has an exceptionally clean interface and simple design without needless constructors or initialization methods.Afero is also a library providing a base set of interoperable backend filesystems that make it easy to work with afero while retaining all the power and benefit of the os and ioutil packages.

go-sqlmock - Sql mock driver for golang to test database interactions

  •    Go

sqlmock is a mock library implementing sql/driver. Which has one and only purpose - to simulate any sql driver behavior in tests, without needing a real database connection. It helps to maintain correct TDD workflow.NOTE: in v1.2.0 sqlmock.Rows has changed to struct from interface, if you were using any type references to that interface, you will need to switch it to a pointer struct type. Also, sqlmock.Rows were used to implement driver.Rows interface, which was not required or useful for mocking and was removed. Hope it will not cause issues.

golang-restful-starter-kit - A RESTful application boilerplate in Go (golang) taking best practices and utilizing best available packages and tools

  •    Go

This starter kit is designed to get you up and running with a project structure optimal for developing RESTful services in Go. The kit promotes the best practices that follow the SOLID principles and encourage writing clear and idiomatic Go code. The kit uses the following Go packages which can be easily replaced with your own favorite ones since their usages are mostly localized and abstracted.

log15 - Structured, composable logging for Go

  •    Go

Package log15 provides an opinionated, simple toolkit for best-practice logging in Go (golang) that is both human and machine readable. It is modeled after the Go standard library's io and net/http packages and is an alternative to the standard library's log package.The API of the master branch of log15 should always be considered unstable. If you want to rely on a stable API, you must vendor the library.

konfig - Composable, observable and performant config handling for Go for the distributed processing era

  •    Go

Composable, observable and performant config handling for Go. Written for larger distributed systems where you may have plenty of configuration sources - it allows you to compose configurations from multiple sources with reload hooks making it simple to build apps that live in a highly dynamic environment. The name is Swedish for "config". We have a lot of nationalities here at Lalamove and to celebrate cultural diversity most of our open source packages will carry a name derived from a non-English language that is perhaps spoken by at least one of our employees(?).

go-packages - A large repository of code and documented examples for Go's standard package library.

  •    Go

A large repository of code and documented examples for Go's standard package library. go-packages is a large collection of code examples and documentation for a large majority of the functions and methods from Go's standard package library.

Go-Package-Store - An app that displays updates for the Go packages in your GOPATH.

  •    Go

Go Package Store displays updates for the Go packages in your GOPATH.That will create a binary at $GOPATH/bin/Go-Package-Store. You should run it from a terminal where your $GOPATH is set.

realize - Realize is the #1 Golang Task Runner which enhance your workflow by automating the most common tasks and using the best performing Golang live reloading

  •    Go

It will create a .realize.yaml file if doesn't already exist, add the working directory as project and run your workflow. ⚠️ The additional arguments must go after the params: 💡 The start command can be used with a project from its working directory without make a config file (--no-config).

go-sciter - Golang bindings of Sciter: the Embeddable HTML/CSS/script engine for modern UI development

  •    Go

Check this page for other language bindings (Delphi / D / Go / .NET / Python / Rust). The ownership of project is transferred to this new organization. Thus the import path for golang should now be github.com/sciter-sdk/go-sciter, but the package name is still sciter.

gojsonq - A simple Go package to Query over JSON Data

  •    Go

You can query your document using the various query methods such as Find, First, Nth, Pluck, Where, OrWhere, WhereIn, WhereStartsWith, WhereEndsWith, WhereContains, Sort, GroupBy, SortBy and so on. Also you can aggregate data after query using Avg, Count, Max, Min, Sum etc. If you encounter any bugs or issues, feel free to open an issue at github.

goth - Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications

  •    Go

Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications.Unlike other similar packages, Goth, lets you write OAuth, OAuth2, or any other protocol providers, as long as they implement the Provider and Session interfaces.

prototool - Your Swiss Army Knife for Protocol Buffers

  •    Go

Protobuf is one of the best interface description languages out there - it's widely adopted, and after over 15 years of use, it's practically bulletproof. However, working with Protobuf and maintaining consistency across your Protobuf files can be a pain - protoc, while being a tool that has stood the test of time, is non-trivial to use, and the Protobuf community has not developed common standards with regards to stub generation. Prototool aims to solve this by making working with Protobuf much simpler. Prototool accomplishes this by downloading and calling protoc on the fly for you, handing error messages from protoc and your plugins, and using the generated FileDescriptorSets for internal functionality, as well as wrapping a few great external libraries already in the Protobuf ecosystem.

gocron - A Golang Job Scheduling Package.

  •    Go

This package is currently looking for new maintainers. Please message @jasonlvhit if you are interested. goCron is a Golang job scheduling package which lets you run Go functions periodically at pre-determined interval using a simple, human-friendly syntax.

alloy - Boilerplate for creating web applications in Go (golang)

  •    Go

Alloy is a starter template for creating web applications using Go programming language. It does not aim to be a web framework but is instead a collection of useful libraries and packages that acts a sensible starting point. Recently, I decided to build my latest side project using Go. I started off with just the standard library and then gradually added a few recommended packages for performing common tasks like database calls (sqlx), migrations (pressly/goose) and sending emails (gomail). This boilerplate has been extracted from that side project.

fragmenta - A command line tool for creating, running and deploying golang websites, part of the fragmenta go web framework

  •    Go

Fragmenta is a command line tool for creating, managing and deploying golang web applications. It comes with a suite of libraries which making developing web apps easier, and aims to allow managing apps without making too many assumptions about which libraries they use or their internal structure. It takes care of generating CRUD actions, handling auth, routing and rendering and leaves you to concentrate the parts of your app which are unique. The following independent packages are available for use with fragmenta apps (or other go web apps).