[ANN] Monomer, a GUI library for Haskell

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/haskell

Our great sponsors
  • InfluxDB - Access the most powerful time series database as a service
  • SonarQube - Static code analysis for 29 languages.
  • SaaSHub - Software Alternatives and Reviews
  • monomer

    An easy to use, cross platform, GUI library for writing Haskell applications.

    I don't have any comments about the library itself, but I wanted to say that I very much appreciate that you took the time to write this out: https://github.com/fjvallarino/monomer/blob/main/docs/design-decisions.md

  • LambdaHack

    Haskell game engine library for roguelike dungeon crawlers; please offer feedback, e.g., after trying out the sample game with the web frontend at

    I've recently tried that and gave up (https://github.com/LambdaHack/LambdaHack/issues/248). Perhaps it's possible to statically link SDL2, but I learnt it's impossible to statically link the OpenGL and X11 libraries, so you end up with a partially statically linked binary (I didn't manage to obtain even that).

  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • gi-gtk-declarative

    Declarative GTK+ programming in Haskell

    What are the main differences to and advantages over gi-gtk-declarative?

  • static-haskell-nix

    easily build most Haskell programs into fully static Linux executables

    In static-haskell-nix there is currently this PR to enable support for that: https://github.com/nh2/static-haskell-nix/pull/108

  • nanovg

    Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.

    What is your take on the underlying library NanoVG stating

  • MetalNanoVG

    The Metal port of NanoVG.

    It's not ideal, but the feature set used by Monomer has been stable for quite a while. It's also a kind of small library, which makes porting it to other backends feasible (a version for Metal, which I have not tested, can be found here)

  • Skia

    Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

    I took a look at using Skia, but the C bindings are marked as not stable and it does not look like an easy to distribute library (plus compiling it takes a long time).

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • imgui

    Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

    The other option that looks really interesting is using ImGui's ImDrawList, but I haven't validated if something Monomer uses is missing. The main advantage is it supports quite a few backends (Vulkan included), plus it also is a small library.

  • egui

    egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native

    Some competition from the rusties, with interesting discussion of immediate vs retained mode: https://github.com/emilk/egui

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts