reflex: Higher-order Functional Reactive Programming

[ bsd3, frp, library ] [ Propose Tags ] [ Report a vulnerability ]

Interactive programs without callbacks or side-effects. Functional Reactive Programming (FRP) uses composable events and time-varying values to describe interactive systems as pure functions. Just like other pure functional code, functional reactive code is easier to get right on the first try, maintain, and reuse.

Reflex is a fully-deterministic, higher-order Functional Reactive Programming interface and an engine that efficiently implements that interface.

https://reflex-frp.org


[Skip to Readme]

Flags

Manual Flags

NameDescriptionDefault
use-reflex-optimizer

Use the GHC plugin Reflex.Optimizer on some of the modules in the package. This is still experimental.

Disabled
use-template-haskell

Use template haskell to generate lenses

Enabled
debug-trace-events

Add instrumentation that outputs the stack trace of the definition of an event whenever it is subscribed to. Warning: It is very slow!

Disabled
fast-weak

Use the primitive implementation of FastWeak in GHCJS; note that this requires GHCJS to be built with FastWeak and FastWeakBag present in the RTS, which is not the default

Disabled
debug-propagation

Enable debugging of spider internals

Disabled
debug-cycles

Enable debugging of event cycles

Disabled
Automatic Flags
NameDescriptionDefault
split-these

Use split these/semialign packages

Enabled

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

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.0.1, 0.1.0, 0.1.1, 0.2, 0.3, 0.3.1, 0.3.2, 0.4.0, 0.4.0.1, 0.5, 0.5.0.1, 0.6, 0.6.1, 0.6.2.1, 0.6.2.3, 0.6.2.4, 0.6.3, 0.6.4, 0.6.4.1, 0.7.0.0, 0.7.1.0, 0.7.1.1, 0.7.2.0, 0.8.0.0, 0.8.1.0, 0.8.1.1, 0.8.2.0, 0.8.2.1, 0.8.2.2, 0.9.0.0, 0.9.0.1, 0.9.1.0, 0.9.2.0, 0.9.3.0, 0.9.3.1 (info)
Change log ChangeLog.md
Dependencies base (>=4.11 && <4.19), bifunctors (>=5.2 && <5.7), commutative-semigroups (>=0.1 && <0.2), comonad (>=5.0.4 && <5.1), constraints (>=0.10 && <0.14), constraints-extras (>=0.3 && <0.5), containers (>=0.6 && <0.7), data-default (>=0.5 && <0.8), dependent-map (>=0.3 && <0.5), dependent-sum (>=0.6 && <0.8), exception-transformers (>=0.4 && <0.5), ghcjs-base (>=0.2 && <0.3), haskell-src-exts (>=1.16 && <1.24), haskell-src-meta (>=0.6 && <0.9), lens (>=4.7 && <5.3), MemoTrie (>=0.6 && <0.7), mmorph (>=1.0 && <1.3), monad-control (>=1.0.1 && <1.1), monoidal-containers (==0.4.0.0 || >=0.6.2.0 && <0.7), mtl (>=2.1 && <2.4), patch (>=0.0.7 && <0.1), prim-uniq (>=0.1.0.1 && <0.3), primitive (>=0.5 && <0.8), profunctors (>=5.3 && <5.7), random (>=1.1 && <1.3), ref-tf (>=0.4 && <0.6), reflection (>=2.1 && <2.2), semialign (>=1 && <1.4), semigroupoids (>=4.0 && <7), stm (>=2.4 && <2.6), syb (>=0.5 && <0.8), template-haskell (>=2.9 && <2.21), these (>=0.4 && <0.9 || >=1 && <1.3), time (>=1.4 && <1.13), transformers (>=0.5 && <0.7), unbounded-delays (>=0.1.0.0 && <0.2), witherable (>=0.4 && <0.5) [details]
Tested with ghc ==8.4.4 || ==8.6.5 || ==8.8.1 || ==8.10.7 || ==9.0.1 || ==9.2.5 || ==9.4.5 || ==9.6.1, ghcjs ==8.6 || ==8.10
License BSD-3-Clause
Author Ryan Trinkle
Maintainer ryan.trinkle@gmail.com
Category FRP
Home page https://reflex-frp.org
Bug tracker https://github.com/reflex-frp/reflex/issues
Source repo head: git clone https://github.com/reflex-frp/reflex
Uploaded by abrar at 2023-06-28T00:30:12Z
Distributions NixOS:0.9.3.1
Reverse Dependencies 44 direct, 3 indirect [details]
Downloads 20399 total (91 in the last 30 days)
Rating 2.75 (votes: 13) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for reflex-0.9.1.0

[back to package description]

Reflex

Haskell Hackage BSD3 License

Interactive programs without callbacks or side-effects. Functional Reactive Programming (FRP) uses composable events and time-varying values to describe interactive systems as pure functions. Just like other pure functional code, functional reactive code is easier to get right on the first try, maintain, and reuse.

Reflex is a fully-deterministic, higher-order Functional Reactive Programming interface and an engine that efficiently implements that interface.

Visit https://reflex-frp.org for more information, tutorials, documentation and examples.

Resources

Hacking

From the root of a Reflex Platform checkout, run ./scripts/hack-on haskell-overlays/reflex-packages/dep/reflex. This will check out the reflex source code into the haskell-overlays/reflex-packages/dep/reflex directory. You can then point that checkout at your fork, make changes, etc. Use the ./try-reflex or ./scripts/work-on scripts to start a shell in which you can test your changes.