Comparing xeus-Haskell and ihaskell kernels
15 days ago
- #Haskell
- #Jupyter
- #Kernels
- Two primary ways to run Haskell in Jupyter: IHaskell and xeus-haskell.
- IHaskell is a monolithic kernel that speaks the Jupyter protocol and drives GHC directly.
- xeus-haskell delegates protocol handling to Xeus (C++) and focuses on connecting to a Haskell interpreter (MicroHs).
- Jupyter communicates with kernels via five channels: Shell, IOPub, Stdin, Control, and Heartbeat.
- IHaskell uses the GHC API and ZeroMQ bindings, supporting the full GHC ecosystem but is sensitive to GHC versions.
- xeus-haskell uses MicroHs, which has a smaller runtime footprint but limited library compatibility.
- xeus-haskell is easier to install and can run in the browser via WebAssembly.
- IHaskell is better for server-side notebooks and heavy workloads, while xeus-haskell is suited for lightweight, client-side execution.
- Both kernels have distinct use cases: IHaskell for data science, xeus-haskell for interactive documentation and demos.