cyclops-react v10.0.3 Release Notes

Release Date: 2018-11-10 // over 5 years ago
  • πŸš€ Cyclops X patch release 3 (10.0.3)

    Cyclops X

    🚚 Cyclops X (cyclops 10) unifies cyclops-react and the cyclops integration modules on the cyclops versioning scheme. The goal of this project is remove a whole class of runtime errors from application code by providing much stricter APIs that prevent exceptional states from arising. A secondary goal is to modularize cyclops into a series of smaller more focused projects so that functionality is easy to find and developers only take what they need.

    What’s new Cyclops X

    -> Enhancements over cyclops-react 2

    • 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 & Agrona
    • πŸ‘ JVM polyglot higher kinder types support via KindedJ

    πŸš€ What’s new Cyclops X patch release 3

    πŸ› Bug fixes

    • LazyEither dropping Left values, even when Throwable, when acting as reactive-streams Publisher
    • The internal resolve method in LazyEither should not be used in operator implementations [causes blocking behaviour on some operators on Maybe, LazyEither/3/4/5]
    • πŸ”€ ConcurrentFlatMapper inner onError delegates to outer onError [causes mergeMap to finish early when data arriving from returned Publishers after upstream closed]
    • πŸ‘‰ Make LazyEither creation from an Iterable lazy [LazyEither creation from an Iterable was Eager]

    πŸ”„ Changelog

    πŸ›  Check out the features delivered and bugs fixed -

    github 10.0.3 issues & PRs

    Dependency changes

    agrona to 0.9.26
    πŸš€ reactor to 3.2.2.RELEASE
    rxJava2 to 2.2.3
    jackson to 2.9.7

    Modules

    Get cyclops X

    Gradle

    Cyclops

    compile 'com.oath.cyclops:cyclops:10.0.3’
    

    Cyclops AnyM

    compile 'com.oath.cyclops:cyclops-anym:10.0.3’
    

    Cyclops Futurestream

    compile 'com.oath.cyclops:cyclops-futurestream:10.0.3’
    

    Cyclops Pure

    compile 'com.oath.cyclops:cyclops-pure:10.0.3’
    

    Cyclops Reactive Collections

    compile 'com.oath.cyclops:cyclops-reactive-collections:10.0.3’
    

    Cyclops Reactor Integration

     compile 'com.oath.cyclops:cyclops-reactor-integration:10.0.3'
    

    Cyclops RxJava2 Integration

     compile 'com.oath.cyclops:cyclops-rx2-integration:10.0.3'
    

    Cyclops Jackson Integration

     compile 'com.oath.cyclops:cyclops-jackson-integration:10.0.3'
    

    Maven

    Cyclops

    \<dependency\> \<groupId\>com.oath.cyclops\</groupId\> \<artifactId\>cyclops\</artifactId\> \<version\>10.0.3\</version\> \</dependency\>
    

    Cyclops AnyM

    \<dependency\> \<groupId\>com.oath.cyclops\</groupId\> \<artifactId\>cyclops-anym\</artifactId\> \<version\>10.0.3\</version\> \</dependency\>
    

    Cyclops Futurestream

    \<dependency\> \<groupId\>com.oath.cyclops\</groupId\> \<artifactId\>cyclops-anym\</artifactId\> \<version\>10.0.3\</version\> \</dependency\>
    

    Cyclops Pure

    \<dependency\> \<groupId\>com.oath.cyclops\</groupId\> \<artifactId\>cyclops-pure\</artifactId\> \<version\>10.0.3\</version\> \</dependency\>
    

    Cyclops Reactive Collections

    \<dependency\> \<groupId\>com.oath.cyclops\</groupId\> \<artifactId\>cyclops-reactive-collections\</artifactId\> \<version\>10.0.3\</version\> \</dependency\>
    

    Cyclops Reactor Integration

    \<dependency\> &nbsp;&nbsp;&nbsp;&nbsp;\<groupId\>com.oath.cyclops\</groupId\> &nbsp;&nbsp;&nbsp;&nbsp;\<artifactId\>cyclops-reactor-integration\</artifactId\> &nbsp;&nbsp;&nbsp;&nbsp;\<version\>10.0.3\</version\> \</dependency\>
    

    Cyclops RxJava2 Integration

    \<dependency\> &nbsp;&nbsp;&nbsp;&nbsp;\<groupId\>com.oath.cyclops\</groupId\> &nbsp;&nbsp;&nbsp;&nbsp;\<artifactId\>cyclops-rx2-integration\</artifactId\> &nbsp;&nbsp;&nbsp;&nbsp;\<version\>10.0.3\</version\> \</dependency\>
    

    Cyclops Jackson Integration

    \<dependency\> &nbsp;&nbsp;&nbsp;&nbsp;\<groupId\>com.oath.cyclops\</groupId\> &nbsp;&nbsp;&nbsp;&nbsp;\<artifactId\>cyclops-jackson-integration\</artifactId\> &nbsp;&nbsp;&nbsp;&nbsp;\<version\>10.0.3\</version\> \</dependency\>
    

    License

    cyclops-react is licensed under the Apache 2.0 license.

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