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

  • Gemini 3 and 200+ AI Models on One Platform Icon
    Gemini 3 and 200+ AI Models on One Platform

    Access Google's best plus Claude, Llama, and Gemma. Fine-tune and deploy from one console.

    Build generative AI apps with Vertex AI. Switch between models without switching platforms.
    Start Free
  • Try Google Cloud Risk-Free With $300 in Credit Icon
    Try Google Cloud Risk-Free With $300 in Credit

    No hidden charges. No surprise bills. Cancel anytime.

    Use your credit across every product. Compute, storage, AI, analytics. When it runs out, 20+ products stay free. You only pay when you choose to.
    Start Free
  • 1
    Grabana

    Grabana

    User-friendly Go library for building Grafana dashboards

    Grabana provides a developer-friendly way of creating Grafana dashboards. Whether you prefer writing code or YAML, if you are looking for a way to version your dashboard configuration or automate the tedious and error-prone creation of dashboards, this library is meant for you.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 2

    Negroni

    Idiomatic HTTP Middleware for Golang

    Negroni is a middleware-focused library for Go with an idiomatic approach. It is similar to Martini, but comes in a small, non-intrusive package. Negroni is not a framework. It is designed to work directly with net/http. It is also BYOR (Bring Your Own Router), and plays well with most http routers available in the Go community by fully supporting net/http. Negroni is currently translated in a number of different languages, and comes with some default middleware that can be used for most applications and makes getting started with some of Negroni’s features a lot easier.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 3
    QOR

    QOR

    Libraries written in Go abstracting features needed for business apps

    QOR is architected from the ground up to accelerate development and deployment of Content Management Systems, E-commerce Systems, and Business Applications. QOR is comprised of modules that abstract common features for such systems, such as a configurable and flexible back office, a content publishing system, a media library, and much more. We built QOR at The Plant to accelerate development for our clients, it is at the core of our engineering strategy, and we maintain it on an ongoing basis. This is a complete rewrite of the original QOR, which was a proprietary framework written in Ruby on Rails. QOR 1.0 is the first version to be open sourced and distributed under the MIT license. QOR is built by engineers, for engineers. You will need a decent grasp of Go (Golang) to understand and use QOR. Instantly create a beautiful, cross platform, configurable admin for your application.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 4
    ReadLine

    ReadLine

    Readline is a pure go(golang) implementation for GNU-Readline library

    A powerful readline library in Linux macOS Windows Solaris AIX. Readline is a pure go(golang) implementation for the GNU-Readline kind library.
    Downloads: 0 This Week
    Last Update:
    See Project
  • MongoDB Atlas runs apps anywhere Icon
    MongoDB Atlas runs apps anywhere

    Deploy in 115+ regions with the modern database for every enterprise.

    MongoDB Atlas gives you the freedom to build and run modern applications anywhere—across AWS, Azure, and Google Cloud. With global availability in over 115 regions, Atlas lets you deploy close to your users, meet compliance needs, and scale with confidence across any geography.
    Start Free
  • 5
    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: 0 This Week
    Last Update:
    See Project
  • 6
    Stats Golang Statistics Package

    Stats Golang Statistics Package

    A well tested and comprehensive Golang statistics library package

    A well tested and comprehensive Golang statistics library / package / module with no dependencies.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 7
    Structs

    Structs

    Utilities for Go structs

    Structs contains various utilities to work with Go (Golang) structs. It was initially used by me to convert a struct into a map[string]interface{}. With time I've added other utilities for structs. It's basically a high-level package based on primitives from the reflect package. Feel free to add new functions or improve the existing code. Just like the standard lib strings, bytes and co packages, structs has many global functions to manipulate or organize your struct data. Lets define and declare a struct. The structs functions can be also used as independent methods by creating a new *structs.Struct. This is handy if you want to have more control over the structs (such as retrieving a single Field). Structs containPackage structs contains various utilities functions to work with structs various utilities to work with Go (Golang) structs. It was initially used by me to convert a struct into a map[string]interface{}. With time I've added other utilities for structs.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 8
    TCG

    TCG

    Terminal cell graphics library

    Terminal Cell Graphics (TCG) is a Go library that enables 1-bit graphics rendering in terminal applications using Unicode block symbols. It's designed for developers who want to incorporate simple graphics into CLI tools or games, providing a unique way to display visuals in text-based environments.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 9
    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: 0 This Week
    Last Update:
    See Project
  • AI-generated apps that pass security review Icon
    AI-generated apps that pass security review

    Stop waiting on engineering. Build production-ready internal tools with AI—on your company data, in your cloud.

    Retool lets you generate dashboards, admin panels, and workflows directly on your data. Type something like “Build me a revenue dashboard on my Stripe data” and get a working app with security, permissions, and compliance built in from day one. Whether on our cloud or self-hosted, create the internal software your team needs without compromising enterprise standards or control.
    Try Retool free
  • 10
    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: 0 This Week
    Last Update:
    See Project
  • 11
    cast

    cast

    safe and easy casting from one type to another in Go

    Cast is a Go library that provides easy and safe conversion (casting) between different types in Go programs. Especially when dealing with interface{} or dynamic/reflect-heavy code, it becomes cumbersome to assert types or convert values reliably; cast addresses that by offering a suite of functions to convert from any input to the target type with predictable behaviour. Rather than relying purely on raw type assertions, it offers ToInt, ToString, ToBool, ToTime, etc., and their “error-returning” counterparts like ToIntE. It is particularly useful when dealing with data from YAML, TOML, JSON or other formats where the type can be uncertain. The design choice is to avoid guessing about conversions: e.g., only a string strictly representing an integer can convert to int. The library is mature, tested, and widely used—thus ideal for projects that must handle dynamic input gracefully.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 12
    conc

    conc

    Better structured concurrency for go

    Conc is a Go library for managing structured concurrency, simplifying the development of concurrent applications with high performance.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 13
    do - Dependency Injection

    do - Dependency Injection

    A dependency injection toolkit based on Go 1.18+ Generics

    do - Dependency Injection is a lightweight dependency injection toolkit for Go that implements the DI pattern using the language’s generics system to provide strong type safety and minimal runtime overhead. The library offers a service container that allows developers to register, resolve, and manage application dependencies in a structured and maintainable way. It supports multiple service lifecycles such as eager, lazy, and transient loading, along with circular dependency detection and interface binding. The toolkit is designed to improve modularity, testability, and scalability in Go applications by reducing tight coupling between components. It also includes lifecycle management features like health checks and graceful shutdown handling, making it suitable for production services and microservices. Overall, samber/do delivers a modern, generics-powered alternative to traditional reflection-based DI frameworks in Go.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 14
    envconfig

    envconfig

    Golang library to manage configuration data from environment variables

    Package envconfig implements decoding of environment variables based on a user-defined specification. Typical use is using environment variables for configuration settings. Envconfig supports the use of struct tags to specify alternate, default, and required environment variables. Envconfig won't process a field with the "ignored" tag set to "true", even if a corresponding environment variable is set. Any field whose type (or pointer-to-type) implements envconfig.Decoder can control its own deserialization. Also, envconfig will use a Set(string) error method like from the flag.Value interface if implemented.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 15
    gev

    gev

    Gev is a lightweight, fast non-blocking TCP network library

    Gev is a lightweight, fast non-blocking TCP network library / websocket server based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers. Support custom protocols to quickly and easily build high-performance servers. High-performance event loop based on epoll and kqueue. Support multi-core and multi-threading. Dynamic expansion of read and write buffers implemented by Ring Buffer. Asynchronous read and write. SO_REUSEPORT port reuse support. Automatically clean up idle connections. Support WebSocket/Protobuf, custom protocols. Support for scheduled tasks and delayed tasks. High-performance web socket server.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 16
    go-cache

    go-cache

    An in-memory key:value store/cache library for Go

    go-cache is an in-memory key:value store/cache similar to memcached that is suitable for applications running on a single machine. Its major advantage is that, being essentially a thread-safe map[string]interface{} with expiration times, it doesn't need to serialize or transmit its contents over the network. Any object can be stored, for a given duration or forever, and the cache can be safely used by multiple goroutines. Although go-cache isn't meant to be used as a persistent datastore, the entire cache can be saved to and loaded from a file (using c.Items() to retrieve the items map to serialize, and NewFrom() to create a cache from a deserialized one) to recover from downtime quickly.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 17
    go-daemon

    go-daemon

    A library for writing system daemons in golang

    Library for writing system daemons in Go. Now supported only UNIX-based OS (Windows is not supported). But the library was tested only on Linux and OSX, so if you have the ability to test the library on other platforms, give me feedback, please (#26). We can not use fork syscall in Golang's runtime, because child process doesn't inherit threads and goroutines in that case. The library uses a simple trick: it runs its own copy with a mark - a predefined environment variable. Availability of the variable for the process means execution in the child's copy. So that if the mark is not set - the library executes the parent's operations and runs its own copy with the mark, and if the mark is set - the library executes the child's operations.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 18
    gon

    gon

    Sign, notarize, and package macOS CLI tools and applications

    gon is a simple, no-frills tool for signing and notarizing your CLI binaries for macOS. gon is available as a CLI that can be run manually or in automation pipelines. It is also available as a Go library for embedding in projects written in Go. gon can sign and notarize binaries written in any language. Beginning with macOS Catalina (10.15), Apple is requiring all software distributed outside of the Mac App Store to be signed and notarized. Software that isn't properly signed or notarized will be shown an error message with the only actionable option being to "Move to Bin". The software cannot be run even from the command-line. The workarounds are painful for users. gon helps you automate the process of notarization.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 19
    goqu

    goqu

    SQL builder and query library for golang

    SQL builder and query library for golang. goqu is an expressive SQL builder and executor. Query builder, parameter interpolation (e.g SELECT * FROM "items" WHERE "id" = ? -> SELECT * FROM "items" WHERE "id" = 1). Built from the ground up with multiple dialects in mind. Insert, multi insert, update, and delete support. Scanning of rows to struct[s] or primitive value[s]. While goqu may support the scanning of rows into structs it is not intended to be used as an ORM if you are looking for common ORM features like associations, or hooks I would recommend looking at some of the great ORM libraries. The test suite requires a postgres, mysql and sqlserver databases.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 20
    httprobe

    httprobe

    Take a list of domains and probe for working HTTP and HTTPS servers

    httprobe is a command-line tool that checks a list of domains to determine which ones have active HTTP or HTTPS services running. It reads domains from standard input and attempts connections on common ports such as 80 and 443, returning only those that respond successfully. The tool is designed for speed and efficiency, allowing users to process large lists of domains with configurable concurrency levels. It supports additional probes on custom ports and protocols, enabling more flexible scanning scenarios. httprobe also allows users to adjust timeouts and prioritize HTTPS results, making it adaptable to different reconnaissance needs. Its output can be easily piped into other tools for further analysis, such as vulnerability scanning or content discovery.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 21
    ishell

    ishell

    Library for creating interactive cli applications

    ishell is an interactive shell library for creating interactive cli applications. In some situations it is desired to exit the program directly after executing a single command. ishell is in active development and can still change significantly. Library for creating interactive cli applications.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 22
    jvm-mon

    jvm-mon

    Console-based JVM monitoring tool

    Console-based JVM monitoring - when you just want to SSH into a server and see what’s going on. jvm-top lets you monitor your JVM server applications from the terminal.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 23
    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: 0 This Week
    Last Update:
    See Project
  • 24
    lo

    lo

    A Lodash-style Go library based on Go 1.18+ Generics

    Samber/lo is a Lodash-style Go library based on Go 1.18+ Generics. This project started as an experiment with the new generics implementation. It may look like Lodash in some aspects. I used to code with the fantastic "go-funk" package, but "go-funk" uses reflection and therefore is not typesafe. As expected, benchmarks demonstrate that generics are much faster than implementations based on the "reflect" package. Benchmarks also show similar performance gains compared to pure for loops. In the future, 5 to 10 helpers will overlap with those coming into the Go standard library (under package names slices and maps). I feel this library is legitimate and offers many more valuable abstractions.
    Downloads: 0 This Week
    Last Update:
    See Project
  • 25
    migrate

    migrate

    Database migrations, CLI and Golang library

    Database migrations are written in Go. Use as CLI or import as a library. Migrate reads migrations from sources and applies them in correct order to a database. Drivers are "dumb", migrate glues everything together and makes sure the logic is bulletproof. (Keeps the drivers lightweight, too.) Database drivers don't assume things or try to correct user input. When in doubt, fail. Package migrate reads migrations from sources and runs them against databases. Sources are defined by the `source.Driver` and databases by the `database.Driver` interface. The driver interfaces are kept "dump", all migration logic is kept in this package.
    Downloads: 0 This Week
    Last Update:
    See Project
MongoDB Logo MongoDB