REScala - reactive programming in OO applications
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Documentation tut Jul 31, 2018
Examples
Extensions
Main
Research different topology for remerge Dec 31, 2018
Tests
project restore distributed fullmv compile Dec 29, 2018
.editorconfig
.gitignore
Dockerfile
LICENSE
README.md
appveyor.yml
build.sbt

README.md

REScala

REScala is a set of libraries for principled reactive programming, a programming paradigm that integrates the strong guarantees of functional reactive programming into object oriented programs, and is useful in many contexts such as traditional user interfaces, concurrent and distributed applications, web development, and server software.

REScala is a research project held at TU Darmstadt in the Software Technology Group in the context of the PACE and NICER projects.

Repository Overview

This repository contains mutliple subprojects, the most important ones are:

  • Main: contains the main reactive programming library, for the JVM and JS. Also includes a concurrent scheduler for the JVM, making it thread safe.
  • Extensions/REAndroidThings: contains an integration with androidthings to write apps for the android of things platform.
  • Extensions/RESwing: contains an integration with scalaswing to write UIs on the JVM.
  • Extensions/Rescalatags: contains an integration with scalatags to write web applications.
  • Research/Microbenchmarks: contains a benchmark suite for reactive programming. Execute wit jmh:run
  • Tests: integration tests for various subprojects.
  • Examples: various example applications.
    • dividi: money dividing application, showing the use of distributed CRDTs integrated into rescala
    • Editor: basic text editor in different implementation styles (imperative, to full reactive)
    • examples: misc examples involing swing, time, datastructures (no reswing, using swing directly)
    • examples-reswing: misc reswing examples
    • Mill: mill game using reswing
    • paroli-chat: console application demoing distributed CRTDs
    • PongDemo: application design demonstrating, showing multiple steps of adding features to a reactive application
    • RSSReader: imperative/reactive versions of a reswing RSS reader (actual network request, no support for failures yet)
    • Shapes: reswing drawing application
    • Todolist: Rescalatags todo application in the style of common todo applications
    • Universe: console application demoing parallel execution of simulations