GoLand

The Go Ecosystem in 2025: Key Trends in Frameworks, Tools, and Developer Practices

Go turns 16 this year. To celebrate this milestone, we have taken a closer look at the latest Developer Ecosystem Survey results and examined the evolution of the Go ecosystem over the past five years.

According to JetBrains Data Playground, 2.2 million professional developers use Go as their primary programming language – twice as many as five years ago. If we add pros for whom Go is a secondary language, the number exceeds 5 million.

Go continues to be a top choice for adoption, as per the State of Developer Ecosystem Report 2025, 11% of all software developers are planning to adopt Go in the next 12 months. Like last year, it is fourth in the JetBrains Language Promise Index, trailing only Typescript, Rust, and Python.

Go developers usually fall into one of two categories, with some blending both types of roles:

  • Web backend developers who work on web applications involving microservices.
  • DevOps or Site Reliability Engineers who manage IT infrastructure platforms (Kubernetes or serverless architectures). They typically work on Kubernetes cluster operators, related Go web microservices and CLI utilities written in Go, Python, or Bash, as well as on infrastructure as code and service support.

Libraries that shape the Go ecosystem

Standard library

Go was designed with a “batteries included” philosophy, and the Go standard library is one of the language’s greatest strengths, usually sufficient for most needs. Developers rely on it because it’s clear, reliable, secure, performant, and simple. In Go culture, “stdlib first” is the default approach; third-party libraries are added mainly for convenience, not out of necessity.

Still, as Go applications have grown in scope, the ecosystem has evolved, too, with a set of widely used tools emerging that are both reliable and recommended for specific use cases.

Leading web frameworks and routers

Let’s examine how the popularity of Go frameworks and Go routers has changed since 2020.

Note: The values total more than 100%, as this was a multiple-selection question.

The net/http package, a standard library router, is the most common choice for routing among Go developers. It’s stable and doesn’t rely on any dependencies.

In recent years, chi has remained a popular alternative for building Go HTTP services. Usage has grown slightly since 2020, reaching about 12% of developers. chi is an idiomatic, lightweight router that is fully compatible with net/http, well-documented, and actively maintained.

gorilla/mux, once the most-used and powerful HTTP router, was archived in 2023. Since then, many projects have been migrated to chi or the standard library, especially after Go 1.22 introduced pattern routing in http.ServeMux. By 2025, 17% of Go developers reported using gorilla/mux regularly, down from 36% in 2020. Its share remains notable because of legacy projects, but it is expected to decline further.

The most popular Go web frameworks in 2025 are Gin, Echo, and Fiber.

Gin has grown steadily, with nearly half of Go developers (48%) using it in 2025, compared to 41% in 2020. While there’s no single ‘best’ web framework for Go, Gin leads the pack as one of the fastest, most established, and most recommended options.

Fiber, introduced in 2020 with a focus on speed and simplicity, has also gained traction. It’s now used by 11% of Go developers – close to Echo (16%) and ahead of Beego (4%), whose popularity continues to decline.

Testing frameworks and performance tools

Go has a strong culture of testing and benchmarking, rooted in its design philosophy that testing should be simple, consistent, and part of everyday development rather than an afterthought. This philosophy is reflected in the language itself: The standard library includes the testing package, which supports unit tests, benchmarks, examples, and fuzzing. Go developers are expected to profile and measure performance using built-in tools like pprof.

Note: The values total more than 100%, as this was a multiple-selection question.

Usage data confirms the philosophy – the built-in testing package remains the most frequently chosen option for Go developers writing unit tests. Yet for larger or enterprise projects, its capabilities are often insufficient, fueling the growth of frameworks and libraries like testify and gomock since 2020.

Testify extends the standard testing package, making tests cleaner and more readable. It suits most projects and is currently used by 27% of developers.

gomock, designed for mocking interfaces and external services, is used by about 21% of Go developers.

Several other Go testing frameworks are less widely used but valuable in specific cases. Ginkgo, often paired with Gomega for expressive matchers, excels in behavior-driven testing. Because they require a heavier setup, these tools are typically chosen for large or complex test suites. Ginkgo’s usage has held steady since 2020 at around 5%.

Godog is another BDD framework, enabling tests to be written in human-readable Gherkin syntax and linked to Go code. Godog is best suited for aligning developers with QA and product teams around shared understanding, rather than for low-level unit tests. Though not new, Godog has been actively maintained by the Cucumber GitHub organization since 2022 and has grown in adoption, with approximately 4% of Go developers using it in 2025.

Popular open-source libraries

Here are the most widely used open-source Go libraries in 2025, grouped by area of application.

