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.

  • MicroStation by Bentley Systems is the trusted computer-aided design (CAD) software built specifically for infrastructure design. Icon
    MicroStation by Bentley Systems is the trusted computer-aided design (CAD) software built specifically for infrastructure design.

    Microstation enables architects, engineers, and designers to create precise 2D and 3D drawings that bring complex projects to life.

    MicroStation is the only computer-aided design software for infrastructure design, helping architects and engineers like you bring their vision to life, present their designs to their clients, and deliver their projects to the community.
    Learn More
  • AestheticsPro Medical Spa Software Icon
    AestheticsPro Medical Spa Software

    Our new software release will dramatically improve your medspa business performance while enhancing the customer experience

    AestheticsPro is the most complete Aesthetics Software on the market today. HIPAA Cloud Compliant with electronic charting, integrated POS, targeted marketing and results driven reporting; AestheticsPro delivers the tools you need to manage your medical spa business. It is our mission To Provide an All-in-One Cutting Edge Software to the Aesthetics Industry.
    Learn More
  • 1
    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: 101 This Week
    Last Update:
    See Project
  • 2
    Go Jsonnet

    Go Jsonnet

    This an implementation of Jsonnet in pure Go

    go-jsonnet is a pure Go implementation of the Jsonnet data templating language, which extends JSON with variables, functions, imports, and a standard library so you can generate complex configuration safely. Instead of hand-maintaining massive JSON files, you write concise, reusable templates that evaluate to JSON or YAML, with deterministic semantics and rich error messages. The repository ships both an embeddable VM for Go programs and a command-line interpreter, making it easy to integrate templating into build systems, CLIs, and services. Import paths and custom resolvers let you structure large configuration trees across directories or remote sources, while top-level arguments and external variables parameterize builds per environment. Native functions can be registered from Go to expose domain-specific helpers without forking the language. Tooling such as a formatter and linter-friendly errors encourages clean, consistent templates that scale across teams.
    Downloads: 63 This Week
    Last Update:
    See Project
  • 3
    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: 28 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: 26 This Week
    Last Update:
    See Project
  • Simplify Purchasing For Your Business Icon
    Simplify Purchasing For Your Business

    Manage what you buy and how you buy it with Order.co, so you have control over your time and money spent.

    Simplify every aspect of buying for your business in Order.co. From sourcing products to scaling purchasing across locations to automating your AP and approvals workstreams, Order.co is the platform of choice for growing businesses.
    Learn More
  • 5
    go-toml

    go-toml

    Go library for the TOML file format

    Go library for the TOML format. This library supports TOML v1.0.0. Full API, examples, and implementation notes are available in the Go documentation. As much as possible, this library is designed to behave similarly as the standard library's encoding/json. While go-toml favors usability, it is written with performance in mind. Most operations should not be shockingly slow. Decoder can be set to "strict mode", which makes it error when some parts of the TOML document was not present in the target structure. This is a great way to check for typos. When most decoding errors occur, go-toml returns DecodeError), which contains a human readable contextualized version of the error. TOML supports native local date/times. It allows to represent a given date, time, or date-time without relation to a timezone or offset. To support this use-case, go-toml provides LocalDate, LocalTime, and LocalDateTime.
    Downloads: 23 This Week
    Last Update:
    See Project
  • 6
    Testcontainers Go

    Testcontainers Go

    Testcontainers for Go is a Golang library that provides a friendly API

    Testcontainers for Go is a Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers that should be run as part of a test and clean up those resources when the test is done.
    Downloads: 20 This Week
    Last Update:
    See Project
  • 7
    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: 19 This Week
    Last Update:
    See Project
  • 8
    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: 15 This Week
    Last Update:
    See Project
  • 9
    Caire

    Caire

    Content aware image resize library

    Caire is a content aware image resize library based on Seam Carving for Content-Aware Image Resizing paper. An energy map (edge detection) is generated from the provided image. The algorithm tries to find the least important parts of the image taking into account the lowest energy values. Using a dynamic programming approach the algorithm will generate individual seams across the image from top to down, or from left to right (depending on the horizontal or vertical resizing) and will allocate for each seam a custom value, the least important pixels having the lowest energy cost and the most important ones having the highest cost. We traverse the image from the second row to the last row and compute the cumulative minimum energy for all possible connected seams for each entry. The minimum energy level is calculated by summing up the current pixel value with the lowest value of the neighboring pixels obtained from the previous row.
    Downloads: 14 This Week
    Last Update:
    See Project
  • Skillfully - The future of skills based hiring Icon
    Skillfully - The future of skills based hiring

    Realistic Workplace Simulations that Show Applicant Skills in Action

    Skillfully transforms hiring through AI-powered skill simulations that show you how candidates actually perform before you hire them. Our platform helps companies cut through AI-generated resumes and rehearsed interviews by validating real capabilities in action. Through dynamic job specific simulations and skill-based assessments, companies like Bloomberg and McKinsey have cut screening time by 50% while dramatically improving hire quality.
    Learn More
  • 10
    Distribution

    Distribution

    The Docker toolset to pack, ship, store, and deliver content

    Distribution is a repository that contains the Open Source Docker Registry implementation, which is for the storage and distribution of Docker and OCI images using the OCI Distribution Specification. The goal of this project is to provide a simple, secure yet professional-grade and scalable content distribution system that lets users store, package, manage and exchange content in a reliable and efficient way. It also allows users to hack or roll their own content atop healthy open source components and implement their own solutions. The repository has three main components: the registry, libraries for interacting with distribution components, and the documentation related to the registry.
    Downloads: 14 This Week
    Last Update:
    See Project
  • 11
    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: 14 This Week
    Last Update:
    See Project
  • 12
    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: 11 This Week
    Last Update:
    See Project
  • 13
    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: 10 This Week
    Last Update:
    See Project
  • 14
    mo - Monads

    mo - Monads

    Monads and popular FP abstractions, powered by Go 1.18+ Generics

    mo - Monads is a functional programming utility library for Go that introduces monads and related abstractions using modern Go generics. The project brings well-known FP constructs such as Option, Result, Either, Future, IO, and Task into the Go ecosystem to help developers write safer and more composable code. By leveraging generics introduced in Go 1.18+, the library provides strong type safety without relying on reflection or code generation. It is particularly useful for managing nullable values, error propagation, asynchronous workflows, and functional pipelines in a predictable way. The design draws inspiration from languages like Scala, Rust, and TypeScript FP libraries, making it familiar to developers with functional backgrounds. Overall, samber/mo enables a more declarative and expressive programming style in Go while remaining lightweight and dependency-free.
    Downloads: 10 This Week
    Last Update:
    See Project
  • 15
    unioffice

    unioffice

    Pure go library for creating and processing Office Word documents

    unioffice is a library for creation of Office Open XML documents (.docx, .xlsx and .pptx). Its goal is to be the most compatible and highest-performance Go library for the creation and editing of docx/xlsx/pptx files. 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. Our SDKs libraries are flexible and developed to solve common problems. We provide high-level interfaces for common problem-solving and lower-level interfaces for less generic tasks. UniPDF and UniOffice are all in Pure go meaning you can build your applications easily, cross-compile across platforms and enjoy all the advantages of Golang. Our creator package enables you to generate flexible report in lightning speed. Complex reports can be generated in milliseconds, enabling you to create reports at the click of a button.
    Downloads: 10 This Week
    Last Update:
    See Project
  • 16
    waybackurls

    waybackurls

    Fetch all the URLs that the Wayback Machine knows about for a domain

    waybackurls is a command-line reconnaissance tool that retrieves historical URLs associated with a given domain by querying the Internet Archive’s Wayback Machine. It accepts input domains via standard input and outputs a list of discovered URLs, making it easy to integrate into pipelines and automated workflows. The tool is particularly valuable in security research, bug bounty hunting, and penetration testing, as it uncovers endpoints that may no longer be publicly linked but still exist on servers. By leveraging archived data, waybackurls helps identify hidden attack surfaces, legacy APIs, and forgotten resources that could be vulnerable. Its design is intentionally simple and efficient, focusing on delivering large volumes of URLs quickly with minimal configuration. The output can be combined with other tools for further analysis, such as filtering parameters or probing endpoints.
    Downloads: 10 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: 9 This Week
    Last Update:
    See Project
  • 18
    Coraza

    Coraza

    OWASP Coraza WAF is a golang modsecurity compatible firewall library

    Coraza is an open-source, enterprise-grade, high-performance Web Application Firewall (WAF) ready to protect your beloved applications. It is written in Go, supports ModSecurity SecLang rulesets and is 100% compatible with the OWASP Core Rule Set. Coraza is a drop-in alternative to replace the soon-to-be abandoned Trustwave ModSecurity Engine and supports industry-standard SecLang rule sets. Coraza runs the OWASP Core Rule Set (CRS) to protect your web applications from a wide range of attacks, including the OWASP Top Ten, with a minimum of false alerts. CRS protects from many common attack categories including: SQL Injection (SQLi), Cross Site Scripting (XSS), PHP & Java Code Injection, HTTPoxy, Shellshock, Scripting/Scanner/Bot Detection & Metadata & Error Leakages. Coraza is a library at its core, with many integrations to deploy on-premise Web Application Firewall instances.
    Downloads: 9 This Week
    Last Update:
    See Project
  • 19
    Resty

    Resty

    Simple HTTP and REST client library for Go

    Simple HTTP and REST client library for Go (inspired by Ruby rest-client). Features section describes in detail about Resty capabilities. Request URL Path Params (aka URI Params). Backoff Retry Mechanism with retry condition function reference. Resty client HTTP & REST Request and Response middleware. Request.SetContext supported. Authorization option of BasicAuth and Bearer token. Set request ContentLength value for all request or particular request. Custom Root Certificates and Client Certificates. Download/Save HTTP response directly into File, like curl -o flag. See SetOutputDirectory & SetOutput. Cookies for your request and CookieJar support. SRV Record based request instead of Host URL. Client settings like Timeout, RedirectPolicy, Proxy, TLSClientConfig, Transport, etc. Optionally allows GET request with payload, see SetAllowGetMethodPayload. Supports registering external JSON library into resty, see how to use. Exposes Response reader without reading response.
    Downloads: 9 This Week
    Last Update:
    See Project
  • 20
    kafka-go

    kafka-go

    Kafka library in Go

    We rely on both Go and Kafka a lot at Segment. Unfortunately, the state of the Go client libraries for Kafka at the time of this writing was not ideal. sarama, which is by far the most popular but is quite difficult to work with. It is poorly documented, the API exposes low level concepts of the Kafka protocol, and it doesn't support recent Go features like contexts. It also passes all values as pointers which causes large numbers of dynamic memory allocations, more frequent garbage collections, and higher memory usage. confluent-kafka-go is a cgo based wrapper around librdkafka, which means it introduces a dependency to a C library on all Go code that uses the package. It has much better documentation than sarama but still lacks support for Go contexts. goka is a more recent Kafka client for Go which focuses on a specific usage pattern. It provides abstractions for using Kafka as a message passing bus between services rather than an ordered log of events.
    Downloads: 9 This Week
    Last Update:
    See Project
  • 21
    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: 8 This Week
    Last Update:
    See Project
  • 22
    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: 8 This Week
    Last Update:
    See Project
  • 23
    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: 8 This Week
    Last Update:
    See Project
  • 24
    DarwinKit

    DarwinKit

    Native Mac APIs for Go. Previously known as MacDriver

    DarwinKit is a lightweight framework that provides system-level utilities and APIs for macOS and iOS development, allowing deeper interaction with the Darwin operating system.
    Downloads: 8 This Week
    Last Update:
    See Project
  • 25
    Dragonboat

    Dragonboat

    A feature complete and high performance multi-group Raft library in Go

    Dragonboat is a high-performance multi-group Raft consensus library in pure Go. Consensus algorithms such as Raft provides fault tolerance by allowing a system to continue to operate as long as the majority of member servers are available. For example, a Raft shard of 5 servers can make progress even if 2 servers fail. It also appears to clients as a single entity with strong data consistency always provided. All Raft replicas can be used to handle read requests for aggregated read throughput. Dragonboat handles all technical difficulties associated with Raft to allow users to just focus on their application domains. It is also very easy to use, our step-by-step examples can help new users to master it in half an hour. Easy to use pure-Go APIs for building Raft based applications. Feature complete and scalable multi-group Raft implementation. Disk based and memory based state machine support. Fully pipelined and TLS mutual authentication support.
    Downloads: 8 This Week
    Last Update:
    See Project
  • Previous
  • You're on page 1
  • 2
  • 3
  • 4
  • 5
  • Next
MongoDB Logo MongoDB