Vagrant 2.3 Introduces Go Runtime
HashiCorp Vagrant 2.3 introduces a new Vagrant executable written in Golang, tying the Vagrant architecture more closely into the broader HashiCorp ecosystem.
The Vagrant team is pleased to announce HashiCorp Vagrant 2.3, which was recently released. This release marks the first minor release on the path to 3.0 and is the initial step in porting Vagrant from Ruby to Go. (You can find more information about our roadmap for Vagrant 3.0 in our Toward Vagrant 3.0 blog post from last year.)
Beginning with this 2.3 release, the Vagrant packages now include a vagrant-go
executable. This new executable is the updated Vagrant runtime written in Go. The Vagrant release packages still include the traditional Ruby-based Vagrant implementation, which is the current stable Vagrant release.
» Locate the Vagrant Codebase
To minimize confusion, the team's first Go release was developed in a private repository. However, as of the 2.3 release, this has been merged into the main branch of the repository. The Go-based source code is located in the ./internal
directory within the Vagrant repository.
The Vagrant Go implementation also includes a new plugin software development kit. This SDK includes the Go-based APIs for all Vagrant plugin types, along with helper utilities for building Vagrant plugins. The plugin SDK is located in a separate repository, which can be found here.
» Try Vagrant Go Now
The quickest way to try out the Vagrant Go implementation is to download and install the latest release package. Existing Ruby-based plugins and Vagrantfiles remain compatible.
Note that the Vagrant Go implementation is currently in an alpha state. As such, performance issues as well as bugs should be expected. Before using the Vagrant Go implementation, please refer to the documentation for information about differences in how the Vagrant Go implementation stores data and information compared to the Vagrant Ruby implementation.
To try out Vagrant Go, you'll need to:
- Download the latest release.
- Set up a development environment.
- Use the
vagrant-go
command to start the Go based binary.
» Known Vagrant Go Limitations
There are several known limitations in the Vagrant Go implementation. It is important to read and understand these limitations before using the vagrant-go
command. Because the Vagrant Go implementation is currently in alpha, we do not yet recommend using the Vagrant Go implementation in general workflows or development.
» We Want Your Feedback
If you encounter any issues with HashiCorp Vagrant 2.3 or want to provide feedback, please create an issue in GitHub.
Sign up for the latest HashiCorp news
More blog posts like this one
Vagrant Cloud is moving to HCP
Vagrant Cloud is moving to HashiCorp Cloud Platform (HCP) as the HCP Vagrant Registry.
HashiCorp 2022 Year in Review
Before we ring in the new year, here’s a look back at some of the most important moments in 2022 for HashiCorp.
Announcing the HashiCorp Releases API
The HashiCorp Releases API is now available. This API is your one-stop shop for finding and viewing extended metadata about HashiCorp product releases.