What is it?
Threepenny-gui is a GUI framework that uses the web browser as a display.
- Easy installation. Everyone has a reasonably modern web browser installed. Just install the library from hackage and you are ready to go. The library is cross-platform.
- Functional Reactive Programming (FRP) promises to eliminate the spaghetti code that you usually get when using the traditional imperative event-based style for programming user interactions. Threepenny has an FRP library built-in, but its use is completely optional. Employ FRP when it is convenient and fall back to the traditional style when you hit an impasse.
What is it not?
As cool as Threepenny may be, it is ...
- ... not a web front-end. The server is meant to be run from localhost. Latency would be too high to use it as a web app. That said, it's perfectly stuitable for implementing multi-user apps on a local network, see the Chat.hs example.
If you want to write a web app, have a look at projects like Fay, GHCJS and Haste. That said, the Threepenny API may be ported to some of these projects as well in the future, but that is not the focus right now.
The library is still very much in flux, significant API changes are likely in future versions. The goal is make GUI programming as simple as possible, and that just needs some experimentation.
- 6 June 2020 — Release of threepenny-gui-0.9.0.0
- 29 April 2017 — Release of threepenny-gui-0.8.0.0
- 16 September 2016 — Release of threepenny-gui-0.7.0.0
- 15 May 2015 — Release of threepenny-gui-0.6.0.2
- 3 May 2015 — Release of threepenny-gui-0.6.0.1
- 4 October 2014 — Release of threepenny-gui-0.5.0.0
- 21 November 2013 — Release of threepenny-gui-0.4.0.0
- 7 September 2013 — Release of threepenny-gui-0.3.0.0
Applications written with Threepenny.
Maarten Faddegon's Hoed
Carsten König's holiday project
Releases and Resources
- Download on Hackage
- Feedback and Contact
- Source code on github
- threepenny-gui master branch