Guide · Open source
How to use awesome-go: browse Go libraries by category
Updated · written with AI from the project's own documentation and checked against our catalogue data
awesome-go is a long, categorized list of third-party Go (Golang) libraries, frameworks and software, maintained as a README on GitHub. It is a directory of links, not a program you install. This guide shows you how to find a package for a specific task, compare options in a category, and submit or review a project.
Quick start
- 1Open the list. Go to the awesome-go README on GitHub or at awesome-go.com. No installation is needed.
- 2Open the contents. Use the Contents section to jump to the category that matches your task.
- 3Pick a category. Choose a category such as Web Frameworks, Database or Testing, and check any subcategories.
- 4Compare projects. Open the linked projects and read their documentation, license and recent activity.
- 5Optionally clone locally. Run git clone https://github.com/avelino/awesome-go if you want a local copy of the README.
- 6Flag or propose changes. Read CONTRIBUTING.md and submit a pull request if an entry needs updating or a project should be added.
What awesome-go is and what it is not
awesome-go lists other projects grouped by topic, such as Web Frameworks, Database, Testing, Command Line and Machine Learning. Each entry points to a project made by someone else. The list itself does not run code or provide a single application.
Developers use it to find existing packages instead of searching scattered sites one by one.
- It is a directory of links, not an installable tool.
- It does not audit the projects it lists.
- It is inspired by awesome-python and is licensed under MIT.
Read it online or clone it locally
The simplest way to use awesome-go is to open the README on GitHub or at the project homepage, awesome-go.com, and scroll or use the contents section. No prerequisites are listed for this.
If you want a local copy, the README mentions an optional clone of the repository.
- Online: open the README or https://awesome-go.com.
- Local (optional): clone the repository.
git clone https://github.com/avelino/awesome-goFind a library for a specific task
Start from the category that matches your task. The contents section has links to each category, and some categories have subcategories. For example, Command Line splits into Advanced Console UIs and Standard CLI, and Database splits into Caches, Database Schema Migration, SQL Query Builders and others.
If you are not sure which category fits, use your browser's find-on-page search with a keyword such as 'logging' or 'testing' and check the nearby entries.
- Open the contents and pick the closest category.
- Use find-on-page for a keyword if the category is unclear.
- Open the project link to read its own documentation before choosing.
Compare options before you adopt one
Categories often contain several projects that do similar jobs. Read each project's README, check how recently it has been maintained, and see whether its API fits your code. The list does not rank projects or measure quality for you.
The awesome-go README asks readers to flag projects that are no longer maintained or are not a good fit, so an entry may be outdated. Treat the list as a starting point for research.
- Check the project's own documentation and license.
- Look for recent activity in the project's repository.
- Try a small example before committing to a dependency.
Contribute or review a project for the list
To suggest a project, read the contribution guidelines in CONTRIBUTING.md first. The README asks contributors to submit a pull request to improve the file when a listed package is no longer maintained or is not a good fit.
The project is community-driven, and the README links to a Slack community for discussion.
- Read CONTRIBUTING.md in the repository.
- Submit a pull request to add, remove or correct an entry.
- Join the Golang Bridge Slack via the link in the README for discussion.
What people use it for
- A developer looking for a router or middleware for a Go web service, using the Web Frameworks section.
- A newcomer exploring what Go offers for data work by browsing Science and Data Analysis or Machine Learning.
- A team comparing several Testing or Mock libraries before choosing one for a project.
- A maintainer who wants to submit their own Go project for inclusion.
Frequently asked questions
Is awesome-go a program I can install?
No. awesome-go is a categorized README that links to third-party Go projects. You read it online or clone the repository to view it locally. It does not install or run software for you.
Do I need any prerequisites to use awesome-go?
The source does not list any prerequisites. You can read the list in a browser, and cloning the repository is optional.
Is awesome-go free and what is its license?
awesome-go is licensed under MIT. The projects it links to each have their own licenses, which you should check on their pages before use.
Are the libraries on awesome-go audited or safe?
No. The list does not audit the projects it includes. The README asks readers to flag unmaintained or poor-fit projects, so you should review security and quality yourself before depending on one.
What is the difference between awesome-go and awesome-python?
awesome-go lists Go projects, and it was inspired by awesome-python. Both are curated link lists in the same style, grouped by topic. Other comparable projects include sindresorhus/awesome, which covers awesome lists more broadly.
How do I add my project to awesome-go?
Read the contribution guidelines in CONTRIBUTING.md in the repository, then submit a pull request with your change. The README does not describe the review criteria beyond this guidance.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
Use awesome-go if you need to find a Go library for a specific task or want an overview of the Go ecosystem before choosing packages. Pick something else if you need a single ready-to-run application, or if you need guarantees that the listed projects are secure or well maintained, since the list does not vet them.
Install options & downloads