Skip to content

Backup old readme.md

johnmcclean-aol edited this page Dec 4, 2016 · 1 revision
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

Documentation

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-types

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.

Articles

OSCON 2016 slides

License

cyclops-react is licensed under the Apache 2.0 license.

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

Clone this wiki locally