monomer: A GUI library for writing native Haskell applications.

[ bsd3, gui, library, program ] [ Propose Tags ]

Monomer is an easy to use, cross platform, GUI library for writing native Haskell applications.

It provides a framework similar to the Elm Architecture, allowing the creation of GUIs using an extensible set of widgets with pure Haskell.

Please see the README on Github at https://github.com/fjvallarino/monomer#readme


[Skip to Readme]

Modules

[Index] [Quick Jump]

Flags

Manual Flags

NameDescriptionDefault
examplesDisabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 1.0.0.0, 1.0.0.1, 1.0.0.2, 1.0.0.3, 1.1.0.0, 1.1.1.0, 1.2.0.0, 1.3.0.0, 1.4.0.0, 1.4.1.0, 1.5.0.0, 1.5.1.0, 1.6.0.0, 1.6.0.1
Change log ChangeLog.md
Dependencies aeson (>=1.4 && <2.3), async (>=2.1 && <2.4), attoparsec (>=0.12 && <0.16), base (>=4.11 && <5), bytestring (>=0.10 && <0.20), bytestring-to-vector (>=0.3 && <0.4), containers (>=0.5.11 && <0.8), data-default (>=0.5 && <0.9), exceptions (>=0.10 && <0.13), extra (>=1.6 && <1.10), foreign-store (>=0.2 && <1.0), formatting (>=6.0 && <8.0), http-client (>=0.6 && <0.9), JuicyPixels (>=3.2.9 && <3.5), lens (>=4.16 && <6), monomer, mtl (>=2.1 && <2.4), nanovg (>=0.8.1 && <1.0), OpenGLRaw (>=3.3 && <3.5), process (>=1.6 && <1.8), random (>=1.1 && <1.3), sdl2 (>=2.5.0 && <2.7), stm (>=2.5 && <2.7), text (>=1.2 && <3), text-show (>=3.7 && <3.14), time (>=1.8 && <1.20), transformers (>=0.5 && <0.8), vector (>=0.12 && <0.20), websockets (>=0.12 && <0.13), wreq (>=0.5.2 && <0.6), wuss (>=1.1 && <2.3) [details]
License BSD-3-Clause
Copyright 2018 Francisco Vallarino
Author Francisco Vallarino
Maintainer fjvallarino@gmail.com
Category GUI
Home page https://github.com/fjvallarino/monomer#readme
Bug tracker https://github.com/fjvallarino/monomer/issues
Source repo head: git clone https://github.com/fjvallarino/monomer
Uploaded by fjvallarino at 2024-01-08T01:41:18Z
Distributions LTSHaskell:1.6.0.1, NixOS:1.6.0.1
Reverse Dependencies 2 direct, 0 indirect [details]
Executables tutorial, todo, ticker, opengl, generative, dev-test-app, books
Downloads 2187 total (65 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for monomer-1.6.0.1

[back to package description]

Monomer

A cross-platform GUI library for Haskell

Logo

CI badge made with Haskell BSD-3-Clause


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

Monomer provides a framework similar to the Elm Architecture, allowing the creation of GUIs using an extensible set of widgets with pure Haskell.

Objectives

  • Be easy to learn and use.
  • Be extensible with custom widgets.
  • Run on Windows, Linux and macOS.
  • Have good documentation.
  • Have good examples.

These are not objectives for this project

  • Have a native look and feel.

Why would you want to use this library?

  • You want to write your application in Haskell.
  • You want to write a native, not web based, application.

Documentation

Setup

You can read how to setup your environment here.

Tutorials

Introductory tutorials are available:

Examples

Beyond the tutorials, a few real world like examples are available:

Haddock

You can read the source code's documentation here.

Design decisions

In case you wonder why some choices were made, you can read here.

Roadmap

  • Stability and performance.
  • Mobile support.

Project status

Although there has not been a lot of activity in the past year, the project is still active.

I may take some time to respond to issues while I work on features I want to add to Monomer.

Useful extensions

  • Hagrid, a flexible datagrid widget.

Contributing

PRs are welcome!

If possible, keep them small and focused. If you are planning on making a large change, please submit an issue first so we can agree on a solution.

License

This library is licensed under the BSD-3 license.

Fonts used in the examples:

Acknowledgments