aol / Cyclops
Licence: apache-2.0
An advanced, but easy to use, platform for writing functional applications in Java 8.
Stars: ✭ 1,180
Labels
Projects that are alternatives of or similar to Cyclops
Smallrye Mutiny
An Intuitive Event-Driven Reactive Programming Library for Java
Stars: ✭ 231 (-80.42%)
Mutual labels: reactive, asynchronous, reactive-streams, streams
Play Ws
Standalone Play WS, an async HTTP client with fluent API
Stars: ✭ 190 (-83.9%)
Mutual labels: reactive, asynchronous, reactive-streams
Rubico
[a]synchronous functional programming
Stars: ✭ 133 (-88.73%)
Mutual labels: monad, asynchronous, functional-programming
Redux Most
Most.js based middleware for Redux. Handle async actions with monadic streams & reactive programming.
Stars: ✭ 137 (-88.39%)
Mutual labels: reactive, streams, functional-programming
Zio
ZIO — A type-safe, composable library for async and concurrent programming in Scala
Stars: ✭ 3,167 (+168.39%)
Mutual labels: asynchronous, streams, functional-programming
Fpgo
Monad, Functional Programming features for Golang
Stars: ✭ 165 (-86.02%)
Mutual labels: monad, reactive, functional-programming
F
Functional stuff for Python
Stars: ✭ 113 (-90.42%)
Mutual labels: collections, monad, functional-programming
Reactor Core
Non-Blocking Reactive Foundation for the JVM
Stars: ✭ 3,891 (+229.75%)
Mutual labels: reactive, asynchronous, reactive-streams
Purify
Functional programming library for TypeScript - https://gigobyte.github.io/purify/
Stars: ✭ 843 (-28.56%)
Mutual labels: monad, functional-programming
Express
Swift Express is a simple, yet unopinionated web application server written in Swift
Stars: ✭ 855 (-27.54%)
Mutual labels: reactive, asynchronous
Jdonframework
Domain-Driven-Design Pub/Sub Domain-Events framework
Stars: ✭ 978 (-17.12%)
Mutual labels: reactive, asynchronous
Scalecube Services
v2.0 - ScaleCube Services provides a low latency Reactive Microservices library for serverless service registry and discovery based on gossip protocol and without single point-of-failure or bottlenecks.
Stars: ✭ 23 (-98.05%)
Mutual labels: reactive, reactive-streams
Kea
Composable Functional Programming in R
Stars: ✭ 18 (-98.47%)
Mutual labels: collections, functional-programming
Tarant
Reactive, actor based framework that can be used in client and server side.
Stars: ✭ 33 (-97.2%)
Mutual labels: reactive, asynchronous
Eter
Lightweight collections for JavaScript
Stars: ✭ 16 (-98.64%)
Mutual labels: data-structures, collections
Rxdownloader
- Reactive Extension Library for Android to download files
Stars: ✭ 40 (-96.61%)
Mutual labels: reactive, reactive-streams
Inferno Most Fp Demo
A demo for the ReactJS Tampa Bay meetup showing how to build a React+Redux-like architecture from scratch using Inferno, Most.js, reactive programmning, and various functional programming tools & techniques
Stars: ✭ 45 (-96.19%)
Mutual labels: reactive, functional-programming
Reactivemongo
🍃 Non-blocking, Reactive MongoDB Driver for Scala
Stars: ✭ 825 (-30.08%)
Mutual labels: reactive, asynchronous
Purefun
Functional Programming library for Java
Stars: ✭ 37 (-96.86%)
Mutual labels: monad, functional-programming
Phantom
Schema safe, type-safe, reactive Scala driver for Cassandra/Datastax Enterprise
Stars: ✭ 1,049 (-11.1%)
Mutual labels: reactive, reactive-streams
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)
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 the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].