wires: Functional reactive programming library

[ bsd3, control, frp, library ] [ Propose Tags ]

Functional reactive programming library.


[Skip to Readme]
Versions 0.1.0, 0.2.0, 0.2.1
Change log CHANGELOG.md
Dependencies base (>=4.8 && <5), deepseq (==1.4.*), mtl (>=2.0 && <2.3), profunctors (>=5.0 && <5.3), semigroupoids (>=5.0 && <5.3), these (==0.7.*) [details]
License BSD-3-Clause
Copyright Copyright 2017 Ertugrul Söylemez
Author Ertugrul Söylemez <esz@posteo.de>
Maintainer Ertugrul Söylemez <esz@posteo.de>
Category Control, FRP
Home page https://github.com/esoeylemez/wires
Bug tracker https://github.com/esoeylemez/wires/issues
Source repo head: git clone https://github.com/esoeylemez/wires.git
Uploaded by esz at Sun Apr 15 22:21:16 UTC 2018
Distributions NixOS:0.2.1
Executables wires-ping-pong, wires-feedback
Downloads 550 total (15 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI

Modules

[Index]

Flags

NameDescriptionDefaultType
examples

Build the example programs

DisabledManual

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

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for wires-0.2.1

[back to package description]

Wires

This is a functional reactive programming library for interactive applications with the following features:

  • heavy focus on real-time applications like games and simulations,

  • very small core abstraction,

  • efficient in both time and space.

Until a proper tutorial has been written, please check out the examples directory. If you have questions, join #haskell-game on irc.freenode.net. If you would like to report a bug or request a feature, please file an issue.

Module overview

The library is split into two roles: applications and controllers. An application developer models interactions and implements reactive systems, i.e. the application logic. A controller developer implements the glue between the application and the real world, i.e. how events and time-varying values map to actual things on the screen or in the network. The module structure reflects that distinction:

  • Control.Wire: Application language (basically core + utils)
  • Control.Wire.Controller: Controller language
  • Control.Wire.Core: Core application language
  • Control.Wire.Internal: You should never need this module
  • Control.Wire.Utils: Extra application utilities

Modules not listed here are highly experimental and should not be used.

If you are asking yourself whether you are an application or a controller developer: at this early stage of development you are probably both, which means that you will write the application as well as connect its inputs and outputs to the real world.