Skip to content

Proact is an FRP framework that interacts with React through commands expressed as Free programs and extensible effects

License

Notifications You must be signed in to change notification settings

alvart/purescript-proact

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proact

Table of Contents

Introduction

Proact is a reactive framework that communicates with Facebook's React library through commands expressed as Free programs and extensible effects. These interactions provide access to a global single state that is composable via profunctor lenses.

Proact enables the development of robust real-world Web Applications by achieving the following goals:

  • Integration with React. Purescript's community is relatively small and while very dedicated and creative, chances are it won't be able to offer the same repertoire of GUI components that the React community showcases. Furthermore, the ability of React to enhance the semantic value of HTML code certainly gives elegance to GUI development. For example, React components encapsulate a lot of imperative low-level JavaScript code and provide a clean declarative interface with expressive tags and properties. An application written in Proact may include any React component, provided an appropriate Purescript wrapper exists or is written for it.
  • Aspect Oriented Programming. Proact represents cross-cutting concerns as extensible effects that a Web Application defines for all of its components. Thus, logging, error handling or ajax communication can be developed independently of the application code and provide different functionality based on the environment they are running (e.g. test vs production).
  • Functional Reactive Programming. Proact provides functional operations to manipulate asynchronous data flows and introduces data types to represent events and signals (behaviors). FRP decouples application code from the logic that handles user interactions which makes for more readable and simpler code.
  • Consistent state. Having a single state prompts an application to behave more consistently, unfortunately, it also makes it harder for the state to be modularized. Proact uses the concept of lenses to represent the state of individual components so they can be encapsulated but at the same time can also be composed into a larger overarching state.

Installation

git clone https://github.com/alvart/purescript-proact.git proact
cd purescript-proact
spago install

Building

spago build

Examples

About

Proact is an FRP framework that interacts with React through commands expressed as Free programs and extensible effects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published