Skip to content
SPECIFICTION
Get listed

GHCup vs SDKMAN!

GHCup

haskell.org

SDKMAN!

sdkman.io

Side by side

FigureGHCupSDKMAN!
Price fromFree—
Free planYes—
Free trial——
Open source——
WebYes—
WindowsYesYes
macOSYesYes
LinuxYesYes
API—Yes
Self-hostedYes—
Plans published10
Spec score · Runtime Version Managers8.6 (#1)7.2 (#22)
Spec score · Development Environment Managers8.5 (#7)7.1 (#45)
PurposeGHCup is the main installer for the general purpose language Haskell.SDKMAN! manages multiple Software Development Kits on Unix systems.
Version managementGHCup provides installation and management for versions of GHC, cabal, HLS, and Stack.Users can install, uninstall, list, switch and set default SDK versions.

Plans

GHCup

  • GHCupFree

GHCup pricing →

SDKMAN!

No plans published.

SDKMAN! pricing →

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.

Visit haskell.org

SDKMAN!

SDKMAN! is a command-line interface and API for managing Software Development Kits in the JVM ecosystem. It supports languages and tools including Java, Scala, Kotlin, Groovy, Ant, Gradle, Grails, Maven, SBT, Spark, Spring Boot, and Vert.x. From the CLI, users can install, uninstall, list, inspect, switch, upgrade, and set default SDK versions. A project can record its versions in an .sdkmanrc file, with automatic switching available when entering its directory. Java distributions are obtained through the Foojay DISCO API. SDKMAN! works on macOS and Linux; Windows use requires WSL or MSYS with MinGW, since it does not run natively there. Cygwin is no longer supported. The installer requires curl, zip, and unzip, and works with Bash and ZSH. Its CI mode answers prompts, disables colored output, and turns off self-updates. SDKMAN! is free, open source, and Apache 2.0 licensed. Security updates are provided only for the latest released CLI version. The project says Go, Rust, Node.js, Python, and Ruby toolchains are outside its intended scope.

Visit sdkman.io