The threepenny-gui package

[Tags: bsd3, functional-reactive-programming, graphical-user-interface, library]

Threepenny-GUI is a GUI framework that uses the web browser as a display.

It's cheap and easy to install because everyone has a web browser installed.

Internally, the library implements a small web server that serves a HTML/JavaScript page with the GUI elements. You can freely manipulate the HTML DOM and handle browser events from your Haskell code.

Stability forecast: This is an experimental release! Send us your feedback! Significant API changes are likely in future versions.

NOTE: This library contains examples, but they are not built by default. To build and install the example, use the buildExamples flag like this

cabal install threepenny-gui -fbuildExamples


Dependenciesaeson (>=0.6 && <0.9), attoparsec-enumerator (==0.3.*), base (==4.*), bytestring (>=0.9.2 && <0.11), containers (>=0.4.2 && <0.6), data-default (==0.5.*), deepseq (==1.3.*), filepath (==1.3.*), hashable (>=1.1.0 && <1.3), MonadCatchIO-transformers (==0.3.*), network (>=2.3.0 && <2.6), network-uri (==2.6.*), parsec, safe (==0.3.*), snap-core (==0.9.*), snap-server (==0.9.*), stm (>=2.3 && <2.5), template-haskell (>=2.7.0 && <2.10), text (>=0.11 && <1.3), threepenny-gui, time (==1.4.*), transformers (>=0.3.0 && <0.5), unordered-containers (==0.2.*), utf8-string (==0.3.*), vault (==0.3.*), websockets (>=0.8 && <0.10), websockets-snap (>=0.8 && <0.10)
AuthorChris Done, Heinrich Apfelmus
MaintainerHeinrich Apfelmus <apfelmus at quantentunnel dot de>
CategoryWeb, GUI
Home page
Bug tracker
Source repositoryhead: git clone git://
Executablesthreepenny-examples-use-words, threepenny-examples-missing-dollars, threepenny-examples-drummachine, threepenny-examples-dragndropexample, threepenny-examples-currencyconverter, threepenny-examples-crud, threepenny-examples-chat, threepenny-examples-buttons, threepenny-examples-bartab
UploadedSat Oct 4 08:54:46 UTC 2014 by HeinrichApfelmus
Downloads3177 total (130 in last 30 days)
StatusDocs uploaded by user
Build status unknown [no reports yet]




buildexamplesBuild example executables.Disabled
network-uriGet Network.URI from the network-uri packageEnabled
rebugThe library uses some techniques that are highly non-deterministic, for example garbage collection and concurrency. Bugs in these subsystems are harder to find. Activating this flag will expose more of them.Disabled

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


Maintainers' corner

For package maintainers and hackage trustees