The threepenny-gui package

[Tags: bsd3, 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.8), 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), 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.2), time (==1.4.*), transformers (>=0.3.0 && <0.5), unordered-containers (==0.2.*), utf8-string (==0.3.*), vault (==0.3.*), websockets (==0.8.*), websockets-snap (==0.8.*)
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
Upload dateSun May 18 13:04:55 UTC 2014
Uploaded byHeinrichApfelmus
Downloads1896 total (118 in last 30 days)




buildexamplesBuild example executables.Disabled
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