/README.md

https://github.com/killerswan/reactive-banana · Markdown · 71 lines · 39 code · 32 blank · 0 comment · 0 complexity · 88eaff984c765c92d12470128548026d MD5 · raw file

  1. [![Build Status](https://travis-ci.org/HeinrichApfelmus/reactive-banana.png)](https://travis-ci.org/HeinrichApfelmus/reactive-banana)
  2. ## What is reactive-banana?
  3. <div style="float:left;"><img src="https://github.com/HeinrichApfelmus/reactive-banana/raw/master/banana.png" /></div>
  4. Reactive-banana is a library for [Functional Reactive Programming (FRP)][frp], written in Haskell.
  5. See the **[project homepage][homepage]** for **documentation**, **examples** and so on.
  6. [homepage]: http://wiki.haskell.org/Reactive-banana
  7. [frp]: http://wiki.haskell.org/Functional_Reactive_Programming
  8. ## Compilation from the repository
  9. To build and install the core library from the source repository, simply type
  10. cd reactive-banana && cabal install && cd ..
  11. However, to try out the GUI examples, you have to install one of the of the additional packages.
  12. ### GUI examples using wxHaskell
  13. Prerequisites: the wxHaskell package
  14. cabal install wx
  15. Note that you need to have a development version of the wxWidgets libraries installed before building wx. If you run into `ExitFailure 1` exceptions, please follow the [wxHaskell Quick Start](http://wiki.haskell.org/WxHaskell/Building) instructions and try again.
  16. To build the wx examples, type
  17. cd reactive-banana-wx
  18. cabal configure -fbuildExamples && cabal build
  19. cd ..
  20. ## How is the source code structured?
  21. The project contains several directories:
  22. * `reactive-banana` the core library
  23. * `reactive-banana-wx` bindings to the [wxHaskell][] GUI library, includes many examples
  24. [wxhaskell]: http://wiki.haskell.org/WxHaskell
  25. [threepenny-gui]: http://wiki.haskell.org/Threepenny-gui
  26. The reactive-banana library actually contains *two* FRP implementations:
  27. 1. [Reactive.Banana.Model][model] - A model implementation for testing and understanding the semantics. You are encouraged to look at the source code.
  28. 2. [Reactive.Banana.Prim][push] - The efficient push-driven implementation used for production code. Contains hard to understand trade secrets. ;-)
  29. [model]: https://github.com/HeinrichApfelmus/reactive-banana/blob/master/reactive-banana/src/Reactive/Banana/Model.hs
  30. [push]: https://github.com/HeinrichApfelmus/reactive-banana/blob/master/reactive-banana/src/Reactive/Banana/Prim.hs
  31. ## License
  32. The source code is distributed under a BSD3 license. See the `LICENSE` files in the corresponding subdirectories.
  33. The reactive-banana mascot [[png]][mascot] is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a> with attribution to Heinrich Apfelmus and the reactive-banana library.
  34. [mascot]: https://github.com/HeinrichApfelmus/reactive-banana/raw/master/banana.png
  35. ## Contribute
  36. Send me your examples, bindings, problems, suggestions, etc!
  37. Many thanks to
  38. Alexander Berntsen, Oliver Charles, Samuel Gélineau, Vladimir Lopatin, Atze van der Ploeg *and also* Abu Alam, Markus Barenhoff, Vincent Berthoux, Kevin Cantu, Gregory Crosswhite, Peter Hillerström, Joseph Heinemeyer, Elliott Hird, Matt Kraai, John Lato, Michael Litchard, Peter Minten, Gideon Sireling, Michael Smith, Henning Thielemann, Alexey Vagarenko, Daniel Werner
  39. for their contributions!