Description
Future & functional based programming via JDK compatible extensions for Java 8 and above.
cyclops-react alternatives and similar libraries
Based on the "Functional Programming" category.
Alternatively, view cyclops-react alternatives based on common mentions on social networks and blogs.
-
Javaslang
vʌvr (formerly called Javaslang) is a non-commercial, non-profit object-functional library that runs with Java 8+. It aims to reduce the lines of code and increase code quality. -
Functional Java
Backport of Java 8's lambda expressions to Java 7, 6 and 5 -
jOOλ
jOOλ - The Missing Parts in Java 8 jOOλ improves the JDK libraries in areas where the Expert Group's focus was elsewhere. It adds tuple support, function support, and a lot of additional functionality around sequential Streams. The JDK 8's main efforts (default methods, lambdas, and the Stream API) were focused around maintaining backwards compatibility and implementing a functional API for parallelism. -
derive4j
Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching, folds, optics and typeclasses. -
Faux Pas
A library that simplifies error handling for Functional Programming in Java -
Vavr
Functional component library that provides persistent data types and functional control structures.
TestGPT | Generating meaningful tests for busy devs
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of cyclops-react or a related project?
README
Getting Cyclops X (10)
The latest version is cyclops:10.4.0
Stackoverflow tag cyclops-react
Documentation (work in progress for Cyclops X)
Tutorial :
Dysfunctional programming in Java : A functional tutorial
- Part 1 : Laziness (Covering Supplier & the Eval monad)
- Part 2 : Immutability (Covering Immutable Objects with Lombok, withers)
- Part 3 : Functional Composition (Covering method chaining, Streams, ReactiveSeq, Flux from Reactor)
- Part 4 : No nulls allowed (Covering class design, Optional, eager / lazy / reactive Option types, Mono from Reactor)
- Part 5 : No exceptions (Covering making illegal states unrepresentable, eager / lazy Either type, Try)
- Part 6 : No locks or synchronized blocks (Covering Future, Sequence, FutureStreams and reactive-streams)
- Part 7 : Immutable Collections (Covering Vector, NonEmptyList and reactive processing)
- Tagless Final in Java
- A Java long read : Is functional programming worth it?
What's new in Cyclops X (cyclops 10)
- Fast purely functional datastructures (Vector, Seq / List, LazySeq / LazyList, NonEmptyList, HashSet, TreeSet, TrieSet, HashMap, LinkedMap, MultiMap, TreeMap, BankersQueue, LazyString, Discrete Interval Encoded Tree, Zipper, Range, Tree, DifferenceList, HList, Dependent Map )
- Structural Pattern Matching API (deconstruct algebraic product and sum types)
- Improved type safety via the removal of unsafe APIs -- E.g. Unlike Optional, Option has no get method (which could throw a null pointer) -- New data structures do not support operations that would throw exceptions (you can't call head on an empty list for example)
- Eager and Lazy alternatives for most datastructures (Option is eager, Maybe is lazy + reactive)
- Improved naming of types (Function1-8 rather than Fn1-8, Either not Xor)
- Group id is changed to com.oath.cyclops
- Versioning between cyclops-react and cyclops is merged on cyclops versioning scheme (version 10 = Cyclops X)
- Light weight dependencies : reactive-streams API, KindedJ & Agrona
- JVM Polyglot Higher Kinded Types Support with KindedJ
Modules
- cyclops - Persistent data structures and control types
- cyclops-futurestream - Parallel asynchronous streaming
- cyclops-reactive-collections - Fast, non-blocking, asynchronous extensions for JDK and Persistent Collections
- cyclops-anyM - Higher kinded abstractions for working with any Java Monad type.
- cyclops-pure - Higher kinded type classes for pure functional programming in Java
- cyclops-reactor-integration - Reactive collections and AnyM integrations with Reactor.
- cyclops-rxjava2-integration - Reactive collections and AnyM integrations with Rx Java 2.
- cyclops-jackson-integration - Jackson databindings for Cyclops persistent data structures and control types.
Gradle
where x.y.z represents the latest version
compile 'com.oath.cyclops:cyclops:x.y.z'
Maven
<dependency>
<groupId>com.oath.cyclops</groupId>
<artifactId>cyclops</artifactId>
<version>x.y.z</version>
</dependency>
Powerful Streams and functional data types for building modern Java 8 applications. We extend JDK interfaces where possible for maximum integration.
This is the 10.x branch for 2.x branch click the link below
License
cyclops is licensed under the Apache 2.0 license.
http://www.apache.org/licenses/LICENSE-2.0
Thanks to our Sponsors
YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications. YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler, and YourKit YouMonitor.
*Note that all licence references and agreements mentioned in the cyclops-react README section above
are relevant to that project's source code only.