This resource was made by the Go community and wouldn't be possible without you! We appreciate and recognize all contributors.

Contribution Guidelines

Please be aware that we want to accept your contribution, but we have some rules to keep the minimum quality of the packages listed here. All reviews are not personal feedback, even if you are a developer reviewing your contribution. Sorry if we can't meet your expectations, we do our best.

To set this list apart from and complement the excellent Go wiki Projects page, and other lists, awesome-go is a specially curated list for high-quality, actively maintained Go packages and resources.

Please contribute links to packages/projects you have used or are familiar with. This will help ensure high-quality entries.

Quality standards

To be on the list, project repositories should adhere to the following quality standards (https://goreportcard.com/report/github.com/ github_user / github_repo):

Categories must have at least 3 items.

Preparing for review

Projects listed must have the following in their documentation. When submitting, you will be asked to provide them.

One way to accomplish the above is to add badges to your project's README file.

How to add an item to the list

Open a pull request against the README.md document that adds the repository to the list.

If you are creating a new category, move the projects that apply to the new category, ensuring that the resulting list has at least 3 projects in every category and that the categories are alphabetized.

Fill out the template in your PR with the links asked for. If you accidentally remove the PR template from the submission, you can find it here.

Congrats, your project got accepted - what now?

You are an awesome project now! Feel encouraged to tell others about it by adding one of these badges:
Mentioned in Awesome Go
Mentioned in Awesome Go

[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go)  
[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/avelino/awesome-go)

Maintenance expectations for projects listed here

To prevent removal from awesome-go, your project must maintain the following quality standards.

Highly recommended but not required:

How to remove an item from the list

If the project is hosted on Github, include a link to the project's submitter and/or author so that they will be notified of the desire to remove the project and have an opportunity to respond. The link should be of the form @githubID.

If the project is not hosted on Github, open an issue at the project in question's repository linking to the PR and stating the following:

This project is currently listed at awesome-go at https://github.com/avelino/awesome-go. However, it appears that the project is not maintaining the quality standards required to continue to be listed at the awesome-go project. This project is schedule to be removed within 2 weeks of this posting. To continue to be listed at awesome-go, please respond at: -- link to above PR --

Then, comment on your PR at awesome-go with a link to the removal issue at the project.

Maintainers

To make sure every PR is checked, we have team maintainers. Every PR MUST be reviewed by at least one maintainer before it can get merged.

The maintainers will review your PR and notify you and tag it in case any information is still missing. They will wait 15 days for your interaction, after that the PR will be closed.

Reporting issues

Please open an issue if you would like to discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, feel free to change its listing or let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental.

Removal changes will not be applied until they have been pending for a minimum of 1 week (7 days). This grace window benefits projects that may be going through a temporary transition but are otherwise worthy of being on the list.

Thanks everyone!

How decision are made

The official group of maintainers has the final decision on what PRs are accepted. Discussions are made openly in issues. Decisions are made by consensus.