GHCup vs goenv
GHCup
haskell.orggoenv
github.comSide by side
| Figure | GHCup | goenv |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | Yes | — |
| Windows | Yes | — |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Self-hosted | Yes | — |
| Plans published | 1 | 1 |
| Spec score · Runtime Version Managers | 8.6 (#1) | 7.7 (#10) |
| Spec score · Development Environment Managers | 8.5 (#7) | 7.6 (#29) |
| Purpose | GHCup is the main installer for the general purpose language Haskell. | goenv manages Go versions using a model similar to pyenv and rbenv. |
Plans
In their own words
GHCup
GHCup is a free, open-source installer and version manager for the Haskell toolchain. It installs and manages GHC, cabal-install, Haskell Language Server (HLS), and Stack versions; Stack can also be configured to use GHC versions managed by GHCup. Listed functionality includes a terminal user interface and GHC cross-compilation. Installation guidance covers terminal commands for Linux, macOS, FreeBSD, and WSL2, alongside PowerShell instructions for Windows. The project describes Windows support as being in an early stage and uses a shim wrapper because Windows does not properly support symbolic links. On macOS, GHCup may prompt for command line tools; Windows setup includes msys2. The installer should be run as a non-root user on Unix-like systems and a non-admin user on Windows. GHCup relies on precompiled binaries, so compatibility can depend on the distribution and libraries such as libtinfo. WSL1 and macOS versions earlier than 10.13 are unsupported. Some ARM binaries are experimental: Stack and HLS on Linux ARM, and HLS bindists on macOS aarch64. Configuration can be stored in ~/.ghcup/config.yaml, with command-line options taking precedence.
goenv
goenv manages Go versions on Linux and macOS using a model similar to pyenv and rbenv. It supports global selections, per-project versions, and environment-variable overrides. Shim executables placed in PATH route Go commands to the selected installation, enabling automatic switching and project version pinning. The installation guide says goenv downloads prebuilt Go binaries provided by Google, while new Go versions are added automatically on a daily cron schedule. The project identifies v3 as its current stable version and recommends it for new installations; it says v3 is fully backward compatible with v2. Version 2 receives security patches and critical bug fixes, with support ending on or before December 31, 2028. Setup documentation covers Bash and Zsh, including a .bashrc note for Ubuntu. Installation options include Homebrew and ZPlug for Zsh, and the README includes AWS CodeBuild guidance. goenv is free under the MIT license.