-
Notifications
You must be signed in to change notification settings - Fork 136
Backup old readme.md
Future & functional based programming via JDK compatible extensions for Java 8 and above.
-
Stackoverflow tag cyclops-react
where x.y.z represents the latest version
compile 'com.aol.simplereact:cyclops-react:x.y.z'
<dependency>
<groupId>com.aol.simplereact</groupId>
<artifactId>cyclops-react</artifactId>
<version>x.y.z</version>
</dependency>
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.
- Reactive programming with Java 8 and simple-react: The Tutorial
- JDK Collection eXtensions
- Awesome Fluent Functions
- Articles on medium
- Introducting the Cyclops Monad API
- Easier Try with Cyclops
- 4 flavors of Java 8 Functions
- Memoise Functions in Java 8
- Strategy Pattern in Java 8
- Straightfoward structural Pattern Matching in Java 8
- Functional Feature Toggling
- Dependency injection using the Reader Monad in Java8
- Scheduling a Stream
- Neophytes guide to Java 8 : Welcome to the Future
- JDBC Processing Options with cyclops-react
- Deterministic and Non-Deterministic Finite State Machines with Cyclops
cyclops-react is licensed under the Apache 2.0 license.
oops - my bad