All Projects → svenruppert → functional-reactive-lib

svenruppert / functional-reactive-lib

Licence: Apache-2.0 license
A core java lib for the functional reactive coding ... JDK only

Programming Languages

java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to functional-reactive-lib

reflex-examples
See Reflex FRP in action with tinker-friendly code samples you can run yourself.
Stars: ✭ 76 (+204%)
Mutual labels:  functional-reactive-programming
yave
Functional visual programming language with FRP for multimedia
Stars: ✭ 29 (+16%)
Mutual labels:  functional-reactive-programming
bot-trader
Simple bot trader for Bitmex
Stars: ✭ 14 (-44%)
Mutual labels:  functional-reactive-programming
design-patterns-cookbook
Design Patterns in simple words with examples on PHP
Stars: ✭ 26 (+4%)
Mutual labels:  design-pattern
frp agda
Functional Reactive Programming with Agda
Stars: ✭ 22 (-12%)
Mutual labels:  functional-reactive-programming
refactoring-for-testability-cpp
Hard-to-test patterns in C++ and how to refactor them
Stars: ✭ 40 (+60%)
Mutual labels:  design-pattern
spec-pattern
Specification design pattern for JavaScript and TypeScript with bonus classes
Stars: ✭ 43 (+72%)
Mutual labels:  design-pattern
agile
🌌 Global State and Logic Library for JavaScript/Typescript applications
Stars: ✭ 90 (+260%)
Mutual labels:  functional-reactive-programming
design-pattern
设计模式学习配套代码
Stars: ✭ 51 (+104%)
Mutual labels:  design-pattern
chainsaw
Gradle plugin: adds support for building Java 9 modules.
Stars: ✭ 71 (+184%)
Mutual labels:  java-9
java-new-features
Exploring Java 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
Stars: ✭ 152 (+508%)
Mutual labels:  java-9
Flow-iOS
Make your logic flow and data flow clean and human readable
Stars: ✭ 18 (-28%)
Mutual labels:  design-pattern
most-behave
Experimental continuous Behaviors for most.js
Stars: ✭ 32 (+28%)
Mutual labels:  functional-reactive-programming
http-server
A Java HTTP server in 35MB Docker image
Stars: ✭ 17 (-32%)
Mutual labels:  java-9
RxUploader
Uploader for Android using RxJava
Stars: ✭ 72 (+188%)
Mutual labels:  functional-reactive-programming
design-pattern
🌴 Detail design pattern and give many demos in Java.
Stars: ✭ 28 (+12%)
Mutual labels:  design-pattern
refactoringtopatterns
A place to practice Refactoring To Patterns that Kerievsky wrote about in his book
Stars: ✭ 46 (+84%)
Mutual labels:  design-pattern
reflex-native
Framework for writing fully native apps using Reflex, a Functional Reactive Programming library for Haskell.
Stars: ✭ 40 (+60%)
Mutual labels:  functional-reactive-programming
Android-XML-to-PDF-Generator
This library is for convert XML to PDF very easily using Step Builders Pattern
Stars: ✭ 140 (+460%)
Mutual labels:  design-pattern
WhatFilm
Simple iOS app using TMDb API and RxSwift
Stars: ✭ 35 (+40%)
Mutual labels:  functional-reactive-programming

Maven Central

Sonarcloud Status Sonarcloud Status

Codacy Badge

Functional Reactive Lib with Core Java

This is a nano lib, based on a few classes that will give you a handful of functional elements that you can use in your core Java project. If you want to know more about it, have a look at my Youtube Series about this topic.

Please, subscribe my Youtube channel

and/or register for my Newsletter:

This newsletter gives you access to the slides of my videos, and you are the first to be informed about my new videos, articles and blog posts. Besides, you will always receive the latest information about where and when I will soon be giving online lectures, meetups and free webinars. So that you are among the first that will have the change to register and to grab your spot.

Newsletter: https://mailings.sven-ruppert.de

JDK8 or JDK9 and above

I compiled this with the Open JDK8. Previous versions at maven central are build ith JDK10. I went away from the JDK10, because most projects I know, are using JDK8 in production right know. But, if you want to use this with JDK9/10/11/... you can use it.. it is working perfect! Only if you start using the JMS, it could be helpful to add a module-info.java Add the following lines, switch inside the pom.xml to the JDK version you prefer, start a mvn clean install and be happy ;-)

module rapidpm.functional.reactive {
 exports org.rapidpm.frp;
 exports org.rapidpm.frp.functions;
 exports org.rapidpm.frp.matcher;
 exports org.rapidpm.frp.memoizer;
 exports org.rapidpm.frp.model;
 exports org.rapidpm.frp.model.serial;
 exports org.rapidpm.frp.reactive;
}

Release Notes

This Lib is working with

  • Java 08 (open/oracle/ibm/zulu/graalvm)
  • Java 09 (open/oracle/ibm/zulu)
  • Java 10 (open/oracle/zulu)
  • Java 11 (open/oracle/zulu)
  • Java 12 (open/oracle/zulu)
  • Java 13 (open/oracle/zulu)
  • Java 14 (open/oracle/zulu)
<dependency>
    <groupId>org.rapidpm</groupId>
    <artifactId>rapidpm-functional-reactive</artifactId>
	<version>--version--</version>
</dependency>

01.01.00-RPM-SNAPSHOT

This release we will increase test coverage and documentation. The basic structures and functions are in production used since longer time. Adding Apache Lic header to all files

