Go (Golang) officially supports a new platform: what does this mean for developers?
The Go (Golang) programming language development team has announced a significant expansion of the list of supported platforms. According to the latest commit in the official repository, Go now includes full support for the 64-bit RISC-V architecture (riscv64) on the FreeBSD operating system. This update opens up new opportunities for developers working with open and embedded systems.
Why is this important?
Until recently, Go supported FreeBSD on amd64 and 386 architectures. Adding RISC-V is not just "another platform." RISC-V is an open instruction set architecture (ISA) that is rapidly gaining popularity in the world of IoT, embedded devices, and server solutions. FreeBSD, in turn, is known for its stability and advanced networking subsystem. The combination of these two technologies with Go gives developers:
- Build flexibility — the ability to compile code for FreeBSD/riscv64 from any system where Go 1.22+ is installed.
- Better performance — native support for registers and optimizations for the 64-bit RISC-V architecture.
- Simplified development — eliminates the need to use third-party cross-compilers or emulators for testing.
- Security — Go, FreeBSD, and RISC-V together provide strong process isolation and memory protection.
Technical details of the update
Support is implemented at the level of the standard gc compiler and toolchain. Now, when building a program, you can specify GOOS=freebsd GOARCH=riscv64, and Go will compile a binary file ready to run on the corresponding hardware. It is important to note that support was considered experimental in Go 1.21, but is now fully stable in Go 1.22 and later. Developers can confidently use it in a production environment, provided their target platform uses FreeBSD 13.2+ (or newer).
How will this affect the ecosystem?
Adding a new platform is always a signal to the community. Already now:
- Popular Go libraries (net, http, crypto) have been updated for correct operation on riscv64.
- Docker images based on FreeBSD/riscv64 will appear in upcoming releases.
- Developers of embedded systems and routers on FreeBSD will be able to write in Go without worrying about compatibility.
What's next?
The next step, according to insiders, could be stable support for RISC-V on Linux (currently also experimental) and possibly the addition of ARM64 for FreeBSD (not yet supported). But even the current update is a serious step forward. If you work with FreeBSD or are planning to switch to RISC-V, now is the perfect time to test your Go applications on the new platform.
Follow updates on the official Go website and the golang/go repository on GitHub to not miss new platforms and improvements.