Backend services

  • Logging:
    • log/slog (structured logging provided by stdlib in Go 1.21 and later) is the natural choice for starting fresh with minimal dependencies.
    • logrus is a structured logging library recommended for projects that must support Go versions earlier than 1.21. Although currently in maintenance mode, it is still stable and widely used.
    • zap and, to a lesser extent, zerolog are popular for high-performance logging.
  • Database:
    • database/sql (stdlib) provides a generic interface around SQL (or SQL-like) databases.
    • sqlx adds quality-of-life enhancements on top of database/sql. It is driver-agnostic and particularly suitable for multiple databases.
    • pgx is tied to Postgres and often used for first-class PostgreSQL support and performance.
    • ORM (object-relational mapper) libraries like GORM, ent, and others help map Go structs to database tables, letting you work with the database in a more object-oriented or declarative style. They are recommended for heavy abstraction (migrations, schema modeling, etc.).
  • Configuration:
  • Validation:

CLI applications

  • cobra is the most widely used library for building Go CLI applications with commands, flags, and auto-help. It’s a good fit for complex CLI with multiple subcommands – developer tools, automation scripts, and admin utilities – and is used by many major Go tools, like kubectl or helm.
  • urfave/cli is easy to learn and suitable for single-command or small CLI tools, as it generates clear help and usage output. It’s most often used for a lightweight CLI or as a replacement for DevOps/utility scripts.
  • bubbletea is a modern TUI (text-user interface) framework, used to build interactive or visual CLI apps such as menus, dashboards, progress bars, and more.

Kubernetes

  • k8s.io/client-go is the official Go client library for the Kubernetes API, providing clientsets, dynamic clients, discovery, informers, listers, REST, and authentication.
  • sigs.k8s.io/controller-runtime wraps client-go and offers manager, reconciler, caches, and webhooks functionalities.
  • The Operator Framework is a high-level scaffolding framework for building Kubernetes operators in Go. It utilizes controller-runtime under the hood and helps generate code, boilerplate, and CRD (custom resource definition) scaffolding.
  • sigs.k8s.io/kubebuilder is a framework for building Kubernetes APIs and operators using CRDs.

IDEs and development environments

IDEs and editors

The data indicates that the GoLand IDE, developed by JetBrains, remains the tool of preference for Go development, with 47% of respondents identifying it as their go-to IDE or editor. Approximately 6% of Go developers opt for IntelliJ IDEA with the Go plugin, primarily for its multi-language support.

The share of VS Code usage has remained stable recently, while overall editor usage shows a slight increase. Neovim has gained traction as a modern, open-source, and extensible successor to Vim. After Atom was sunset in 2022, its core contributors introduced Zed, an open-source, high-performance editor written in Rust. The proportion of other editors used for Go development has remained largely unchanged and minimal.

The most significant changes are associated with the rapid rise of LLMs and the growing demand for AI coding assistants. In 2025, 6% of Go developers identified Cursor – an AI-powered code editor based on VS Code launched in 2023 – as their primary development environment.

AI coding assistance

AI-powered coding tools have had a significant impact on the workflows of Go developers. Survey data indicates that, on average, Go developers began adopting AI earlier than their peers using other languages, and they continue to use it more extensively for day-to-day tasks. Currently, more than 70% of Go developers report using at least one AI assistant, agent, or code editor on a regular basis.

This high adoption rate is largely explained by the nature of the language itself. Even basic AI-driven code completion and test generation provide significant value when handling boilerplate code in Go. The language’s simplicity, structure, and predictability make it particularly suited to LLM-based code generation.

Here are the most popular AI coding assistants, agents, and code editors commonly used for Go development in 2025.

Note. This was a multiple-answer question. Results were filtered to include only respondents who stated Go as their main programming language. The table lists only those tools reported as being regularly used by more than 3% of respondents. The AI agents market is evolving rapidly; the data presented here was collected between April and June 2025.

Linting and static analysis

Go’s tooling ecosystem is known for its excellent static analysis and linting support. In addition to the tools included in the Go toolchain, several widely adopted solutions are commonly used in professional projects.

Golangci-lint has become the standard all-in-one linter runner for both CI/CD pipelines and local development. It runs linters in parallel, leverages caching for speed, and is highly configurable.

More than one hundred linters are included by default, among them popular options like gosec, govet, revive, errcheck, ineffasign, and staticcheck (a subset of rules), and many teams prefer to run these through golanci-lint.

Golangci-lint also integrates with all major IDEs, enabling a “shift-left approach”. For example, GoLand natively supports golangci-lint, running golangci-lint inspections in real time as you code and helping to catch issues early.

Another notable tool is nilaway, designed to detect potential nil panics in Go code. It is intended for offline use in terminals or CI/CD pipelines. For earlier detection during development, GoLand offers interprocedural analysis for detecting nil pointer dereferences. The nil pointer dereference detector is based on data flow analysis and optimized for incremental and lazy execution, reacting to code changes in real time within the editor.

Conclusion and future outlook for the Go ecosystem

As highlighted in our April post Is Golang Still Growing?, the Go ecosystem in 2025 remains healthy, stable, and mature. The language continues to be a leading choice for backend, infrastructure, and cloud-native systems. Go’s emphasis on productivity, security, and simplicity ensures its ongoing relevance and positions it well for further growth in the years ahead.

Methodology and data

The findings presented here are based on the State of Developer Ecosystem Report 2025. Methodology details and raw data are available here. All tables were filtered to include only respondents who identified Go as their primary programming language.

image description