FVM vs GHCup
FVM
fvm.appGHCup
haskell.orgSide by side
| Figure | FVM | GHCup |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | — | Yes |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · Development Environment Managers | 8.7 (#4) | 8.5 (#7) |
| Purpose | FVM manages multiple Flutter SDK versions and lets projects pin a version for consistent app builds. | GHCup is the main installer for the general purpose language Haskell. |
Plans
In their own words
FVM
FVM manages Flutter SDK versions by project, allowing teams to keep builds consistent while using different versions across projects. A project’s `.fvmrc` file records its selected Flutter version and can include project-specific settings and flavors. FVM switches among installed SDKs without downloading them again. It can identify unreferenced versions, preview cleanup candidates, and remove unused SDKs with `fvm cleanup`. The documentation describes commands suitable for CI/CD automation and support for custom Flutter repositories. FVM provides packages for macOS, Linux, and Windows, with architecture availability varying by system. Installation options include a shell script, Homebrew, Chocolatey, Pub, and standalone packages. FVM detects VS Code and updates `.vscode/settings.json` for the Dart Code extension to use the project’s managed SDK. Android Studio and IntelliJ settings must be configured separately to point to the FVM SDK path. JSON API commands expose installed SDKs, releases, cleanup data, environment context, and project configuration. FVM stores known project roots in a machine-local file and says it does not scan disks for projects. The project is licensed under MIT.
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.