Ceci est un projet qui permet d'enrichir d'enrichir la lib akka-stream.
Pour l'instant, il propose :
- de donner plusieurs implémentation à une même extension, avec
MultiImplementedExtension[T <: Extension]] - de découper un
FlowenSink+Source(attention, si ça ne provient pas deFlow.fromSinkandSource, ça peut faire des choses bizarres) - un
StateZipqui est essentiellement unFlowavec un inlet en plus permettant de modifier un état interne. Le flow principal renvoie le state courant avec l'élément entrant. - un
StateFlow, fondé surStateZipqui considère que l'état est modifié par certaines valeurs du flow entrant - un
StateReducerqui modifie son état interne - un
eitherFanoutqui sépare les éléments d'un flow deEither[A, B]en des flows deAetB - un
collectFanoutqui permet de récupérer une partie d'un flow sans perturber le flow initial. - un
IdleGraphStageLogicqui gère les idle dynamiques - et de plus en plus de features
Le sous-projet pactole-http offre des utilitaires pour akka-http, notamment pour drainer les HttpResponse et créer des (Un)Marshaller à partir de la (dé)serialisation play-json.
Le sous-projet pactole-testkit permet de simplifier l'utilisation des probes dans les flows.
Il donne aussi la possibilité d'utiliser un MockScheduler, pour éviter d'attendre les scheduled events d'akka.
Pour la lib :
libraryDependencies += "com.kreactive" %% "pactole" % "2.1.0"
Pour la lib http :
libraryDependencies += "com.kreactive" %% "pactole-flow-persistence" % "2.1.0"
Pour le testkit :
libraryDependencies += "com.kreactive" %% "pactole-testkit" % "2.1.0" % "test"
cross publish sur bintray :
+ publish // cross publish sur les version scala
bintrayRelease // crée la release de la version
Crédits :
Cyrille Corpet https://github.com/zozoens31
Julien Blondeau https://github.com/captainju
Rémi Lavolée https://github.com/rlavolee