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.

  • Auth0 for AI Agents now in GA Icon
    Auth0 for AI Agents now in GA

    Ready to implement AI with confidence (without sacrificing security)?

    Connect your AI agents to apps and data more securely, give users control over the actions AI agents can perform and the data they can access, and enable human confirmation for critical agent actions.
    Start building today
  • The Original Buy Center Software. Icon
    The Original Buy Center Software.

    Never Go To The Auction Again.

    VAN sources private-party vehicles from over 20 platforms and provides all necessary tools to communicate with sellers and manage opportunities. Franchise and Independent dealers can boost their buy center strategies with our advanced tools and an experienced Acquisition Coaching™ team dedicated to your success.
    Learn More
  • 1
    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: 23 This Week
    Last Update:
    See Project
  • 2
    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
  • 3
    Ebiten

    Ebiten

    A dead simple 2D game library for Go

    Ebiten is an open source game library for the Go programming language. Ebiten's simple API allows you to quickly and easily develop 2D games that can be deployed across multiple platforms. In Ebiten, everything is an image: the screen, data from an image file, and even offscreen items are all represented as image objects. Most rendering operations consist of drawing one image on top of another. Ebiten games work on desktop (Windows, macOS, Linux, and FreeBSD), web browsers (through WebAssembly), and even on mobile (Android and iOS)! Plus, Ebiten is implemented in pure Go on Windows, so Windows developers do not need to install a C compiler. Nintendo Switch™ is also supported! While Ebiten's drawing API is very simple, Ebiten games run very fast with GPU power. Multiple images are integrated into a texture atlas internally, and drawing operations are automatically performed in batch when possible.
    Downloads: 9 This Week
    Last Update:
    See Project
  • 4
    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: 7 This Week
    Last Update:
    See Project
  • Inventors: Validate Your Idea, Protect It and Gain Market Advantages Icon
    Inventors: Validate Your Idea, Protect It and Gain Market Advantages

    SenseIP is ideal for individual inventors, startups, and businesses

    senseIP is an AI innovation platform for inventors, automating any aspect of IP from the moment you have an idea. You can have it researched for uniqueness and protected; quickly and effortlessly, without expensive attorneys. Built for business success while securing your competitive edge.
    Learn More
  • 5
    ipsw

    ipsw

    iOS/macOS Research Swiss Army Knife

    iOS/macOS Research Swiss Army Knife. ipsw was designed from the ground up to be easily installed and used to get you up and running quickly with an intuitive CLI. Simply the best tool to use when digging into Apple internals. Built-in a fast and memory-safe modern language with a huge community and mature standard lib.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 6
    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: 5 This Week
    Last Update:
    See Project
  • 7
    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: 5 This Week
    Last Update:
    See Project
  • 8
    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: 5 This Week
    Last Update:
    See Project
  • 9
    Grafana Operator

    Grafana Operator

    An operator for Grafana that installs and manages Grafana instances

    The Grafana Operator is a Kubernetes operator built to help you manage your Grafana instances and its resources in and outside of Kubernetes. Whether you’re running one Grafana instance or many, the Grafana Operator simplifies the processes of installing, configuring, and maintaining Grafana and its resources. Additionally, it's perfect for those who prefer to manage resources using infrastructure as code or using GitOps workflows through tools like ArgoCD and Flux CD.
    Downloads: 4 This Week
    Last Update:
    See Project
  • All-in-one security tool helps you prevent ransomware and breaches. Icon
    All-in-one security tool helps you prevent ransomware and breaches.

    SIEM + Detection and Response for IT Teams

    Blumira’s detection and response platform enables faster resolution of threats to help you stop ransomware attacks and prevent data breaches. We surface real threats, providing meaningful findings so you know what to prioritize. With our 3-step rapid response, you can automatically block known threats, use our playbooks for easy remediation, or contact our security team for additional guidance. Our responsive security team helps with onboarding, triage and ongoing consultations to continuously help your organization improve your security coverage.
    Learn More
  • 10
    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: 4 This Week
    Last Update:
    See Project
  • 11
    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: 3 This Week
    Last Update:
    See Project
  • 12
    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: 3 This Week
    Last Update:
    See Project
  • 13
    unipdf

    unipdf

    Golang PDF library for creating and processing PDF files (pure go)

    UniDoc UniPDF is a PDF library for Go (golang) with capabilities for creating and reading, processing PDF files. The library is written and supported by FoxyUtils.com, where the library is used to power many of its services. Every release of our libraries is automatically tested against known vulnerabilities and do not pass unless everything is remediated. All changes are carefully reviewed by our team.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 14
    Casbin

    Casbin

    An authorization library that supports access control models

    An authorization library that supports access control models like ACL, RBAC, ABAC for Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) and Elixir. In Casbin, an access control model is abstracted into a CONF file based on the PERM metamodel (Policy, Effect, Request, Matchers). So switching or upgrading the authorization mechanism for a project is just as simple as modifying a configuration. Besides memory and file, Casbin policy can be stored into lots of places. Currently, dozens of databases are supported, from MySQL, Postgres, Oracle to MongoDB, Redis, Cassandra, AWS S3. Check the full supported list at: adapters. Casbin is implemented in Golang, Java, PHP and Node.js. All implementations share the same API and behaviors. You can learn Casbin once and use it everywhere. In Casbin, the policy storage is implemented as an adapter(aka middleware for Casbin).
    Downloads: 2 This Week
    Last Update:
    See Project
  • 15
    OpenAI Go

    OpenAI Go

    The official Go library for the OpenAI API

    OpenAI Go is the official Go client library for accessing the OpenAI API. It enables developers to integrate OpenAI’s models and features into Go applications with a clean and idiomatic interface. The library provides support for a wide range of API endpoints including chat completions, assistants, embeddings, image generation, audio processing, and batch jobs. It includes built-in tools for handling authentication, managing API requests, and parsing structured responses. The repository also offers examples to help developers quickly set up projects and test different API calls. Designed for reliability and ease of use, it is maintained to stay aligned with the evolving OpenAI API specifications.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 16
    Centrifuge

    Centrifuge

    Real-time messaging library for Go with scalability in mind

    This library has no v1 release, API may change. Before v1 release patch version updates only have backward-compatible changes and fixes, minor version updates can have backward-incompatible API changes. Master branch can have unreleased code. Only two last Go minor versions are officially supported by this library. Centrifuge library is a real-time core of Centrifugo server. It's a general-purpose real-time messaging library for Go programming language. Real-time messaging can help create interactive applications where events are delivered to online users with minimal delay. Chats apps, live comments, multiplayer games, real-time data visualizations, collaborative tools, etc. can all be built on top of Centrifuge library. The library is built on top of efficient client-server protocol schema and exposes various real-time oriented primitives for a developer.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 17
    Cobra

    Cobra

    A Commander for modern Go CLI interactions

    Cobra is a library for creating powerful modern CLI applications, and at the same time a program to generate applications and command files. It provides a simple interface for creating powerful CLI interfaces, and will also generate application scaffolding so you can quickly develop your Cobra-based application. This scaffolding includes easy subcommand-based CLIs, fully POSIX-compliant flags, global, local and cascading flags, among many others. The structure of Cobra is based on commands, flags and arguments. The commands represent actions, the central point of the application; flags modify the behavior of commands; while arguments are things. With these easy-to-use concepts, users will natively understand how to use the application.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 18
    Excelize

    Excelize

    Go language library for reading and writing Microsoft Excel

    Excelize is a library written in pure Go providing a set of functions that allow you to write to and read from XLAM / XLSM / XLSX / XLTM / XLTX files. With Excelize chart generation and management is as easy as a few lines of code. You can build charts based off data in your worksheet or generate charts without any data in your worksheet at all. Excelize provided streaming API for generating or reading data from a worksheet with huge amounts of data. Simply runs Excelize on macOS, Linux and Windows operating systems without a hustle. With Excelize chart generation and management is as easy as a few lines of code. You can build charts based on data in your worksheet or generate charts without any data in your worksheet at all.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 19
    GoDotEnv

    GoDotEnv

    A Go port of Ruby's dotenv library

    A Go (golang) port of the Ruby dotenv project (which loads env vars from a .env file). Storing configuration in the environment is one of the tenets of a twelve-factor app. Anything that is likely to change between deployment environments–such as resource handles for databases or credentials for external services–should be extracted from the code into environment variables. But it is not always practical to set environment variables on development machines or continuous integration servers where multiple projects are run. Dotenv load variables from a .env file into ENV when the environment is bootstrapped. It can be used as a library (for loading in env for your own daemons etc) or as a bin command. There is test coverage and CI for both linuxish and windows environments, but I make no guarantees about the bin version working on windows. Existing envs take precedence of envs that are loaded later.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 20
    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
  • 21
    Keybase client

    Keybase client

    Keybase Go library, client, service, OS X, iOS, Android, Electron

    Keybase is secure messaging and file-sharing. We use public key cryptography to ensure your messages stay private. Even we can’t read your chats. Keybase works for families, roommates, clubs, and groups of friends, too. Keybase connects to public identities, too. You can connect with communities from Twitter, Reddit, and elsewhere. Don’t live dangerously when it comes to documents. Keybase can store your group’s photos, videos, and documents with end-to-end encryption. You can set a timer on your most sensitive messages. This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 22
    auth

    auth

    Authenticator via oauth2, direct, email and telegram

    This library provides “social login” with Github, Google, Facebook, Microsoft, Twitter, Yandex, Battle.net, Apple, Patreon, and Telegram as well as custom auth providers and email verification.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 23
    bleve

    bleve

    A modern text indexing library for go

    Import one package, build an index with three lines of code, query for documents with another three lines. Bleve includes general-purpose analyzers as well as pre-built text analyzers for the following languages, Danish, Dutch, English, Finnish, French, German, Hungarian, Italian, Norwegian, Persian, Portuguese, Romanian, Russian, Sorani, Spanish, Swedish, Thai, and Turkish. Support for aggregating facet information across search results. Supported facet types include Terms Facet, Numeric Range Facet, and Date Range Facet. By indexing your data with bleve you gain the ability to compose query types such as Term, Phrase, Match, Match Phrase, Prefix, Conjunction, Disjunction, Boolean, Numeric and Date Ranges, as well as Query String. Industry standard tf-idf scoring with query time boosting. Includes support for highlighting matching text within document fragments.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 24
    xdg

    xdg

    Go implementation of the XDG Base Directory Specification

    Provides an implementation of the XDG Base Directory Specification. The specification defines a set of standard paths for storing application files, including data and configuration files. For portability and flexibility reasons, applications should use the XDG-defined locations instead of hardcoding paths. The package also includes the locations of well-known user directories, as well as other common directories such as fonts and applications. The current implementation supports most flavors of Unix, Windows, macOS and Plan 9. On Windows, where XDG environment variables are not usually set, the package uses Known Folders as defaults. Therefore, appropriate locations are used for common folders which may have been redirected.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 25
    AWS Lambda for Go

    AWS Lambda for Go

    Libraries, samples and tools to help Go developers develop AWS Lambda

    Libraries, samples and tools to help Go developers develop AWS Lambda functions. Libraries, samples, and tools to help Go developers develop AWS Lambda functions. Preparing a binary to deploy to AWS Lambda requires that it is compiled for Linux and placed into a .zip file. Windows developers may have trouble producing a zip file that marks the binary as executable on Linux. To create a .zip that will work on AWS Lambda, the build-lambda-zip tool may be helpful.
    Downloads: 0 This Week
    Last Update:
    See Project
  • Previous
  • You're on page 1
  • 2
  • 3
  • 4
  • 5
  • Next