Skip to content
A comprehensive functional reactive platform for JDK8
Java Groovy
Latest commit 66cb4d4 @johnmcclean-aol johnmcclean-aol Merge pull request #180 from aol/for-comp-fix
For comprehension enhancements

readme.md

screen shot 2016-02-22 at 8 44 42 pm

Future & functional based programming via JDK compatible extensions for Java 8 and above.

Getting cyclops-react

  • Maven Central : cyclops-react

Gradle

where x.y.z represents the latest version

compile 'com.aol.simplereact:cyclops-react:x.y.z'

Maven

<dependency>
    <groupId>com.aol.simplereact</groupId>
    <artifactId>cyclops-react</artifactId>
    <version>x.y.z</version>
</dependency>

cyclops-react-4

Features

Used in Aol to build robust, performant & scalable asynchronous systems : features include

  • Compatible extensions to JDK interfaces (Collections, Streams, Functions)
  • Built with jOOλ, reactive-streams ,Agrona and pCollections
  • Extensions for efficient JDK compatible persistent collections (pCollections)
  • FutureStreams for managing aggregates for Future Tasks (e.g. for multi-threaded execution of large numbers of I/O tasks)
  • Single-threaded asynchronous streaming
  • Scheduling of data emission
  • Powerful extended type hierarchy for aggregrations (Collections & Streams) and single values
  • Powerful functional-style control structures, implemented in Java friendly manner (Maybe, Eval, FutureW, Xor, Ior, Try, AnyM, structural & guard based pattern matching, for-comprehensions)
  • Execute functions between wrapped values (Optional / CompletableFutre etc) without tedious unwrapping (Java friendly Applicative support).
  • Java friendly abstractions for wrapping any Monad type (Stream, CompletableFuture, Optional, cyclops-react types and types from other Java projects too). AnyM and it's two subtypes AnyMSeq for aggregates (Steam, List etc) and AnyMValue for Values
  • Monad Transformers - for manipulating nesting monadic types (e.g. Optionals within a Stream as if it were just an Optional)
  • Applicatives - apply functions across wrapped types (e.g. Optional / Maybe / Xor) without unwrapping & aggregate without terminate on failure
  • Structural pattern matching & pattern matching via Guards (see Matchable and Matchables)
  • Full strength for comprehensions / generators (reference elements from other generators)
  • Tight integration with reactive-streams : collections, streams and datatypes are publishers & can be generated via subscribers

  • Very Extensible & integration with other projects via cyclops-integration modules.

Documentation

Articles

Old simple-react landing page

License

cyclops-react is licensed under the Apache 2.0 license.

http://www.apache.org/licenses/LICENSE-2.0

Something went wrong with that request. Please try again.