Skip to content

Cyclops 10.1.0 : New Do notation for Tagless Final support

Compare
Choose a tag to compare
@johnmcclean johnmcclean released this 27 Nov 12:54
· 228 commits to master since this release
8e735aa

Cyclops 10.1.0

What’s new Cyclops 10.1.0

  • Generic pure functional programming with a new Do notation
  • takeWhileInclusive, takeUntilInclusive, dropWhileInclusive, dropUntilInclusive operators on ReactiveSeq
  • Type class performance improvements for Seq, Vector, LazySeq, IO, Publishers, Iterables and more

Bug fixes

  • Spouts amb operator fixed
  • Spouts schedule Stream operator fix
  • Completable types no longer block on reactive-streams subscriptions
  • Deprecations (internal methods and misnamed types)

Do Notation Examples

Do.forEach(OptionInstances::monad)
    .__(some(10))
    .__(some(5))
    .yield((a,b)->a+b)

Tagless Final

Do.forEach(monad)
        ._of(amount)
        .__(this::debit)
        .__(_1(this::credit))
        .yield(__23(Tuple::tuple))
        .fold(fn);
Algebra
interface AccountAlgebra<W> {

    Higher<W,Account> debit(Account account, double amount);
    Higher<W, Account> credit(Account account, double amount);

}

Changelog

Check out the features delivered and bugs fixed -

github 10.1.0 issues & PRs

Dependency changes

Agrona to 0.9.27
Reactor to 3.2.3.RELEASE
RxJava 2 to 2.2.4

Modules

Get cyclops X

Gradle

Cyclops

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

Cyclops AnyM

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

Cyclops Futurestream

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

Cyclops Pure

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

Cyclops Reactive Collections

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

Cyclops Reactor Integration

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

Cyclops RxJava2 Integration

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

Cyclops Jackson Integration

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

Maven

Cyclops

<dependency>
    <groupId>com.oath.cyclops</groupId>
    <artifactId>cyclops</artifactId>
    <version>10.1.0</version>
</dependency>

Cyclops AnyM

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

Cyclops Futurestream

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

Cyclops Pure

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

Cyclops Reactive Collections

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

Cyclops Reactor Integration

<dependency>
    <groupId>com.oath.cyclops</groupId>
    <artifactId>cyclops-reactor-integration</artifactId>
    <version>10.1.0</version>
</dependency>

Cyclops RxJava2 Integration

<dependency>
    <groupId>com.oath.cyclops</groupId>
    <artifactId>cyclops-rx2-integration</artifactId>
    <version>10.1.0</version>
</dependency>

Cyclops Jackson Integration

<dependency>
    <groupId>com.oath.cyclops</groupId>
    <artifactId>cyclops-jackson-integration</artifactId>
    <version>10.1.0</version>
</dependency>

License

cyclops-react is licensed under the Apache 2.0 license.

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