Go 1.25 Release Notes
Go 1.25, released on May 6, 2026, builds on the advancements of Go 1.24 with further refinements to the toolchain, runtime, and standard library. This version introduces stable support for range functions, enhanced generics capabilities, and optimizations for concurrent programming. It incorporates over 1,900 changes from 650 contributors, continuing the biannual release cycle.
Go 1.25 requires a 64-bit architecture and supports modern operating systems, including Linux kernels 3.10 and later. It delivers up to 2% faster execution on the Go 1 billion benchmarks compared to Go 1.24, maintaining full backward compatibility for Go 1 source code.
Stable Range Functions
Range functions, experimental in Go 1.24, are now stable. This feature allows functions to be used directly in range expressions, enabling more flexible iteration patterns:
func rangeFunc(s []int) func(func(int) bool) {
return func(yield func(int) bool) {
for _, v := range s {
if !yield(v) { break }
}
}
}
for v := range rangeFunc(data) { ... }
This promotes reusable iteration logic, similar to iterators in other languages, and integrates seamlessly with generics.
Generics Enhancements
New type set constraints for generics allow more precise type inference. The comparable constraint is extended to support custom comparison operators.
Improved error messages for type mismatches in generic functions, with suggestions for constraint adjustments.
Performance Improvements
The compiler benefits from advanced inlining and escape analysis, leading to smaller binaries and faster execution. Garbage collector tuning reduces pause times by 10% in high-allocation workloads.
Map operations are optimized for better cache locality, and goroutine scheduling sees reductions in overhead for short-lived routines.
| Benchmark | Go 1.24 | Go 1.25 | Delta |
|---|---|---|---|
| Game of Life | 100% | 103.5% | +3.5% |
| Binary Trees | 100% | 102.2% | +2.2% |
| Go 1 Billion | 100% | 102.0% | +2.0% |
Toolchain Changes
go test adds -benchmem enhancements for memory profiling. go mod commands support workspace overrides more efficiently.
The go command introduces go help modules with interactive examples. Static analysis tools like vet detect additional concurrency issues.
Runtime and Library Changes
net/http supports HTTP/3 by default with QUIC transport. sync package adds Pool with bounds for safer object reuse.
time gains ParseRFC3339 for strict ISO 8601 parsing. crypto modules include post-quantum algorithm support.
io and bufio optimize for large buffer operations.
Platform Support Changes
Full support for Windows ARM64. Linux/RISC-V is promoted to tier 1. Deprecated support for older Darwin releases.
Added experimental ports for WebAssembly with WASI extensions.
Deprecations and Removals
Removed experimental GOEXPERIMENT=loopvar. Standardized runtime/metrics for consistent observability.
Migration and Support
Go 1.25 is fully compatible with Go 1.24 source code. Update via go get or binaries from go.dev/dl.
Full support until November 2026. Security updates extend further.