01.00.07-RPM

  • Transformations
    • static Function<Iterator, Stream> iteratorToStream()
  • <V, R> Result thenCombineFlat(V value, BiFunction<T, V, R> func)
  • started Youtube Series about this lib.
  • removed JitCI from production pipeline

01.00.03-RPM

  • added JitCI for deployment as well
  • version updates

01.00.02-RPM

  • static <T, R> CheckedFunction<T, R> asCheckedFunc(Function<T, R> f)
  • Converting.convertToString
  • Converting.convertToInteger
  • Converting.convertToDouble
  • SystemProperties Util Functions
  • Single

01.00.01-RPM

  • BUGFIX in case, the result was calculated two times.

01.00.00-RPM

  • defined it as final, as there was no big change since a long time using it in a bunch of projects
  • JDK8 is used to create the jar
  • module-info.java is available inside the folder _data

00.07.06-RPM

  • parent pom update - version updates

00.07.05-RPM

  • parent pom update - version updates
  • added docker based deploy scripts

00.07.04-RPM

  • switched to new version numbers format To make search/replace easier, I started with a new version format. 00.07.04-RPM ( -SNAPSHOT). The x.y.z is used in the same way, as before, but added RPM and leading zeros to make this format different from others. With this it is less possible to mix/change version numbers from other dependencies. A 0.7.4 could be used from different dependencies. ;-)

0.7.3

  • dependency updates
  • added CompletableFutureQueue<T, N> thenCombineAsyncFromArray(Function<R, N>[] nextTransformations)

0.7.2

  • bug fix for modules-info.java

0.7.1 - DONT USED THIS VERSION !! broken module-info.java

  • activated JIGSAW
  • updated to rapidpm-dependencies 4.0.2

0.7.0 && 0.7.0-JDK8-SNAPSHOT

  • started with JDK10/11 support
  • using JDK11 for development and JDK10 for deployment

0.6.2

  • latest JDK8 only version! - switching to JDK10/11 -- JDK8 model

0.6.1

  • Added docker scripts for cross JDK compiles
  • updates parent versions
  • deactivated nexus mirror for drone
  • deactivated orig IBM JDK 8/9 Docker images

0.6.0

This release is a maintenance release only, no new functionality

  • switched to new dependencies version 0.6.3
    • this includes the lic header plugin
    • version updates
    • minimized profiles
    • removed indirect dependency to old nexus
  • updated all file headers

0.5.3

  • added CheckedTriFunction<T1, T2, T3, R> extends TriFunction<T1, T2, T3, Result<R>>
  • typo unCurryBifunction -> unCurryBiFunction
  • typo unCurryTrifunction -> unCurryTriFunction
  • curry / un-curry Checked Functions Transformations
    • curryCheckedBiFunction() - Function<CheckedBiFunction<A, B, R>, Function<A, CheckedFunction<B, R>>>
    • unCurryCheckedBiFunction() - Function<Function<A, CheckedFunction<B, R>>, CheckedBiFunction<A, B, R>>
    • curryCheckedTriFunction() - Function< CheckedTriFunction<A, B, C, R>, Function<A, Function<B, CheckedFunction<C, R>>>>
    • unCurryCheckedTriFunction() - Function< Function<A, Function<B, CheckedFunction<C, R>>>, CheckedTriFunction<A, B, C, R>>

0.5.2

  • extend Result with a fluent API
    • void ifFailed -> Result ifFailed
    • void ifPresent -> Result ifPresent
    • void ifAbsent -> Result ifAbsent

0.5.1

  • renamed Tripel (german) to Triple (en)
  • pitest is working with junit5 now

0.5.0

  • Result added void ifFailed(Consumer<String> failed);
  • switched to jUnit5
  • updated parent pom to 3.5.7

0.1.0

  • Result added <U> Result<U> asFailure()
  • Result added <U> Result<U> flatMap(Function<T, Result<U>> mapper)
  • ExceptionFunctions.message() extended exception message with Exception Classname
  • added CompletableFutureQueue

0.0.6

  • ExceptionFunctions added Function<Exception, String> message()
  • ExceptionFunctions added Function<Exception, Stream<StackTraceElement>> toStackTraceStream()
  • added Sext and Sept data-classes

0.0.5

  • added model.serial pkg with Data classes only for extends Serializable types
  • Transformations
    • curry / unCurry - BiFunction / TriFunction
  • StreamFunctions added <T> Function<Predicate<T>, Function<Stream<T>, Stream<T>>> streamFilter()
  • Result.ofNullable
  • Result renamed bind(Consumer<T> success, Consumer<String> failure) to ifPresentOrElse(Consumer<T> success, Consumer<String> failure)
  • Result added JDK9 signature ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
  • Result added JDK9 signature Stream<T> stream()
  • Result added Result<T> or(Supplier<? extends Result<? extends T>> supplier)
  • Result added void ifAbsent(Runnable action)
  • Result added <U> Result<U> map(Function<? super T, ? extends U> mapper)

0.0.4

  • added Result.thenCombine
  • added Result.thenCombineAsync
  • added CheckedBiFunction

0.0.3

  • added CheckedPredicate

0.0.2

  • basic Datastructures like Pair, Triple, Quad
  • added fromOptional and toOptional to the class Result
  • added CheckedFunction , CheckedConsumer and CheckedSupplier
  • extracted TriFunction from Memoizer to pkg functions
  • added QuadFunction
  • added StringFunctions
  • added Transformations
  • added StringFunctions
  • ported Strman-java to functional style
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].