Today, we are happy to make two announcements for GopherJS. First, GopherJS now officially supports Go 1.7, which is the current stable release of Go that came out recently. Second, GopherJS has its first named version attached to it, and we’re calling it GopherJS 1.7–1. This makes it possible to have a release history tracking major changes and additions between versions.
The support for Go 1.7 means that GopherJS 1.7–1 requires Go 1.7 and no longer works with Go 1.6. It’s highly recommended to be using the latest version of Go and GopherJS, but if you cannot update from Go 1.6 right away, you should continue to use GopherJS on the
GopherJS 1.7–1 continues to support nearly everything of the Go language specification, including goroutines. Please consult the package compatibility table to see which standard library packages are supported. Everything from the previous Go 1.6 version is still supported, as are many additions to Go 1.7, but there are some exceptions. For example, the new
reflect.StructOf function is not yet supported, but issue #499 tracks its implementation status. If you run into any bugs or discrepancies with what the compatibility table says, please file an issue.
Installation or upgrade instructions remain the same, even though GopherJS has a version number now. To get the latest official stable release, please follow the instructions in the README. You can confirm that you have the right version if
gopherjs version prints
Over the last few years, GopherJS has become increasingly complete and stable. Many advanced features of the Go language specification were implemented (such as goroutines, channels, and select statements). More and more of the viable standard library packages had all their tests pass and became officially supported. Many bugs were reported, investigated, and fixed. Today, it is used by many people for a broad range of projects.
However, many of those improvements to GopherJS were done quietly and internally, so only developers and people who follow the project very closely would become aware. Without a version number and release history, it’s harder for newcomers or people waiting for a stable release to have insight on the readiness state of GopherJS. With this version number and future release history, we hope to better communicate the maturity level of GopherJS and the fact that you can get started with it today.
In closing, we would like to thank everyone who contributed to this release of GopherJS. The Go team created and released Go 1.7. Richard Musiol created and implemented the core parts of GopherJS and Go 1.7 support. Many people have contributed code and bug fixes, reported/investigated/helped reproduce issues, created libraries and wrappers for various browser APIs. Everyone’s effort has helped get GopherJS to where it is today, giving us the opportunity to write front-end code in Go which will run in all modern browsers. See list of code contributors and list of closed issues. We welcome all help; if you’d like to get involved, see the community section. If you have a good experience with GopherJS, tell your fellow gophers about it!
If you’d like to get started with GopherJS, here are some next steps you can take:
- Try it right now in your browser with the GopherJS playground.
- Begin creating your web app using the gopherpen template project as a starting point.
Happy surfing with Go 1.7 and GopherJS 1.7–1!