/cyclops

An advanced, but easy to use, platform for writing functional applications in Java 8.

Primary LanguageJavaApache License 2.0Apache-2.0

Getting Cyclops X (10)

Tutorial :

What's new in Cyclops X (cyclops 10)

cyclops-data-types

  • 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

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>

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

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