Download Go
The Go Programming Language is an open source project to make programmers more productive.
Go is a high-level general purpose programming language that is statically typed and compiled. It is known for the simplicity of its syntax and the efficiency of development that it enables by the inclusion of a large standard library supplying many needs for common projects. It is syntactically similar to C, but also has memory safety, garbage collection, structural typing, and CSP-style concurrency.
Featured downloads
Download packages for Windows 64-bit, macOS, Linux, and more:
Microsoft Windows
Windows 10 or later, Intel 64-bit processor
go1.24.3.windows-amd64.msiApple macOS (ARM64)
macOS 11 or later, Apple 64-bit processor
go1.24.3.darwin-arm64.pkgApple macOS (x86-64)
macOS 11 or later, Intel 64-bit processor
go1.24.3.darwin-amd64.pkgLinux
Linux 2.6.32 or later, Intel 64-bit processor
go1.24.3.linux-amd64.tar.gzSource
go1.24.3.src.tar.gz
After downloading a binary release suitable for your system, please follow the installation instructions.
If you are building from source, follow the source installation instructions.
See the release history for more information about Go releases.
As of Go 1.13, the go command by default downloads and authenticates modules using the Go module mirror and Go checksum database run by Google. See https://proxy.golang.org/privacy for privacy information about these services and the go command documentation for configuration details including how to disable the use of these servers or use different ones.
Stable versions
-
go1.24.3 (released 2025-05-06)
File name Kind OS Arch Size SHA256 Checksum go1.24.3.src.tar.gz Source 29MB 229c08b600b1446798109fae1f569228102c8473caba8104b6418cb5bc032878 go1.24.3.darwin-amd64.tar.gz Archive macOS x86-64 76MB 13e6fe3fcf65689d77d40e633de1e31c6febbdbcb846eb05fc2434ed2213e92b go1.24.3.darwin-amd64.pkg Installer macOS x86-64 77MB a05fa7e4043a4fec66897135219e3b8ab2202b5ef351c60c2fbb531dfb8f2900 go1.24.3.darwin-arm64.tar.gz Archive macOS ARM64 73MB 64a3fa22142f627e78fac3018ce3d4aeace68b743eff0afda8aae0411df5e4fb go1.24.3.darwin-arm64.pkg Installer macOS ARM64 73MB 97055ff4214043b39dc32e043fdd5c565df7c0a4e2fc0174e779a134c347ae0e go1.24.3.linux-386.tar.gz Archive Linux x86 73MB 41b1051063e68cbd2b919bf12326764fe33937cf1d32b5c529dd1a4f43dce578 go1.24.3.linux-amd64.tar.gz Archive Linux x86-64 75MB 3333f6ea53afa971e9078895eaa4ac7204a8c6b5c68c10e6bc9a33e8e391bdd8 go1.24.3.linux-arm64.tar.gz Archive Linux ARM64 71MB a463cb59382bd7ae7d8f4c68846e73c4d589f223c589ac76871b66811ded7836 go1.24.3.linux-armv6l.tar.gz Archive Linux ARMv6 73MB 17a392d7e826625dd12a32099df0b00b85c32d8132ed86fe917183ee5c3f88ed go1.24.3.windows-386.zip Archive Windows x86 82MB c27c463a61ab849266baa0c17a6c5c4256a574ab642f609ba25c96ec965dc184 go1.24.3.windows-386.msi Installer Windows x86 67MB 0d7e7dc0a31ba0cdd487415709d03b02fc9490ef111e8dfd22788a6d63316f37 go1.24.3.windows-amd64.zip Archive Windows x86-64 83MB be9787cb08998b1860fe3513e48a5fe5b96302d358a321b58e651184fa9638b3 go1.24.3.windows-amd64.msi Installer Windows x86-64 69MB d5b7637e7e138be877d96a4501709d480e050d86a8f402bc950e72112b5aedc5 Other Ports go1.24.3.aix-ppc64.tar.gz Archive aix ppc64 73MB 6f6901497547db3b77c14f7f953fbcef9fa5fb84199ee2ee14a5686e66bed5a6 go1.24.3.dragonfly-amd64.tar.gz Archive dragonfly x86-64 74MB 32de3fd44d5055973978436a7f1f0ffbaae85c1b603ec6105e5c38d8a674c721 go1.24.3.freebsd-386.tar.gz Archive FreeBSD x86 73MB 9fe6101b3797919bd7337ee5ce591954f85d59db7ae88983904db29fd64c3dd1 go1.24.3.freebsd-amd64.tar.gz Archive FreeBSD x86-64 75MB 6ccf4cca287e90cc28cd7954b6172f5d177a17e20b072b65f7f39636c325e2fb go1.24.3.freebsd-arm.tar.gz Archive FreeBSD arm 73MB ce45ebf389066f82a7b056b66dd650efb51fde6f8bf92a2a3ab6990f02788ebf go1.24.3.freebsd-arm64.tar.gz Archive FreeBSD ARM64 71MB 8f6494a12a874d0ea57c67987829359e016960ce3ba0673273609d6ac2af589a go1.24.3.freebsd-riscv64.tar.gz Archive FreeBSD riscv64 72MB f9db392560cf0851f0bc8f2190e1978e01b4603038c27fecfc8658a695b71616 go1.24.3.illumos-amd64.tar.gz Archive illumos x86-64 74MB 01717fff64c5d98457272002fa825d0a15e307bf6e189f2b0c23817fa033b61c go1.24.3.linux-loong64.tar.gz Archive Linux loong64 72MB e4b003c04c902edc140153d279b42167f1ad7c229f48f1f729bbef5e65e88d1f go1.24.3.linux-mips.tar.gz Archive Linux mips 70MB 1c79d89edf835edf9d4336ccea7cb89bc5c0ca82b12b36b218d599a5400d60fe go1.24.3.linux-mips64.tar.gz Archive Linux mips64 69MB 0b64fe147d69f4d681d8e8a035c760477531432f83d831f18d37cb9bf3652488 go1.24.3.linux-mips64le.tar.gz Archive Linux mips64le 69MB 396b784c255b64512dc00c302c053e43a3cbfc77518664c6ac5569aafad4d1e6 go1.24.3.linux-mipsle.tar.gz Archive Linux mipsle 69MB 93898313887f14e8efbe9d7386d5da4792b2d6c492bee562993fd4c9daa75c6d go1.24.3.linux-ppc64.tar.gz Archive Linux ppc64 72MB 873ae3a6a6655a7b6f820e095d9965507e8dfd3cf76bc92d75c564ecbca385f6 go1.24.3.linux-ppc64le.tar.gz Archive Linux ppc64le 72MB 341a749d168f47b1d4dad25e32cae70849b7ceed7c290823b853c9e6b0df0856 go1.24.3.linux-riscv64.tar.gz Archive Linux riscv64 72MB fa482f53ccb4ba280316b8c5751ea67291507280d9166f2a38fe4d9b5d5fb64b go1.24.3.linux-s390x.tar.gz Archive Linux s390x 74MB a87b0c2a079a0bece1620fb29a00e02b4dba17507850f837e754af7d57cda282 go1.24.3.netbsd-386.tar.gz Archive netbsd x86 72MB 63155382308db1306200aff7821aa26bf2a2dda23537dd637a9704b485b6ddf0 go1.24.3.netbsd-amd64.tar.gz Archive netbsd x86-64 74MB fe2c5c79482958b867c08a4fc2a10a998de9c0206b08d5b3ebcb2232e8d2777c go1.24.3.netbsd-arm.tar.gz Archive netbsd arm 72MB e8ff77aef21521b5dd94e44282a3243309b80717414cf12f72835a45886a049f go1.24.3.netbsd-arm64.tar.gz Archive netbsd ARM64 71MB b337fbaf82822685940ffaa76fbcf4be5d2f0258bc819cd80bc408b491f45c04 go1.24.3.openbsd-386.tar.gz Archive openbsd x86 72MB c1bb9dd8418480aa7f65452b08de3759da3bf89702be71b5a9fc084836b24ad5 go1.24.3.openbsd-amd64.tar.gz Archive openbsd x86-64 74MB 531218de748b0caaf6d1ad18921206fc12baaa89bf483a0a5e60a571c206fe6f go1.24.3.openbsd-arm.tar.gz Archive openbsd arm 72MB bcd0dc959986fc346969b5d4111c3c8031882d8bf8d87a2c2ecf1328962a91f2 go1.24.3.openbsd-arm64.tar.gz Archive openbsd ARM64 70MB 00ee6f8f1c41fd2e28ad386bd7e39acce7cab84af6de835855b29d1c597335c4 go1.24.3.openbsd-ppc64.tar.gz Archive openbsd ppc64 71MB 9f4ec0a9203ed3c54ce1a2a390ad3d45838cdb7efd85baeff857e37dfde04edd go1.24.3.openbsd-riscv64.tar.gz Archive openbsd riscv64 72MB da4d6f80e2373250d8c31c32dcd1e08775c327c0d610923604660cc0e07e8cba go1.24.3.plan9-386.tar.gz Archive plan9 x86 70MB f5d02149132eedda6c2d46b360d7da462b8a5f9e3f8567db100c2d7bff0ddcd7 go1.24.3.plan9-amd64.tar.gz Archive plan9 x86-64 72MB 175f3d79f4762a3c545d2c6393bf6b8bac24e838026869dafab06b930735c94f go1.24.3.plan9-arm.tar.gz Archive plan9 arm 70MB d1e4ac15095da1611659261c2228c2058756cf87d61d9fad262f76755ef26849 go1.24.3.solaris-amd64.tar.gz Archive solaris x86-64 74MB e644220a6ced3c07a7acc1364193cb709a97737dd8b6792a07a8ec6d9996713e go1.24.3.windows-arm64.zip Archive Windows ARM64 79MB eec9fa736056b54dd88ecb669db2bfad39b0c48f6f9080f036dfa1ca42dc4bb5 go1.24.3.windows-arm64.msi Installer Windows ARM64 66MB 7efde2e5e8468e9caf2c7fc94f4da78a726a5031a1ed63acff7899527cdddff6 -
go1.23.9 (released 2025-05-06)
File name Kind OS Arch Size SHA256 Checksum go1.23.9.src.tar.gz Source 27MB 08f6419547563ed9e7037d12b9c8909677c72f75f62ef85887ed9dbf49b8d2dd go1.23.9.darwin-amd64.tar.gz Archive macOS x86-64 72MB 50200cba5173100a6e880098cf3b2db4063394beaf7374e9766b6c19bb18012d go1.23.9.darwin-amd64.pkg Installer macOS x86-64 72MB 0f01f99ad6160a5c50deffcc3181f1bb06cd9c4ed54c2af8ef66d5907f967019 go1.23.9.darwin-arm64.tar.gz Archive macOS ARM64 68MB 2bf624b6399e41248255858b2d61abae2703eecafad39808449951f3f1ab3766 go1.23.9.darwin-arm64.pkg Installer macOS ARM64 69MB 533c55154a92406925b189a3354817daafac215fed505b010fd92a71e95d36f9 go1.23.9.linux-386.tar.gz Archive Linux x86 68MB 9145095dead1209fd4ce554cd5a18ac42861b168efcd849faf85b8639782f0f9 go1.23.9.linux-amd64.tar.gz Archive Linux x86-64 70MB de03e45d7a076c06baaa9618d42b3b6a0561125b87f6041c6397680a71e5bb26 go1.23.9.linux-arm64.tar.gz Archive Linux ARM64 67MB 3dc4dd64bdb0275e3ec65a55ecfc2597009c7c46a1b256eefab2f2172a53a602 go1.23.9.linux-armv6l.tar.gz Archive Linux ARMv6 68MB ade33880caacb8919b48767e0957e9880f2cdf634e137402a6f22552504136dd go1.23.9.windows-386.zip Archive Windows x86 77MB 1c2c713161a46012fbe46e46cd3d13b1f14330eea1713507ce065845ecae3d48 go1.23.9.windows-386.msi Installer Windows x86 62MB 21f275ff5c3f37fce547ad40ad84554106cd2fa0a8517cbec5f620c884319d10 go1.23.9.windows-amd64.zip Archive Windows x86-64 78MB 16409aa244b672de037389e9e39115cbf82633e5fa0d4db6ec1a9191ca00a1e1 go1.23.9.windows-amd64.msi Installer Windows x86-64 64MB b2f1146e81655a4d5fe3cf9e119eb59a365d9ea83ddfba805d596bae14c84c53 Other Ports go1.23.9.aix-ppc64.tar.gz Archive aix ppc64 68MB 3c4c4a52914a9114222a65d6c3abcc5521a3e9f4502da4c5bfc4f695c77c6b6f go1.23.9.dragonfly-amd64.tar.gz Archive dragonfly x86-64 70MB 410dd1af74133452bcc0f7380b000362ead267ca02bcdae1b82416e0582b02a2 go1.23.9.freebsd-386.tar.gz Archive FreeBSD x86 68MB 2ec88ecebd609768d0b2a19f5ae6df333f60e7ae1b06dab3562d21ac41d2f837 go1.23.9.freebsd-amd64.tar.gz Archive FreeBSD x86-64 70MB d939dd297a4ced4999147be03c22e3b667cee5479078373ed7bf7ccd1a777c83 go1.23.9.freebsd-arm.tar.gz Archive FreeBSD arm 68MB 790e8b5d83b509ee3b5c3abd1dbc90aa72348ade2b1e10fb702242ee4e42f3ac go1.23.9.freebsd-arm64.tar.gz Archive FreeBSD ARM64 67MB a2d01870891f9bd531e3ac4b9a1a0768fb9c3aeab69986f79d965ddb618b5c1a go1.23.9.freebsd-riscv64.tar.gz Archive FreeBSD riscv64 67MB eec460900861c9386556e56ac256ba0e86ed87dfe00930ed1a0a485871e1f1ae go1.23.9.illumos-amd64.tar.gz Archive illumos x86-64 69MB 7bee8b04ff2406272dc6ba27f7423ba0720bf5181dd01fcda20322e755d29a1a go1.23.9.linux-loong64.tar.gz Archive Linux loong64 68MB 50b08d8b3a7fb027608db01ff63152001b33710b2ec9acad995adbb63bd8a02a go1.23.9.linux-mips.tar.gz Archive Linux mips 66MB f467012d9ce5e43744f3dd1a351c71e3f9990c543c7ab5e6775846cedd09e0b6 go1.23.9.linux-mips64.tar.gz Archive Linux mips64 65MB 23486ac0530ea88e8ca88a3e286c51922fdc21a40ac9f0eeed1ee2b35acce940 go1.23.9.linux-mips64le.tar.gz Archive Linux mips64le 65MB fef65b253a2339453249bb90c65b02a2eb7a2c3c788b941fbc2a10a0eb9f41b2 go1.23.9.linux-mipsle.tar.gz Archive Linux mipsle 66MB d29059c2e82d4a655c5e4135436358ea41cc98e5584a18bb6085404950c65cd4 go1.23.9.linux-ppc64.tar.gz Archive Linux ppc64 67MB ed52941d8779cbea9579eccc20fc16e03de9f1b4a78ac3dded4d1fa61d87cff7 go1.23.9.linux-ppc64le.tar.gz Archive Linux ppc64le 67MB 4e23059029552ece0f37e626208caacfe088b7178409797be75280f6e850e98b go1.23.9.linux-riscv64.tar.gz Archive Linux riscv64 68MB e9027dfeb00a482271c2d068d2d0fd5d75aa5b49fa86542d8409cac3cd0c977f go1.23.9.linux-s390x.tar.gz Archive Linux s390x 69MB 25e7cb524f97f52369b6162e2440c87be128ed8e9ad9bd076e0706bba4f73817 go1.23.9.netbsd-386.tar.gz Archive netbsd x86 68MB 9d76093db116645e1a649b6b6b179c85e83832622958405c0e4420a4466c755b go1.23.9.netbsd-amd64.tar.gz Archive netbsd x86-64 70MB 12594b9f0fa3e1111b85acd75977d29244fcf371c901fc915115ccf1a44cae44 go1.23.9.netbsd-arm.tar.gz Archive netbsd arm 68MB 25d2a58a0c7692aeedaa30e3164ed197a5f5e75f6a483c16d4a2691bb5872c4f go1.23.9.netbsd-arm64.tar.gz Archive netbsd ARM64 67MB 43c32a4a190453dc63254e1a57d4c283cfffef967ec0c2e2672b4e570437fe12 go1.23.9.openbsd-386.tar.gz Archive openbsd x86 67MB d54729b2e4ba99d39cfbfe7be2811b3762dd4d58afa532d2817582df85b096c9 go1.23.9.openbsd-amd64.tar.gz Archive openbsd x86-64 69MB 2c973ca79fcad9c7f993d89231563ea91e058adc5c42466c568518e678154303 go1.23.9.openbsd-arm.tar.gz Archive openbsd arm 67MB 254e43c6b0337076db5da6ab4da7a4f5b3ee9ff63e13e862a0ab5d92fb290f97 go1.23.9.openbsd-arm64.tar.gz Archive openbsd ARM64 66MB 073b1a196f6277aaf6f58d6d8cf5a874e122481b90bd3b22136f8c3e4f3a2b74 go1.23.9.openbsd-ppc64.tar.gz Archive openbsd ppc64 66MB 90294d4138c8893eaf36e545c1817bf5a4bc6b0483890b84556b9a8ec52b49e9 go1.23.9.openbsd-riscv64.tar.gz Archive openbsd riscv64 67MB 4a9cadff5543bc2f3fa21c24050a38234710a32ab59a282d96a104dddf8f71f5 go1.23.9.plan9-386.tar.gz Archive plan9 x86 66MB fb3bea9e9f35bc7fba57f4419d5c49feb1922b85ae59fc9d3fd4d16e6f4ab4e7 go1.23.9.plan9-amd64.tar.gz Archive plan9 x86-64 68MB 124e00f3394ce3a8af8e6fba4f68a87293501d703fa712e1bfb9c66efd1ddb39 go1.23.9.plan9-arm.tar.gz Archive plan9 arm 66MB 76a89a0ed9cd27f36c10121a3d29d0e287c93e61fe2c36ef8e9320e895fe414d go1.23.9.solaris-amd64.tar.gz Archive solaris x86-64 69MB 417c35d0cc09bbaadb360738a9731018dcef9bd38247ba5a55d742546b791a70 go1.23.9.windows-arm.zip Archive Windows arm 76MB 30b775108eb7a716804c209cab4cc6e0e7e10f2cbf1483e1cb5da5b4215b98ba go1.23.9.windows-arm.msi Installer Windows arm 62MB 0c2c00e2cf57bac6fd0d17661762a7619ba66e55f73d9be06aff579cbf55695a go1.23.9.windows-arm64.zip Archive Windows ARM64 74MB a6cccd938dea6c24b7277be5d70cae2d4c2893ae41db72aad55be1915710bdca go1.23.9.windows-arm64.msi Installer Windows ARM64 62MB 3939bfb674ed8f50963954aad524c5c47b320107a3405acfbee49ef549d93843
Go installation
Select the tab for your computer's operating system below, then follow its installation instructions.
Linux
- Remove any previous Go installation by deleting the
/usr/local/gofolder (if it exists), then extract the archive you just downloaded into/usr/local, creating a fresh Go tree in/usr/local/go:$ rm -rf /usr/local/go && tar -C /usr/local -xzf go1.24.3.linux-amd64.tar.gz(You may need to run each command separately with the necessary permissions, as root or through
sudo.)Do not untar the archive into an existing /usr/local/go tree. This is known to produce broken Go installations.
- Add
/usr/local/go/binto thePATHenvironment variable.You can do this by adding the following line to your
$HOME/.profileor/etc/profile(for a system-wide installation):export PATH=$PATH:/usr/local/go/binNote: Changes made to a profile file may not apply until the next time you log into your computer. To apply the changes immediately, just run the shell commands directly or execute them from
source $HOME/.profile. - Verify that you've installed Go by opening a command prompt and typing the following command:
$ go version - Confirm that the command prints the installed version of Go.
Mac
- Open the package file you downloaded and follow the prompts to install Go.
The package installs the Go distribution to
/usr/local/go. The package should put the/usr/local/go/bindirectory in yourPATHenvironment variable. You may need to restart any open Terminal sessions for the change to take effect. - Verify that you've installed Go by opening a command prompt and typing the following command:
$ go version - Confirm that the command prints the installed version of Go.
Windows
- Open the MSI file you downloaded and follow the prompts to install Go.
By default, the installer will install Go to
Program FilesorProgram Files (x86). You can change the location as needed. After installing, you will need to close and reopen any open command prompts so that changes to the environment made by the installer are reflected at the command prompt. - Verify that you've installed Go.
- In Windows, click the Start menu.
- In the menu's search box, type
cmd, then press the Enter key. - In the Command Prompt window that appears, type the following command:
$ go version - Confirm that the command prints the installed version of Go.
For other content on installing, you might be interested in:
- Managing Go installations -- How to install multiple versions and uninstall.
- Installing Go from source -- How to check out the sources, build them on your own machine, and run them.
Get started with Go
Visit the Getting Started tutorial to write some simple Go code. It takes about 10 minutes to complete. You can also explore a wealth of learning resources, including guided journeys, courses, books, and more.
| Resources to start on your own | In-Person Training |
|---|---|
|
|
Documentation
Everything there is to know about Go. Get started on a new project or brush up for your existing Go code.
- Go Wiki
- A wiki maintained by the Go community.
- User Manual
- A complete introduction to building software with Go.
- Effective Go
- Tips for writing clear, performant, and idiomatic Go code.
- Standard library
- Reference documentation for Go's standard library.
- Release Notes
- Learn what's new in each Go release.
Try Go
- Tour of Go
- An interactive introduction to Go in four sections.
- Go Playground
- A place to write, run, and share Go code.
- Go Packages
- Browse all packages and symbols developed for Go.
- Go by Example
- Hands-on introduction to Go using annotated example programs.