| CARVIEW |
reflex: Higher-order Functional Reactive Programming
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.
[Skip to Readme]
Modules
[Index] [Quick Jump]
- Control
- Data
- Data.AppendMap
- Data.FastMutableIntMap
- Data.FastWeakBag
- Functor
- Data.Functor.Misc
- Map
- Data.WeakBag
- Reflex
- Adjustable
- BehaviorWriter
- Reflex.Class
- Reflex.Collection
- Reflex.Dynamic
- Reflex.DynamicWriter
- Reflex.EventWriter
- Reflex.FastWeak
- Reflex.FunctorMaybe
- Host
- Reflex.Network
- NotReady
- Reflex.Patch
- Reflex.Patch.Class
- Reflex.Patch.DMap
- Reflex.Patch.DMapWithMove
- Reflex.Patch.IntMap
- Reflex.Patch.Map
- Reflex.Patch.MapWithMove
- PerformEvent
- PostBuild
- Reflex.Profiled
- Reflex.Pure
- Query
- Requester
- Reflex.Spider
- Reflex.Time
- TriggerEvent
- Widget
- Reflex.Workflow
Flags
Manual Flags
| Name | Description | Default |
|---|---|---|
| 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
| Name | Description | Default |
|---|---|---|
| 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
- reflex-0.9.4.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
| 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, 0.9.3.2, 0.9.3.3, 0.9.3.4, 0.9.4.0 (info) |
|---|---|
| Change log | ChangeLog.md |
| Dependencies | base (>=4.11 && <4.22), bifunctors (>=5.2 && <5.7), commutative-semigroups (>=0.1 && <0.3), comonad (>=5.0.4 && <5.1), constraints (>=0.10 && <0.15), constraints-extras (>=0.3 && <0.5), containers (>=0.6 && <0.8), data-default (>=0.5 && <0.9), dependent-map (>=0.3 && <0.5), dependent-sum (>=0.6 && <0.8), exception-transformers (>=0.4 && <0.5), exceptions (>=0.10 && <0.11), ghcjs-base (>=0.2 && <0.3), haskell-src-exts (>=1.16 && <1.24), haskell-src-meta (>=0.6 && <0.9), 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.10), profunctors (>=5.3 && <5.7), random (>=1.1 && <1.4), 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.24), these (>=0.4 && <0.9 || >=1 && <1.3), time (>=1.4 && <1.15), transformers (>=0.5 && <0.7), unbounded-delays (>=0.1.0.0 && <0.2), witherable (>=0.4 && <0.6) [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 || ==9.8.2 || ==9.10.1 || ==9.12.2 |
| License | BSD-3-Clause |
| Author | Ryan Trinkle |
| Maintainer | ryan.trinkle@gmail.com |
| Uploaded | by abrar at 2025-10-20T13:41:13Z |
| 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 |
| Distributions | LTSHaskell:0.9.4.0, NixOS:0.9.4.0, Stackage:0.9.4.0 |
| Reverse Dependencies | 45 direct, 3 indirect [details] |
| Downloads | 22009 total (190 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.4.0
[back to package description]Reflex
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
- Official Website
- Quick Reference
- Reflex-DOM: A framework built on Reflex that facilitates the development of web pages, including highly-interactive single-page apps.
- Obelisk: A framework built on Reflex and Reflex-DOM for functional reactive web and mobile applications, with batteries included.
- Get started with Reflex
- #reflex-frp:matrix.org: Official Matrix room
- /r/reflexfrp
- irc.freenode.net #reflex-frp
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.