Browse free open source Go Libraries and projects below. Use the toggles on the left to filter open source Go Libraries by OS, license, language, programming language, and project status.

  • Enterprise-grade ITSM, for every business Icon
    Enterprise-grade ITSM, for every business

    Give your IT, operations, and business teams the ability to deliver exceptional services—without the complexity.

    Freshservice is an intuitive, AI-powered platform that helps IT, operations, and business teams deliver exceptional service without the usual complexity. Automate repetitive tasks, resolve issues faster, and provide seamless support across the organization. From managing incidents and assets to driving smarter decisions, Freshservice makes it easy to stay efficient and scale with confidence.
    Try it Free
  • Train ML Models With SQL You Already Know Icon
    Train ML Models With SQL You Already Know

    BigQuery automates data prep, analysis, and predictions with built-in AI assistance.

    Build and deploy ML models using familiar SQL. Automate data prep with built-in Gemini. Query 1 TB and store 10 GB free monthly.
    Try Free
  • 1
    Google Cloud Client Libraries for Go

    Google Cloud Client Libraries for Go

    Google Cloud Client Libraries for Go

    The Cloud Client Libraries are the recommended way to access Google Cloud APIs programmatically. The Cloud Client Libraries support accessing Google Cloud services in a way that significantly reduces the boilerplate code you have to write. The libraries provide high-level API abstractions so they're easier to understand. They embrace idioms of the language, work well with the standard library, and integrate better with your codebase. By default, each API will use Google Application Default Credentials for authorization credentials used in calling the API endpoints. This will allow your application to run in many environments without requiring explicit configuration.
    Downloads: 13 This Week
    Last Update:
    See Project
  • 2
    AndroidLibXrayLite

    AndroidLibXrayLite

    Lightweight Android library that bundles the Xray networking core

    AndroidLibXrayLite is a lightweight Android library that bundles the Xray networking core as an embeddable component for apps. Its purpose is to provide a minimal, size-optimized build of the native core with a clear Java/Kotlin interface to start, stop, and configure network tunnels. By exposing the core as an AAR with per-ABI artifacts, it keeps application footprints small while supporting common CPU architectures. The library abstracts process management and log streaming so host apps can control lifecycles and capture diagnostics. It’s particularly useful for developers who want to integrate secure, rule-based proxying into their own Android apps without re-implementing the native glue. With a focus on stability and easy updates, it shortens the path from concept to a working in-app networking stack.
    Downloads: 12 This Week
    Last Update:
    See Project
  • 3
    Stash

    Stash

    An organizer for your videos, written in Go

    Stash allows you to organize and view your own collection of adult video and image files. Think of it like a private Hub site for your personal porn collection. Every video file has its own scene. Scenes can be rated and tagged with performers, tags, movies and a studio. Bookmark your favorite parts of a scene with markers. Markers can be tagged and appear in the video scrubber when viewing a scene. Images can be rated and tagged with performers, tags and a studio. Galleries are collections of images. Galleries can be automatically created from zip files and folders containing image files. Preview and view all of your scenes and galleries from your web browser on your PC, tablet or phone. Stash directly streams videos to your web browser. Stash supports streaming of a large variety of formats and codecs to most web browsers.
    Downloads: 11 This Week
    Last Update:
    See Project
  • 4
    Vegeta

    Vegeta

    HTTP load testing tool and library. It's over 9000!

    Vegeta is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate. It can be used both as a command line utility and a library. You can install Vegeta using the Homebrew package manager on Mac OS X. Both the library and the CLI are versioned with SemVer v2.0.0. After v8.0.0, the two components are versioned separately to better isolate breaking changes to each. CLI releases are tagged with cli/vMAJOR.MINOR.PATCH and published on the Github releases page. As for the library, new versions are tagged with both lib/vMAJOR.MINOR.PATCH and vMAJOR.MINOR.PATCH. The latter tag is required for compatibility with go mod. The JSON format makes integration with programs that produce targets dynamically easier. Each target is one JSON object in its own line. The method and url fields are required. If present, the body field must be base64 encoded. The generated JSON Schema defines the format in detail.
    Downloads: 9 This Week
    Last Update:
    See Project
  • Streamline Azure Security with Palo Alto Networks VM-Series Icon
    Streamline Azure Security with Palo Alto Networks VM-Series

    Centrally manage physical and virtualized firewalls with Panorama

    Improve your security posture and reduce incident response time. Use the VM-Series to natively analyze Azure traffic and dynamically drive policy updates based on workload changes.
    Learn more
  • 5
    Go

    Go

    Go tools, libraries

    Go is a personal collection of Go tools, libraries, and command-line utilities maintained under the nikivdev ecosystem. It functions as a workspace for small Go-based projects rather than a single narrowly defined application. The repository includes development conventions tied to the author’s flow tooling, which helps set up tasks and run common project commands. It also supports compiling and deploying included CLIs into the user’s local path. The project is useful as a reference for how a developer organizes reusable Go utilities across multiple small tools. Its main value is as a living toolkit and development workspace for Go experiments, libraries, and productivity-oriented command-line programs.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 6
    env

    env

    A simple and zero-dependencies library to parse environment variables

    Parse environment variables to structs in Go. In Go, it’s dead simple to get the value from an environment variable. If you have a type that is not supported out of the box by the lib, you are able to use (or define) and pass custom parsers (and their associated reflect.Type) to the env.ParseWithFuncs() function. Env supports by default anything that implements the TextUnmarshaler interface. That includes things like time.Time for example. The upside is that depending on the format you need, you don't need to change anything. The downside is that if you do need time in another format, you'll need to create your own type. By default, slice types will split the environment value on ,; you can change this behavior by setting the envSeparator tag. If you set the envExpand tag, environment variables (either in ${var} or $var format) in the string will be replaced according with the actual value of the variable.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 7
    GCP Config Connector

    GCP Config Connector

    GCP Config Connector, a Kubernetes add-on for managing GCP resources

    GCP Config Connector is a Kubernetes add-on that allows Google Cloud resources to be managed through Kubernetes-style configuration and the cluster API. Its central idea is that infrastructure objects such as Cloud Storage or Cloud Spanner resources can be described declaratively in manifests, after which Config Connector creates or updates the corresponding Google Cloud resources and continuously reconciles them to match the declared state. This makes the project highly valuable for teams practicing GitOps, platform engineering, or Kubernetes-centered operations, because it brings cloud resource management into the same control model used for application deployment. The repository also reflects an active emphasis on resource development and reconciliation reliability, including a newer direct development approach intended to provide a more Kubernetes-native authoring experience.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 8
    M3U8

    M3U8

    Parser and generator of M3U8-playlists for Apple HLS. Library for Go

    This is the most complete open-source library for parsing and generating of M3U8 playlists used in HTTP Live Streaming (Apple HLS) for internet video translations. M3U8 is a simple text format and parsing library for it must be simple too. It does not offer ways to play HLS or handle playlists over HTTP.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 9
    XLSX

    XLSX

    Go (golang) library for reading and writing XLSX files

    xlsx is a library to simplify reading and writing the XML format used by recent version of Microsoft Excel in Go programs. Version 3.0.0 introduces some more breaking changes in the API. All methods that can return an `xlsx.File` struct now accept zero, one or many `xlsx.FileOption` functions as their final arguments. These can be used to modify the behavior of the resultant struct, in particular they replace the `…WithRowLimit` variants of those methods with the result of calling `xlsx.RowLimit` and they add the ability to define a custom backing store for the spreadsheet data to be held in whilst processing. The full API docs can be viewed using go’s built in documentation tool.
    Downloads: 4 This Week
    Last Update:
    See Project
  • Our Free Plans just got better! | Auth0 Icon
    Our Free Plans just got better! | Auth0

    With up to 25k MAUs and unlimited Okta connections, our Free Plan lets you focus on what you do best—building great apps.

    You asked, we delivered! Auth0 is excited to expand our Free and Paid plans to include more options so you can focus on building, deploying, and scaling applications without having to worry about your security. Auth0 now, thank yourself later.
    Try free now
  • 10
    Go Tools

    Go Tools

    Various packages and tools that support the Go programming language

    This subrepository holds the source for various packages and tools that support the Go programming language. Some of the tools, godoc and vet for example, are included in binary Go distributions. Others, including the Go guru and the test coverage tool, can be fetched with go get. Packages include a type-checker for Go and an implementation of the Static Single Assignment form (SSA) representation for Go programs. This repository uses prettier to format JS and CSS files. The version of prettier used is 1.18.2. It is encouraged that all JS and CSS code be run through this before submitting a change. However, it is not a strict requirement enforced by CI. This repository uses Gerrit for code changes.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 11
    go-chart

    go-chart

    go chart is a basic charting library in go

    Package chart is a very simple golang native charting library that supports time-series and continuous line charts. Master should now be on the v3.x codebase, which overhauls the api significantly. Per usual, see examples for more information. Actual chart configurations and examples can be found in the ./examples/ directory. They are simple CLI programs that write to output.png (they are also updated with go generate. Everything on the chart.Chart object has defaults that can be overridden. Whenever a developer sets a property on the chart object, it is to be assumed that value will be used instead of the default. The best way to see the api in action is to look at the examples in the ./_examples/ directory. I wanted to make a charting library that used only native golang, that could be stood up on a server (i.e. it had built-in fonts). The goal with the API itself is to have the "zero value be useful", and to require the user to not code more than they absolutely needed.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 12
    Go CORS handler

    Go CORS handler

    Go net/http configurable handler to handle CORS requests

    Go CORS handler is a Go package that provides a configurable middleware handler for Cross-Origin Resource Sharing in net/http applications. It is designed to make CORS behavior explicit, predictable, and easy to insert into an existing HTTP handler chain. Developers can define which origins, methods, headers, and credentials are allowed, instead of scattering CORS logic across routes. The library also handles preflight requests, making it useful for APIs consumed by browsers, frontend apps, and third-party clients. Because it returns a standard net/http handler, it fits naturally into many Go web stacks and routers. It is a focused utility for teams that need reliable CORS handling without adopting a larger framework.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 13
    Go Container Registry

    Go Container Registry

    Go library and CLIs for working with container registries

    go-containerregistry is a Go library (with companion tools) for interacting with container images and registries using OCI/Docker formats. It provides primitives to read, write, mutate, sign, and copy images and indexes across registries without shelling out to Docker. High-level utilities like crane and gcrane offer convenient CLIs for everyday tasks—listing tags, copying images between registries, flattening, creating tarballs, and more. The library handles authentication via a pluggable keychain system that understands Docker config files, credential helpers, and environment credentials. It understands multiple on-disk layouts (tarball, OCI layout, remote) and lets you transform images in memory by adding or rebasing layers, adjusting config, and annotating manifests. Because everything is regular Go code, it’s straightforward to embed in CI/CD systems, policy engines, and bespoke supply-chain tooling.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 14
    age

    age

    A simple, modern and secure encryption tool (and Go library)

    age is a security-oriented tool and library by Filo Sottile. age is a simple, modern, secure encryption utility (and Go library) that emphasizes minimal configuration and strong defaults. It provides small explicit keys, no complex options, and is designed for UNIX-style composability; you can pipe into it, integrate it into scripts, etc. It supports a clearly defined format and promotes interoperability across implementations (there are Rust, TypeScript, etc). The project is well-suited for personal data encryption, backup use-cases, scripting encryption workflows, and embedding encryption in tools. Because of its design philosophy, it avoids the bloat of many older encryption utilities while maintaining strong cryptographic hygiene. It’s especially useful for developers or system administrators who want to adopt encryption without learning a multitude of options.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 15
    Amazon EC2 Instance Selector

    Amazon EC2 Instance Selector

    A CLI tool and go library which recommends instance types

    A CLI tool and go library which recommends instance types based on resource criteria like vcpus and memory. There are over 270 different instance types available on EC2 which can make the process of selecting appropriate instance types difficult. Instance Selector helps you select compatible instance types for your application to run on. The command-line interface can be passed resource criteria like vcpus, memory, network performance, and much more and then return the available, matching instance types. If you are using spot instances to save on costs, it is a best practice to use multiple instances types within your auto-scaling group (ASG) to ensure your application doesn't experience downtime due to one instance type being interrupted. Instance Selector will help to find a set of instance types that your application can run on.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 16
    Certificate Transparency Go

    Certificate Transparency Go

    Auditing for TLS certificates (Go code)

    certificate-transparency-go is a Go codebase for building and interacting with Certificate Transparency (CT) systems, from low-level parsing to full log operation. It includes forked ASN.1 and X.509 packages tailored to accept and analyze real-world certificates, including pre-certificates that stricter libraries would reject, supporting CT’s role as an ecosystem observatory. A TLS parsing library, CT data types, and multiple client libraries enable access to CT logs over HTTP and DNS, along with scanners for traversing entire logs. The repository also provides command-line tools for verifying signed certificate timestamps, inspecting certificates and CRLs, and querying logs. For operators, a “CT personality” integrates with Trillian so you can run a CT log backed by a verifiable transparency log. The project is structured for contributors, with generators, mocks, linting, and presubmit tooling to keep changes consistent and reliable.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 17
    Cloud Foundation Toolkit Project

    Cloud Foundation Toolkit Project

    The Cloud Foundation toolkit provides GCP best practices as code

    Cloud Foundation Toolkit is a best-practices-as-code project intended to help teams build and manage Google Cloud environments in a more standardized, production-ready way. At its core, it combines a comprehensive set of Terraform blueprints with developer tooling that supports the creation and management of those blueprints. The repository is aimed at infrastructure teams that want reusable, policy-aligned starting points instead of assembling foundational cloud environments from scratch every time. Because the included blueprints are described as production-ready and aligned with Google recommendations, the project is particularly useful for organizations establishing landing zones, repeatable environment patterns, and governed infrastructure workflows. The presence of a dedicated CLI also expands the project beyond static modules by giving users tooling support for authoring and operating blueprint-based infrastructure.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 18
    Functional programming library golang

    Functional programming library golang

    functional programming library for golang

    This library aims to provide a set of data types and functions that make it easy and fun to write maintainable and testable code in Golang. Write many small, testable, and pure functions, i.e. functions that produce output only depending on their input and that do not execute side effects. Offer helpers to isolate side effects into lazily executed functions (IO). Expose a consistent set of compositions to create new functions from existing ones. For each data type, there exists a small set of composition functions. These functions are called the same across all data types, so you only have to learn a small number of function names. The semantic of functions of the same name is consistent across all data types.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 19
    Globally Unique ID Generator

    Globally Unique ID Generator

    xid is a globally unique id generator thought for the web

    Globally Unique ID Generator is a Go library for generating globally unique identifiers that are compact, sortable, and safe to use directly in server-side code. It uses a MongoDB ObjectID-inspired structure with a timestamp, machine identifier, process identifier, and counter. The binary form is 12 bytes, while the string form uses lowercase base32hex encoding to create a 20-character URL-safe representation. This makes xid shorter than standard UUID strings while preserving chronological sortability. It does not require a central generator server or explicit machine and data-center configuration, which makes it convenient for distributed web services. It is well suited for database records, API resources, logs, events, and other systems that need practical unique IDs without the length and randomness tradeoffs of UUIDs.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 20
    Hacks

    Hacks

    A collection of hacks and one-off scripts

    Hacks is a collection of experimental scripts, utilities, and one-off tools created to solve specific problems in security research, data processing, and automation. Rather than being a single cohesive application, it serves as a repository of practical command-line tools that can be used independently or combined into workflows. The scripts cover a wide range of tasks, including URL manipulation, parameter replacement, data extraction, and reconnaissance automation. Many of the tools in the repository are designed for efficiency and simplicity, enabling users to perform complex operations with minimal overhead. It is particularly popular among security researchers and developers who need quick, flexible solutions for niche problems.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 21
    Interactsh

    Interactsh

    An OOB interaction gathering server and client library

    Interactsh is an open-source tool for detecting out-of-band interactions. It is a tool designed to detect vulnerabilities that cause external interactions. Interactsh Cli client requires go1.17+ to install successfully. interactsh-client with -sf, -session-file flag can be used store/read the current session information from user defined file which is useful to resume the same session to poll the interactions even after the client gets stopped or closed. Running the interactsh-client in verbose mode (v) to see the whole request and response, along with an output file to analyze afterwards. Using the server flag, interactsh-client can be configured to connect with a self-hosted Interactsh server, this flag accepts single or multiple server separated by comma. Default servers are subject to change/rotate/down at any time, thus we recommend using a self-hosted interactsh server if you are experiencing issues with the default server.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 22
    Traceway

    Traceway

    The only tool you need to know what is happening and how to fix it

    Traceway is an OpenTelemetry-native observability platform that brings logs, traces, metrics, exceptions, session replay, real user monitoring, and AI tracing into one open-source product. It is designed so teams can point an OTLP exporter at it without adding vendor-specific SDKs or extra collector glue. The platform is aimed at small and growing engineering teams that want practical visibility into what is happening inside their systems and how to fix issues faster. It can be self-hosted or used through a hosted cloud option, giving teams flexibility depending on their infrastructure preferences. Traceway’s value comes from combining multiple observability pillars around shared trace context instead of splitting debugging across many disconnected tools. It is a strong fit for teams that want an MIT-licensed, all-included monitoring stack without open-core restrictions.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 23
    Uber Go Style Guide

    Uber Go Style Guide

    The Uber Go Style Guide

    This repository holds the Uber Go Style Guide, which documents patterns and conventions used in Go code at Uber. Styles are the conventions that govern our code. The term style is a bit of a misnomer, since these conventions cover far more than just source file formatting—gofmt handles that for us. The goal of this guide is to manage this complexity by describing in detail the Dos and Don'ts of writing Go code at Uber. These rules exist to keep the code base manageable while still allowing engineers to use Go language features productively. This guide was originally created by Prashant Varanasi and Simon Newton as a way to bring some colleagues up to speed with using Go. Over the years it has been amended based on feedback from others. This documents idiomatic conventions in Go code that we follow at Uber. A lot of these are general guidelines for Go, while others extend upon external resources.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 24
    lancet

    lancet

    A comprehensive, efficient, and reusable util function library of Go

    Lancet is a comprehensive, efficient, and reusable util function library of go. Inspired by the java apache common package and lodash.js. support 600+ go util functions. includes string, slice, datetime, net, crypto, concurrency, etc. Each module is designed as a package with no coupling between modules. Only depends on two kinds of libraries, go standard library and golang.org/x. Well structured, test for every exported function.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 25
    quicktemplate

    quicktemplate

    Fast, powerful, yet easy to use template engine for Go

    quicktemplate is a fast and efficient templating engine for Go that generates code at compile time to render templates with minimal runtime overhead. Unlike traditional templating systems that interpret templates dynamically, Quicktemplate compiles templates into Go code, significantly improving performance. This approach eliminates the need for reflection and reduces memory allocations, making it suitable for high-performance applications. The library is designed to be simple and lightweight, allowing developers to integrate it easily into existing projects. It supports features such as variable interpolation, loops, and conditional rendering, providing flexibility while maintaining speed. Quicktemplate is particularly useful for generating HTML, JSON, or other structured outputs in web applications. Overall, it offers a performance-focused alternative to conventional templating engines.
    Downloads: 1 This Week
    Last Update:
    See Project
MongoDB Logo MongoDB