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

  • 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
  • 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
    Steampipe

    Steampipe

    Zero-ETL, infinite possibilities. Live query APIs, code & more

    Steampipe is the zero-ETL solution for getting data directly from APIs and services. We offer these Steampipe engines. SQL has been the data access standard for decades. It levels the playing field for your team, easily integrates with other systems, and accelerates delivery. Painlessly join live cloud configuration data with internal or external data sets to create new insights. Your cloud is a live database that changes fast. Don't wait on ETL to sync, or rely on old data. Crunch it where it's born, fueling new use cases and swift decisions.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 2
    Swarm Bee

    Swarm Bee

    Bee is a Swarm client implemented in Go

    Bee is a Swarm client implemented in Go. It’s the basic building block for the Swarm network: a private; decentralized; and self-sustaining network for permissionless publishing and access to your (application) data.There are two versioning schemes used in Bee that you should be aware of. The main Bee version does NOT follow strict Semantic Versioning. Bee hosts different peer-to-peer wire protocol implementations and individual protocol breaking changes would necessitate a bump in the major part of the version. Breaking changes are expected with bumps of the minor version component. New (backward-compatible) features and bug fixes are expected with a bump of the patch component. Major version bumps are reserved for significant changes in Swarm's incentive structure. The second set of versions that are important are the Bee's API versions (denoted in our Bee and Bee Debug OpenAPI specifications).
    Downloads: 2 This Week
    Last Update:
    See Project
  • 3
    golangci-lint

    golangci-lint

    Fast linters Runner for Go

    golangci-lint is a fast Go linters runner. It runs linters in parallel, uses caching, supports yaml config, has integrations with all major IDE and has dozens of linters included. ⚡ Very fast: runs linters in parallel, reuses Go build cache and caches analysis results. Yaml-based configuration. Integrations with VS Code, Sublime Text, GoLand, GNU Emacs, Vim, Atom, GitHub Actions. A lot of linters included, no need to install them. Minimum number of false positives because of tuned default settings. Nice output with colors, source code lines and marked identifiers.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 4
    rtlamr

    rtlamr

    An rtl-sdr receiver for Itron ERT compatible smart meters

    Utilities often use "smart meters" to optimize their residential meter reading infrastructure. Smart meters transmit consumption information in the various ISM bands allowing utilities to simply send readers driving through neighborhoods to collect commodity consumption information. One protocol in particular: Encoder Receiver Transmitter by Itron is fairly straightforward to decode and operates in the 900MHz ISM band, well within the tunable range of inexpensive rtl-sdr dongles. This project is a software-defined radio receiver for these messages. We make use of an inexpensive rtl-sdr dongle to allow users to non-invasively record and analyze the commodity consumption of their household. There's now experimental support for data collection and aggregation with rtlamr-collect.
    Downloads: 2 This Week
    Last Update:
    See Project
  • Go From AI Idea to AI App Fast Icon
    Go From AI Idea to AI App Fast

    One platform to build, fine-tune, and deploy ML models. No MLOps team required.

    Access Gemini 3 and 200+ models. Build chatbots, agents, or custom models with built-in monitoring and scaling.
    Try Free
  • 5
    Air Go

    Air Go

    Live reload for Go apps

    When I get started with developing websites in Go and gin framework, it's a pity that gin lacks live-reloading function. In fact, I tried fresh and it seems not much flexible, so I intended to rewrite it in a better way. Air is yet another live-reloading command line utility for Go applications in development. Just air in your project root directory, leave it alone, and focus on your code. For less typing, you could add alias air='~/.air' to your .bashrc or .zshrc. You can pass arguments for running the built binary by adding them after the air command.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 6
    Benthos

    Benthos

    Fancy stream processing made operationally mundane

    Benthos is a high performance and resilient stream processor, able to connect various sources and sinks in a range of brokering patterns and perform hydration, enrichments, transformations and filters on payloads. It comes with a powerful mapping language, is easy to deploy and monitor, and ready to drop into your pipeline either as a static binary, docker image, or serverless function, making it cloud native as heck. Delivery guarantees can be a dodgy subject. Benthos processes and acknowledges messages using an in-process transaction model with no need for any disk persisted state, so when connecting to at-least-once sources and sinks it's able to guarantee at-least-once delivery even in the event of crashes, disk corruption, or other unexpected server faults. This behaviour is the default and free of caveats, which also makes deploying and scaling Benthos much simpler.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 7
    BricksLLM

    BricksLLM

    Enterprise-grade API gateway that helps you monitor and impose cost

    BricksLLM is an open-source framework for building and managing production-ready LLM (Large Language Model) applications. It provides tooling for prompt engineering, memory management, observability, and chaining, all in one unified developer experience. BricksLLM is designed to reduce boilerplate and increase the maintainability of LLM-based workflows.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 8
    Connect Go

    Connect Go

    Simple, reliable, interoperable. A better gRPC

    Connect is a slim library for building browser and gRPC-compatible HTTP APIs. You write a short Protocol Buffer schema and implement your application logic, and Connect generates code to handle marshaling, routing, compression, and content type negotiation. It also generates an idiomatic, type-safe client. Handlers and clients support three protocols: gRPC, gRPC-Web, and Connect's own protocol. The Connect protocol is a simple, POST-only protocol that works over HTTP/1.1 or HTTP/2. It takes the best portions of gRPC and gRPC-Web, including streaming, and packages them into a protocol that works equally well in browsers, monoliths, and microservices. Calling a Connect API is as easy as using curl. Handlers and clients also support the gRPC and gRPC-Web protocols, including streaming, headers, trailers, and error details. gRPC-compatible server reflection and health checks are available as standalone packages.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 9
    Cosmos SDK

    Cosmos SDK

    A Framework for Building High Value Public Blockchains

    Cosmos is an ever-expanding ecosystem of interconnected apps and services, built for a decentralized future. The Cosmos SDK is a framework for building blockchain applications. Tendermint Core (BFT Consensus) and the Cosmos SDK are written in the Golang programming language. Cosmos SDK is used to build Gaia, the first implementation of the Cosmos Hub. The Cosmos SDK has mostly stabilized, but we are still making some breaking changes. The Cosmos SDK is an open-source framework for building multi-asset public Proof-of-Stake (PoS) blockchains, like the Cosmos Hub, as well as permission Proof-of-Authority (PoA) blockchains. Blockchains built with the Cosmos SDK are generally referred to as application-specific blockchains. The goal of the Cosmos SDK is to allow developers to easily create custom blockchains from scratch that can natively interoperate with other blockchains.
    Downloads: 1 This Week
    Last Update:
    See Project
  • Custom VMs From 1 to 96 vCPUs With 99.95% Uptime Icon
    Custom VMs From 1 to 96 vCPUs With 99.95% Uptime

    General-purpose, compute-optimized, or GPU/TPU-accelerated. Built to your exact specs.

    Live migration and automatic failover keep workloads online through maintenance. One free e2-micro VM every month.
    Try Free
  • 10
    DNSControl

    DNSControl

    Synchronize your DNS to multiple providers from a simple DSL

    DNSControl is an opinionated platform for seamlessly managing your DNS configuration across any number of DNS hosts, both in the cloud or in your own infrastructure. It manages all of the domains for the Stack Overflow network, and can do the same for you! Want to jump right in? Follow our quick start tutorial on a new domain or migrate an existing one. Read the language spec for more info. You can also view a list of all topics. Take advantage of the advanced features. Use macros and variables for easier updates. Upload your zones to multiple DNS providers. We make it easy to contribute by using GitHub, you can make code changes with confidence thanks to extensive integration tests. The project is newbie-friendly so jump right in! Maintain your DNS data as a high-level DS, with macros, and variables for easier updates.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 11
    Distributed Transactions Manager

    Distributed Transactions Manager

    A distributed transaction framework that supports multiple languages

    Support HTTP and GRPC, provide easy-to-use interfaces, lower substantially the barrier of getting started with distributed transactions, and newcomers can adapt quickly. Developers no longer worry about suspension, null compensation, idempotent transaction, and other tricky problems, the framework layer handles them all. Suitable for companies with the multi-language stack. Easy for go, python, php, nodejs, ruby and so forth. The only external dependence is the database server, easy to deploy, cluster, and scale horizontally. Supports TCC, SAGA, XA, and transaction messages. DTM is a distributed transaction framework that provides cross-service eventual data consistency. It provides saga, tcc, xa, 2-phase message, and outbox patterns for a variety of application scenarios. It also supports multiple languages and multiple store engines to form up a transaction.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 12
    EaseProbe

    EaseProbe

    A simple, standalone, and lightweight tool

    EaseProbe is a simple, standalone, and lightweight tool that can do health/status checking, written in Go. Checking the HTTP status code, Support mTLS, HTTP Basic Auth, and can set the Request Header/Body. Check whether a TCP connection can be established or not. Run a Shell command and check the result. Run a remote command via SSH and check the result. Support the bastion/jump server. Connect to a given port using TLS and (optionally) validate for revoked or expired certificates. Run an SSH command on a remote host and check the CPU, Memory, and Disk usage. MySQL. Connect to a MySQL server and run the SHOW STATUS SQL. Redis. Connect to a Redis server and run the PING command. Memcache. Connect to a Memcache server and run the version command or validate a given key/value pair. MongoDB. Connect to a MongoDB server and perform a ping. Kafka. Connect to a Kafka server and perform a list of all topics.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 13
    Erigon

    Erigon

    Ethereum implementation on the efficiency frontier

    Erigon is an implementation of Ethereum (execution client), on the efficiency frontier, written in Go. For an Archive node of Ethereum Mainnet we recommend >=3TB storage space: 1.8TB state (as of March 2022), 200GB temp files (can symlink or mount folder <datadir>/etl-tmp to another disk). Ethereum Mainnet Full node ( see --prune* flags): 400Gb. Erigon by default is "all in one binary" solution, but it's possible start TxPool as separated processes. Same true about: JSON RPC layer (RPCDaemon), p2p layer (Sentry), history download layer (Downloader), consensus. Don't start services as separated processes unless you have clear reason for it: resource limiting, scale, replace by your own implementation, security. How to start Erigon's services as separated processes, see in docker-compose.yml.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 14
    Ginkgo

    Ginkgo

    BDD testing framework for Go

    Ginkgo is a Go testing framework built to help you efficiently write expressive and comprehensive tests using Behavior-Driven Development (“BDD”) style. It is best paired with the Gomega matcher library but is designed to be matcher-agnostic. These docs are written assuming you’ll be using Gomega with Ginkgo. They also assume you know your way around Go and have a good mental model for how Go organizes packages under $GOPATH. Ginkgo is tested against Go v1.6 and newer To install Go, follow the installation instructions. An empty test suite is not very interesting. While you can start to add tests directly into books_suite_test.go you’ll probably prefer to separate your tests into separate files (especially for packages with multiple files). Ginkgo builds on Go's testing package, allowing expressive Behavior-Driven Development ("BDD") style tests. It is typically (and optionally) paired with the Gomega matcher library.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 15
    GoReleaser

    GoReleaser

    Deliver Go binaries as fast and easily as possible

    GoReleaser builds Go binaries for several platforms, creates a GitHub release and then pushes a Homebrew formula to a tap repository. All that wrapped in your favorite CI. Cross-compile your Go project. Release to GitHub, GitLab and Gitea. Create nightly builds. Create Docker images and manifests. Create Linux packages and Homebrew taps. Sign artifacts, checksums and container images. Announce new releases on Twitter, Slack, Discord and others. Generate SBOMs (Software Bill of Materials) for binaries and container images. GoReleaser was created to solve a problem we all had at some point: releasing software is boring and error prone. Generally speaking, those scripts tend to not be reusable and have dependencies on many other tools - which makes it hard to run the process on other machines. GoReleaser aims to make all these scripts obsolete: instead of writing scripts, you write a simple YAML configuration file; instead of many tools, you (usually) only need a single goreleaser binary.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 16
    Godo

    Godo

    DigitalOcean Go API client

    Godo is a Go client library for accessing the DigitalOcean V2 API. Create a new DigitalOcean client, then use the exposed services to access different parts of the DigitalOcean API. Currently, Personal Access Token (PAT) is the only method of authenticating with the API. You can manage your tokens at the DigitalOcean Control Panel Applications Page. If you need to provide a context.Context to your new client, you should use godo.NewClient to manually construct a client instead. If a list of items is paginated by the API, you must request pages individually. Some endpoints offer token based pagination. For example, to fetch all Registry Repositories. Each version of the client is tagged and the version is updated accordingly.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 17
    Hertz

    Hertz

    Go HTTP framework with high-performance and strong-extensibility

    Hertz [həːts] is a high-usability, high-performance and high-extensibility Golang HTTP framework that helps developers build microservices. It was designed with reference to other open-source frameworks like fasthttp, gin, echo and combined with the internal requirements in ByteDance. At present, it has been widely used inside ByteDance. Nowadays, more and more microservices use Golang. If you have requirements for microservice performance and hope that the framework can fully meet the internal customizable requirements, Hertz will be a good choice. During the development process, it is often more important to write the correct code quickly. Therefore, in the iterative process of Hertz, we actively listen to users' opinions and continue to polish the framework, hoping to provide users with a better user experience and help users write correct code faster.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 18
    Kubeshark

    Kubeshark

    The API traffic viewer for Kubernetes providing deep visibility

    The API traffic viewer for Kubernetes providing deep visibility into all API traffic and payloads going in, out and across containers and pods inside a Kubernetes cluster. Think TCPDump and Wireshark re-invented for Kubernetes. Deep visibility and monitoring of all API traffic and payloads going in, out and across containers and pods inside a Kubernetes cluster. View all API traffic and payloads going in, out and across containers and pods inside a Kubernetes cluster. Search all real-time and historical recorded API traffic and payloads using a comprehensive query language. Monitors all API traffic and payloads to find API drift and API anomalies and trace them down to source. Instant service dependency mapping through real-time API traffic analysis. Store all or a subset of traffic in PCAP files. View TCP stream request-response pairs and replay requests' payloads to a destination service.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 19
    Leaf

    Leaf

    A game server framework in Go (golang)

    Leaf, written in Go, is a open-source game server framework aiming to boost efficiency both in development and runtime. Simple APIs. Leaf tends to provide simple and plain interfaces which are always best for use. Self-healing. Leaf always tries to salvage the process from runtime errors instead of leaving it to crash. Multi-core support. Leaf utilize its modules and leaf/go to make use of CPU resouces at maximum while avoiding varieties of side effects may be caused. Each module runs inside a separate goroutine. Modules communicate with one another via a light weight RPC channel(leaf/chanrpc). Leaf suggests not to take in too many modules in your game server implementation. Gate module, for management of connection. Login module, for user authentication. Game module, for the main business.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 20
    MacDriver

    MacDriver

    Native Mac APIs for Go

    MacDriver is a toolkit for working with Apple/Mac APIs and frameworks in Go. It currently has 2 parts. The objc package wraps the Objective-C runtime to dynamically interact with Objective-C objects and classes. The cocoa, webkit, and core packages wrap objc with wrapper types for parts of the Apple/Mac APIs. They're being added to as needed by hand until we can automate this process with schema data. These packages effectively let you use Apple APIs as if they were native Go libraries, letting you write Mac applications (potentially also iOS, watchOS, etc) as Go applications. 1:1 mapping of API names with Objective-C APIs. Cocoa types: NSApplication, NSImage, NSMenu, NSWindow, more. Webkit types: WKWebView and configuration classes. Core types: NSData, NSDictionary, NSNumber, NSPoint, NSRect, NSSize, NSString, NSURL, more. Core also allows dispatching Go functions in the Cocoa run loop. Many constants/enums are defined.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 21
    Open Match

    Open Match

    Flexible, extensible, and scalable video game matchmaking

    Open Match is a flexible match-making system built to scale with your game. Write code, not config, to determine how matches should be made. Built to scale up and down quickly. For games big and small. Measure quality and latency of matches. Easily run experiments to find the right balance. Open Match is an open source game matchmaking framework that simplifies building a scalable and extensible Matchmaker. It is designed to give the game developer full control over how to make matches while removing the burden of dealing with the challenges of running a production service at scale. Building your Matchmaker is hard! Along with implementing the core logic to generate quality matches, it also involves solving challenging problems such as handling massive player populations, effectively searching through them and concurrently processing match generation logic at scale.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 22
    PTerm

    PTerm

    PTerm is a modern Go module to easily beautify console output

    PTerm is a modern TUI framework written in Go to beautify console output. It supports interactive printers, such as select menus and confirm prompts, as well as live printers, such as progress bars and spinners. It also features text printers for sections, headers, and info/warning/... messages. PTerm has support for visualization, with printers such as bar charts, tables, trees and much more. You can also create custom layouts with grid panels and centered content. It's completely configurable and 100% cross-platform compatible. Our first priority is to keep PTerm as easy to use as possible. All components are similar in design and implement interfaces to simplify mixing individual components together. We take special precautions to ensure that PTerm works on as many operating systems and terminals as possible. PTerm has a 100% test coverage, which means that every line of code inside PTerm gets tested automatically.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 23
    Ponzu

    Ponzu

    Headless CMS with automatic JSON API

    Ponzu is a powerful and efficient open-source HTTP server framework and CMS. It provides automatic, free, and secure HTTP/2 over TLS (certificates obtained via Let's Encrypt), a useful CMS and scaffolding to generate content editors, and a fast HTTP API on which to build modern applications. Ponzu is released under the BSD-3-Clause license. With the rise in popularity of web/mobile apps connected to JSON HTTP APIs, better tools to support the development of content servers and management systems are necessary. Ponzu fills the void where you want to reach for WordPress to get a great CMS, or Rails for rapid development, but need a fast JSON response in a high-concurrency environment. Since HTTP/2 Server Push is used, Go 1.8+ is required. However, it is not required of clients connecting to a Ponzu server to make HTTP/2 requests.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 24
    Render

    Render

    Go package for easily rendering JSON, XML, binary data, and HTML

    Render is a package that provides functionality for easily rendering JSON, XML, text, binary data, and HTML templates. Render can be used with pretty much any web framework provided you can access the HTTP.ResponseWriter from your handler. The rendering functions simply wraps Go's existing functionality for marshaling and rendering data. HTML: Uses the html/template package to render HTML templates. JSON: Uses the encoding/json package to marshal data into a JSON-encoded response. XML: Uses the encoding/xml package to marshal data into an XML-encoded response. Binary data: Passes the incoming data straight through to the HTTP.ResponseWriter. Text: Passes the incoming string straight through to the http.ResponseWriter. Render comes with a variety of configuration options. By default Render will attempt to load templates with a '.tmpl' extension from the "templates" directory.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 25
    Task

    Task

    A task runner / simpler Make alternative written in Go

    Task is a task runner / build tool that aims to be simpler and easier to use than, for example, GNU Make. Since it's written in Go, Task is just a single binary and has no other dependencies, which means you don't need to mess with any complicated install setups just to use a build tool. Easy installation: just download a single binary, add to $PATH and you're done! Or you can also install using Homebrew, Snapcraft, or Scoop if you want. Available on CIs: by adding this simple command to install on your CI script and you're ready to use Task as part of your CI pipeline; Truly cross-platform: while most build tools only work well on Linux or macOS, Task also supports Windows thanks to this shell interpreter for Go. Great for code generation: you can easily prevent a task from running if a given set of files haven't changed since last run (based either on its timestamp or content).
    Downloads: 1 This Week
    Last Update:
    See Project
MongoDB Logo MongoDB